Научная статья на тему 'РЕАЛИЗАЦИЯ МОДЕЛИ ПЕРСЕПТРОНА НА ВОСЬМИБИТНОМ МИКРОКОНТРОЛЛЕРЕ'

РЕАЛИЗАЦИЯ МОДЕЛИ ПЕРСЕПТРОНА НА ВОСЬМИБИТНОМ МИКРОКОНТРОЛЛЕРЕ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
139
26
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ВОСЬМИБИТНЫЙ МИКРОКОНТРОЛЛЕР / ПЕРСЕПТРОН / АППАРАТНАЯ РЕАЛИЗАЦИЯ НЕЙРОННОЙ СЕТИ / ИСКУССТВЕННЫЙ НЕЙРОН / СЛОЙ / ВХОДНОЙ СИГНАЛ / ВЫХОДНОЙ СИГНАЛ / ФУНКЦИЯ АКТИВАЦИИ / СИГМОИДАЛЬНАЯ ФУНКЦИЯ / ОБУЧАЮЩАЯ ВЫБОРКА / ОПЕРАЦИИ С ЧИСЛАМИ С ПЛАВАЮЩЕЙ ТОЧКОЙ / ОЦЕНКА ПРОИЗВОДИТЕЛЬНОСТИ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Чернухин Дмитрий Алексеевич, Шуршев Валерий Федорович

Большинство современных автономных устройств разрабатывается на базе микроконтроллеров с 32-битной архитектурой. В то же время применение «младшего» семейства (восьмибитных микроконтроллеров) имеет ряд преимуществ: позволяет снизить стоимость компонентов; повысить энергоэффективность устройства, а значит, и время его автономной работы; добиться более высокой надежности устройства. Для определенности рассмотрена программно - аппаратная реализацию модели персептрона на основе использования восьмибитных микроконтроллеров. Разработана нейронная сеть для задачи распознавания цифр, отображаемых на семисегментном индикаторе. Использовалась топология персептрона с одним скрытым слоем. Обучение ее производилось методом обратного распространения ошибки. Выделены характеристики нейронной сети, критичные с точки зрения реализации на восьмибитных микроконтроллерах. Разработаны оценки для определения различных параметров нейронной сети для конкретных характеристик восьмибитных микроконтроллеров. Дана оценка скорости реакции сети, построенной на базе восьмибитных микроконтроллеров. Сделан вывод о допустимости и целесообразности использования восьмибитных микроконтроллеров для решения этой и аналогичных задач.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

REALIZATION OF THE PERCEPTRON MODEL USING AN EIGHT-BIT MICROCONTROLLER

Most modern stand-alone devices are developed on the basis of microcontrollers with 32-bit architecture. At the same time, the use of the "younger" family (eight-bit microcontrollers) has a number of advantages: it allows to reduce the cost of components; to increase the energy efficiency of the device, and, hence, its battery life; achieve higher reliability of the device. For definiteness, a software and hardware implementation of the perceptron model based on the use of an 8-bit microcontroller is considered. A neural network has been developed for the task of recognizing numbers displayed on a seven-segment indicator. A perceptron topology with one hidden layer was used. It was trained using the back-propagation method. Highlighted the characteristics of the neural network, critical from the point of view of implementation on an 8-bit microcontroller. Estimates have been developed to determine various parameters of the neural network for specific characteristics of the 8-bit microcontroller. An assessment of the reaction speed of a network built on the basis of the 8-bit microcontroller is given. The conclusion is made about the admissibility and expediency of using an 8-bit microcontroller for solving this and similar problems.

Текст научной работы на тему «РЕАЛИЗАЦИЯ МОДЕЛИ ПЕРСЕПТРОНА НА ВОСЬМИБИТНОМ МИКРОКОНТРОЛЛЕРЕ»

ЭЛЕМЕНТЫ И УСТРОЙСТВА ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ И СИСТЕМ УПРАВЛЕНИЯ

УДК 004.8, 004.93'1

РЕАЛИЗАЦИЯ МОДЕЛИ ПЕРСЕПТРОНА НА ВОСЬМИБИТНОМ МИКРОКОНТРОЛЛЕРЕ

Статья поступила в редакцию 09.05.2020, в окончательном варианте — 05.09.2020.

Чернухин Дмитрий Алексеевич, Астраханский государственный технический университет, 414056, г. Астрахань, ул. Татищева, 16,

аспирант, ORCID: https://orcid.org/0000-0003-2258-6594, e-mail: madlabman@mail.ru Шуршев Валерий Федорович, Астраханский государственный технический университет, 414056, г. Астрахань, ул. Татищева, 16,

доктор технических наук, профессор, e-mail: v.shurshev@mail.ru

Большинство современных автономных устройств разрабатывается на базе микроконтроллеров с 32-битной архитектурой. В то же время применение «младшего» семейства (восьмибитных микроконтроллеров) имеет ряд преимуществ: позволяет снизить стоимость компонентов; повысить энергоэффективность устройства, а значит, и время его автономной работы; добиться более высокой надежности устройства. Для определенности рассмотрена программно-аппаратная реализацию модели персептрона на основе использования восьмибитных микроконтроллеров. Разработана нейронная сеть для задачи распознавания цифр, отображаемых на семисегмент-ном индикаторе. Использовалась топология персептрона с одним скрытым слоем. Обучение ее производилось методом обратного распространения ошибки. Выделены характеристики нейронной сети, критичные с точки зрения реализации на восьмибитных микроконтроллерах. Разработаны оценки для определения различных параметров нейронной сети для конкретных характеристик восьмибитных микроконтроллеров. Дана оценка скорости реакции сети, построенной на базе восьмибитных микроконтроллеров. Сделан вывод о допустимости и целесообразности использования восьмибитных микроконтроллеров для решения этой и аналогичных задач.

Ключевые слова: восьмибитный микроконтроллер, персептрон, аппаратная реализация нейронной сети, искусственный нейрон, слой, входной сигнал, выходной сигнал, функция активации, сигмоидальная функция, обучающая выборка, операции с числами с плавающей точкой, оценка производительности

Графическая аннотация (Graphical annotation)

Fight-bit microcontroller

Восьмибитный микроконтроллер (ВБМК)

л

с

<Л СТЗ

ft. т

О! s

■д О

л а>

с s

Ф Щ

х 3

и Я) I ÛJ

Искусственная нейронная сеть (ИНС)

CD

! с:

0 сл тз

01 Ol о

л О

artificial neural network

32-битные операнды арифметических операций ИНС

32-bit arithmetic operands

->

8-битные операнды инструкций ВБМК

I bit operands of instructions

Компилятор

compiler

REALIZATION OF THE PERCEPTRON MODEL USING AN EIGHT-BIT MICROCONTROLLER

The article was received by the editorial board on 09.05.2020, in the final version — 05.09.2020.

Chernukhin Dmitriy A., Astrakhan State Technical University, 16 Tatishchev St., Astrakhan, 414056, Russian Federation,

post-graduate student, ORCID: https://orcid.org/0000-0003-2258-6594, e-mail: madlabman@mail.ru

Shurshev Valeriy F., Astrakhan State Technical University, 16 Tatishchev St., Astrakhan, 414056, Russian Federation,

Doct. Sci. (Engineering), Professor, e-mail: v.shurshev@mail.ru

Most modern stand-alone devices are developed on the basis of microcontrollers with 32-bit architecture. At the same time, the use of the "younger" family (eight-bit microcontrollers) has a number of advantages: it allows to reduce the cost of components; to increase the energy efficiency of the device, and, hence, its battery life; achieve higher reliability of the device. For definiteness, a software and hardware implementation of the perceptron model based on the use of an 8-bit microcontroller is considered. A neural network has been developed for the task of recognizing numbers displayed on a seven-segment indicator. A perceptron topology with one hidden layer was used. It was trained using the back-propagation method. Highlighted the characteristics of the neural network, critical from the point of view of implementation on an 8-bit microcontroller. Estimates have been developed to determine various parameters of the neural network for specific characteristics of the 8-bit microcontroller. An assessment of the reaction speed of a network built on the basis of the 8-bit microcontroller is given. The conclusion is made about the admissibility and expediency of using an 8-bit microcontroller for solving this and similar problems.

Keywords: eight-bit microcontroller, perceptron, hardware implementation of a neural network, artificial neuron, layer, input signal, output signal, activation function, sigmoid function, training set, operation with floating point numbers, performance evaluation

Введение. Решение рутинных задач автоматизации и мониторинга, а также задач, требующих оперативной реакции (например, сигнализации о возникновении разного рода событий), возлагается на автономные электронные устройства. Спектр подобных задач потенциально может быть значительно расширен за счет применения методов искусственного интеллекта. Данный подход встретил широкую поддержку среди производителей вычислительных устройств мирового уровня, таких как Nvidia [9] и Qualcomm [12]. По этой причине становится привлекательной идея реализации НС с помощью автономных электронных устройств.

Большинство современных автономных электронных устройств разрабатывается на базе микроконтроллеров с 32-битной архитектурой. Выбор данного семейства микроконтроллерных устройств в некоторых случаях обусловлен предрассудками относительно использования решений с 8- или 16-битной архитектурой [7, 10]. На практике же применение «младшего» семейства микроконтроллеров позволяет сделать следующее: снизить стоимость компонентов; повысить энергоэффективность устройства и, как следствие, время его автономной работы; добиться более высокой надежности устройства.

Для демонстрации возможностей и особенностей применения восьмибитных микроконтроллеров (ВБМК) в данной статье используется задача программно-аппаратной реализации искусственной нейронной сети (ИНС), используемой для распознавания символов на семисегментном цифровом индикаторе. Это и является целью данной работы.

Для достижения поставленной цели были определены следующие задачи:

1. Рассмотреть характеристики ИНС, критичные с точки зрения ее реализации с помощью ВБМК.

2. Разработать оценки реализуемости ИНС с заданными характеристиками на конкретном микроконтроллере.

3. Произвести экспериментальные исследования работы ИНС, построенной на ВБМК

Персептрон. Он является одной из простейших моделей ИНС. Данный тип сети состоит из

одного или нескольких слоев нейронов - чувствительных элементов, имеющих ряд входов и единственный выход [6]. Входные сигналы нейрона суммируются с учетом весов для отдельных входов. К полученной сумме применяется та или иная функция, называемая передаточной или акти-вационной функцией. Эта функция описывает реакцию нейрона на поступившие сигналы. Простейшим примером является пороговая функция, приводящая нейрон в возбужденное состояние при условии превышения суммой входных сигналов определенного (задаваемого) порогового значения. В таком случае выход нейрона принимает одно из двух значений, как правило, 0 или 1. Для получения непрерывных значений на выходе нейрона в качестве функции активации применяется некоторая нелинейная функция. В зависимости от характера связей и количества скрытых слоев различают несколько типов персептронов. Обобщенная графическая модель персептрона с одним скрытым слоем представлена на рисунке 1.

Рисунок 1 - Графическая модель персептрона с одним скрытым слоем

Для получения желаемого выходного сигнала в зависимости от определенных входных значений применяется обучение ИНС, которое заключается в корректировке синаптических весов. В зависимости от типа персептрона используются различные методики подбора весовых коэффициентов. Так, для однослойной сети разработаны алгоритмы, позволяющие реализовать заданную функцию без перебора значений весов. Для многослойной архитектуры наиболее широко применяемым способом обучения является «метод обратного распространения ошибки» [6].

Однослойные ИНС имеют относительно узкую область применения из-за ограничения линейной разделимости входных значений. Для решения этой проблемы идея однослойного персеп-трона была развита путем добавления слоя или слоев нейронов, названных скрытыми, между входным и выходными слоями. При такой архитектуре сети применение модели персептрона возможно для решения более широкого круга задач. В частности, доказана возможность реализации любой заданной функции с помощью персептрона [6].

Параметры персептрона. Для того чтобы выделить критичные элементы персептрона с точки зрения аппаратной реализации на основе ВБМК, удобно ориентироваться на конкретную практическую задачу. Для определенности мы выбрали пример распознавания десятичной цифры, отображаемой на семисегментном индикаторе, подобном приведенному на рисунке 2.

Рисунок 2 - Схема семисегментного индикатора

На рисунке также присутствует восьмой сегмент - точка. Так как точка не является элементом какой-либо цифры, то этот сегмент может быть использован для дополнительной индикации, например, для показа состояния ИНС.

Входными данными для персептрона являются 7 бинарных значений, которые кодируют представление цифры на семисегментном индикаторе. При этом значение «1» означает свечение соответствующего сегмента индикатора, а значение «0» - его отсутствие.

Выходными данными персептрона является двоичное представление числа, закодированного для воспроизведения на семисегментном индикаторе. Диапазон отображаемых значений по определению [0; 9]. Для двоичного представления данного множества требуется, как минимум, 4 бита, так как 23 = 8. Однако этого недостаточно для отображения необходимых 10 значений. В то же

время 24 = 16 - такое число возможных значений покрывает (причем с избытком) весь заданный диапазон. Каждый бит входных и выходных данных ставится в соответствие нейронам входного и выходного слоев соответственно. В таблице 1 приведены битовые значения для цифр от 0 до 9, закодированные для их воспроизведения на семисегментном индикаторе, приведенном на рисунке 2, в следующем порядке: GFABCDE, а также соответствующие им выходные значения. Такой порядок вывода данных на индикатор связан исключительно с удобством подключения последнего при разработке прототипа на «беспаечной» макетной плате. При необходимости этот порядок может быть изменен произвольным образом.

Таблица 1 - Таблица истинности для элементов индикатора

Цифра Вход Выход

0 0 1 1 1 1 1 1 0 0 0 0

1 0 0 0 1 1 0 0 0 0 0 1

2 1 0 1 1 1 1 0 0 1 0

3 1 0 1 1 1 1 0 0 0 1 1

4 1 1 0 1 1 1 0 0 1 0 0

5 1 1 1 0 1 1 0 0 1 0 1

6 1 1 1 0 1 1 1 0 1 1 0

7 0 1 1 1 0 0 1 1 1

8 1 1 1 1 1 1 1 1 0 0 0

9 1 1 1 1 1 1 0 1 0 0 1

Для демонстрации будет построен персептрон с одним скрытым слоем. Он был выбран в силу его простоты и эффективности. Исходя из определений диапазонов входных и выходных данных, в разрабатываемой ИНС используются: входной слой, состоящий из 7-ми нейронов; выходной слой, состоящий из 4-х нейронов; скрытый слой, состав которого требуется определить.

Выбор размера скрытого слоя персептрона является задачей, как правило, эмпирического характера. Однако разработаны некоторые теоретические рекомендации, позволяющие дать пограничные (для границ интервала) оценки для целесообразного количества нейронов в скрытом слое.

Так, теорема Хехт - Нильсена [2] доказывает представимость функции многих переменных достаточно общего вида с помощью ИНС с прямыми полными связями (рис. 1) с п компонентами входного сигнала, 2п+1 компонентами скрытого слоя с заранее известными ограниченными функциями активации (например, сигмоидальными) и т компонентами второго слоя с неизвестными функциями активации. Тогда для заданного п = 7 получаем число нейронов скрытого слоя, равное 2^7 + 1 = 15 (оценка «первым» методом).

На основании теорем Арнольда - Колмогорова [2] и Хехт - Нильсена предложена также оценка необходимого числа нейронов в скрытых слоях на основе числа требуемых нейронных связей.

Формула (1) описывает неравенство, определяющее искомое число нейронных связей:

NyXQ

< Nw < К

x(^+l)(Nx + Ny+l)+Ny, (1)

1+1оЁ2о - — *

где Q - размер обучающей выборки; Ых - число нейронов входного слоя; Ыу - число нейронов выходного слоя. Для данной статьи примем Q равным 32 для простоты логарифмирования, а также исходя из допущения о том, что трех записей выборки для каждого из значений выходного множества достаточно для корректного обучения персептрона. Произведем оценку по формуле (1):

■<NW< 4 X (у + 1) (7 + 4 + 1) + 7,

4X32

l+log2 32

22 <NW< 264.

Приняв число нейронных связей за среднее арифметическое полученных пограничных оценок (границ интервала), рассчитаем число нейронов скрытого слоя в ИНС по формуле (2):

ых+ыу'

22 + 264 = 13. (2)

2х(7+4) 4 7

Это результат оценки числа нейронов в скрытом слое «вторым» методом. Исходя из вышеприведенных вычислений, определяем, что оценки, полученные обоими методами, являются сопоставимыми. Для разрабатываемого персептрона выберем поэтому число нейронов скрытого слоя, равное 15.

Можно отметить, что для такой тривиальной задачи (напомним, она носит демонстрационный характер), какая поставлена перед рассматриваемой ИНС, возможно применение предварительно

сгенерированной таблицы соответствия входных и выходных значений. Действительно, для 7 и 4 бит входных и выходных данных требуется 11 бит на запись. Всего записей возможно 27 = 128. Исходя из этого, можно определить общий объем данных в 128 * 11 = 1408 бит или 176 байт. Данное количество информации может казаться пренебрежительно малым для современных вычислительных систем. Тем не менее для энергоэффективных встраиваемых электронных систем, к котором относятся микроконтроллеры, данные объемы могут значительно превышать размеры доступной памяти устройства. Отметим, что типичные диапазоны памяти для устройств младшего семейства AVR TINY колеблются в диапазоне 128-512 байт ОЗУ и 128-512 байт ПЗУ.

При этом наиболее важным ограничением становится объем ОЗУ устройства, в пространстве которого потребуется разместить данные для проведения обучения ИНС, построенной на основе ВБМК. Кроме того, такое обучение требует, как правило, определенного времени и вычислительных мощностей для осуществления итераций, необходимых для подбора весовых коэффициентов ИНС. Поэтому наиболее распространенным приемом является предварительный подбор значений весовых коэффициентов ИНС для последующего использования их на микроконтроллере. Для решения этой задачи принято использовать программное обеспечение, эксплуатируемое на ПЭВМ.

Возвращаясь к вопросу размещения «таблицы истинности» для всего поля входных данных ВБМК, следует отметить, что эти данные можно разместить в память устройства, отведенную для инструкций программы. Типичные размеры данного типа памяти значительно превосходят соответствующие размеры ОЗУ и ПЗУ и составляют от 1024 до 8192 байт для семейства устройств AVR TINY. Тем не менее с ростом количества входных и, соответственно, выходных нейронов указанный объем памяти также будет довольно быстро исчерпан. Приведем оценку для демонстрационного варианта. Примем, что в наихудшем случае количество входных нейронов «х» будет равняться количеству выходных нейронов. Тогда получим, что число записей будет равно 2х, а размер одной записи 2х. Исходя из этого, определим следующее неравенство:

2х X 2х > 8192 X 8.

Оно выполняется уже при x = 12, что позволит привести таблицу соответствия - например, для символов размером не более чем 3x4.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

В случае хранения весовых коэффициентов ИНС по вышеописанной модели (схеме), размер данных линейно зависит от числа синаптических связей ИНС. В память микроконтроллера записываются весовые коэффициенты, размер (в битах) которых фиксирован. В данной работе он принят равным 32 битам - обоснование этому будет дано далее. Итак, примем то же допущение об одинаковых размерностях входного и выходного слоев ИНС, а размер скрытого слоя равным (согласно теореме Хехт - Нильсена) 2х+1, где x - размер входного слоя ИНС. Определим число синаптических связей и получим следующее неравенство:

32 X (2х + 1)(х + log2 х) > 8192 X 8, которое выполняется при x > 29.

Стоит обратить внимание на то, что размер входных данных ИНС более чем вдвое превышает размеры «таблицы истинности», которая может быть помещена в памяти равного объема. Более того, ИНС способна принимать на вход непрерывные значения, ограниченные точностью используемого формата представления чисел с плавающей точкой. Это значительно расширяет поле (увеличивает объем) входных данных и делает его недостижимым для размещения таблиц истинности в памяти микроконтроллера. Таким образом, для данной демонстрационной задачи становится очевидным целесообразность хранения ограниченного набора значений весовых коэффициентов для решения задач классификации. Аналогичное заключение может быть сделано или многих других задач, для которых может быть применена модель персептрона.

Программно-аппаратное обеспечение для рассматриваемого персептрона. Для обучения персептрона используем самостоятельно разработанное программное обеспечение, выходом которого будут весовые коэффициенты ИНС. Для алгоритма обучения сети была подготовлена выборка, состоящая из порядка трех возможных входных значений для каждой из цифр, таким образом, что размер выборки составил 34 записи, и были использованы параметры, приведенные в таблице 2.

Под минимальной допустимой ошибкой понимается сумма «дельт» между ожидаемым выходом нейрона и фактическим значением, поделенная на число выходных нейронов. Так как число выходных нейронов равно «4», а диапазон выходных значений нейрона [0; 1], ошибка на одном нейроне в наихудшем случае составит 1.

Однако такой сценарий на практике маловероятен, и ошибка распространится на более чем один нейрон. В сочетании с использованием пороговой функции с граничным значением 0,5 это позволит получить выходные значения с точностью, приемлемой для поставленной перед персеп-троном задачи. Значение порога является серединой интервала принимаемого нейроном выходного слоя значения, что является удобным для метода обратного распространения ошибки.

Таблица 2 - Постоянные алгоритма обучения персептрона

Параметр Значение

Постоянная скорости обучения 0,01

Передаточная функция Сигмоидальная функция Ферми

Минимально допустимая ошибка 0,15

Алгоритм предусматривает использование известного метода обратного распространения ошибки для подбора весовых коэффициентов. Суть метода заключается в том, что для выходного слоя рассчитывается разница между значениями сигналов нейронов и эталонными значениями. После этого значение разницы, или ошибки, распространяется на предыдущий слой и корректируется с использованием производной от передаточной функции.

Важно отметить, что большинство современных языков высокого уровня представляют возможность использовать числа с плавающей запятой с различной точностью. Ее типичными значениями являются 32 или 64 бита. Компилятор языка «С», применяемый для разработки программного обеспечения микроконтроллера, позволяет использовать тип данных числа с плавающей точкой размером 32 бита. По этой причине в программном продукте следует использовать тип данных соответствующей длины для получения ожидаемого результата вычислений.

Тип данных, используемый в ИНС, является важным аспектом разработки программного обеспечения для микроконтроллера. Так как устройство, которое используется для аппаратной реализации 8-битное, то размер данных, которыми микроконтроллер может оперировать в одной инструкции, составляет 8 бит. Также микроконтроллеры подобного класса (ВБМК) не обладают встроенным модулем для выполнения арифметических операций над числами с плавающей точкой - для персональных компьютеров (например, моделей IBM AT-286) его когда-то называли «арифметическим сопроцессором». Поэтому для реализации подобных действий требуется выполнение сравнительно большого числа инструкций. В связи с этим встает вопрос о вычислительных возможностях устройства (ВБМК) и связанных с этим ограничений.

Оценку производительности применительно к операциям над числами с плавающей точкой принято производить в несистемной единице измерения FLOPS - от английского FLoating-point Operations Per Second.

При этом от скорости выполнения вычислений для совокупности инструкций зависит число операций с числами за единицу времени, что и является метрикой.

Для более универсальной оценки объема вычислений целесообразно использовать оценки, выраженные в необходимом количестве тактов работы процессора. Результат оценки операций с числами с плавающей точкой в различных единицах измерения для ВБМК рассматриваемого в данной работе семейства при частоте работы 16 МГц представлен в таблице 3 [13].

Таблица 3 - Результаты замеров скорости выполнения операций над числами с плавающей точкой [13]

Число тактов Время (секунд) FLOPS Число итераций Операция

124235 0,007765 128788,2 1000 Сложение

152630 0,009539 104828,7 1000 Умножение

494280 0,030893 32370,3 1000 Деление

496094 0,031006 32252,0 1000 Возведение в степень

278897 0,017431 57368,9 1000 Вида y = mx + b

При использовании встроенного источника тактовых импульсов микроконтроллера АТту85 можно добиться частоты работы в 16 МГц. Прототип ИНС, построенный в данной работе, также функционирует на данной частоте. Поэтому представляется возможность дать оценку времени вычислений для конкретной реализации модели персептрона, а также привести теоретические граничные значения для отдельных характеристик ИНС.

Так как на одном нейроне осуществляется задача получения суммы произведений весовых коэффициентов на значения входных сигналов и вычисления значения функции активации от полученной суммы, количество тактов для вычислений можно представить в виде (3):

CN = + сти1 — 1) + с/< (3)

где см - стоимость вычислений на одном нейроне; I - число входов нейрона; сааа - стоимость операции сложения; сти1 - стоимость операции умножения; су - стоимость вычисления функции активации. Переходя от числа входов нейрона к числу синаптических связей в персептроне, получаем:

Ср = + сти1 - 1) + сДл^ + Ыу),

ср = ЛЦЛ^ + + сти1 - 1) + с^ь + ЛГу),

где ср - стоимость вычислений персептрона; Nx,Nk,Ny - число нейронов входного, скрытого н выходного слоев соответственно. В качестве функции активации нейронов скрытого и выходного слоев в ИНС используется снгмондальная функция вида (4):

Исходя из этого, получаем оценку стоимости вычисления функции:

с/ — cdiv + cadd + cpow (5)

где cdiv - стоимость операции деления; cpaw - стоимость опфации возведения в степень. Подставив известные значения параметров ИНС прототипа и средине значения числа тактов в качестве стоимости вычислений из таблицы 3, получим:

Ср = 15(7 + 4}(124 + 152 - 1) + (494 +- 124 + 496)(15 + 4) = 66541 тактов.

Переходя от оценки в тактах к оценке времени выполнения вычислений на заданной частоте, получим время распространения сигналов по сети tpi равное:

66541

^ = „ ______,,,, * 0.004 секунды.

v 16000000 *

Для задачи, поставленной перед разрабатываемым прототипом ИНС, указанное расчетное время выполнения является приемлемым.

Также попробуем дать оценку размера сетн, распространение сигнала по которой будет занимать время меньшее некоторого заданного. Приняв в качестве допущений аналогично ранее приведенному расчету занимаемого ИНС о&ьема памяти Лг;. = log2 JV,, Nh = 2NX +1, перейдем от ранее полученного равенства к функции от одной переменной:

ср = (2NX + 1XJV, + log3 NxXc<xu + сти1 - 1) + cf(2Nx + 1 + log2 Nx).

Подставим в полученное выражение значения числа тактов из таблицы 3 и примем в качестве значения максимального времени распространения по сетн интуитивно приемлемые LOO мнллнсекунд или 1 600 000 тактов. При таких параметрах решим неравенство

(.2NX + 1)(NX + log2 NxXcadd + Сщи! - 1) + cf(_2NX + 1 + log2 Nx) > 1600000 относительно Nx. Сформулированное неравенство вьшо.лняегся при JV, > 48, что превышает ранее полученную оценку максимального размера сетн для размещения в памяти устройства. Таким образом, вышеприведенные рассуждения позволяют сделать вывод о принципиальной возможности применения маломощных ВБМК с точки зрения скорости осуществления вычислений.

Кривые скорости обучения ИНС при заданных в таблице 2 параметрах алгоритма, полученные при 6-ти запусках программного продукта, приведены на рисунке 3. По оси абсцисс отложено число итераций, по оси ординат - средняя ошибка для выходного слоя. Разница в скорости схождения графиков обусловливается тем, что весовые коэффициенты в начале работы алгоритма задаются случайным образом. Можно отметить, что требуется не менее 1 миллиона итераций для достижения заданной (см. таблицу 2 и предшествующий абзац) точности.

Кривые обучения персептрона

Итерация

Рисунок 3 - Кривые обучения персептрона (буква «М» означает «миллионов итераций)

Аппаратная составляющая. Аппаратная часть реализованного проекта (по построению ИНС для распознавания символов, отображаемых на семисегментном индикаторе) состоит из микроконтроллера, сдвигового регистра, семисегментного индикатора, используемого для отображения символа, и светодиода для вспомогательной индикации.

Принципиальная схема устройства приведена на рисунке 4. Сдвиговый регистр применен в силу малого количества портов ввода-вывода выбранного ВБМК. Данное устройство позволяет установить на 8-ми портах вывода значение, полученное путем последовательного побитого ввода данных. При этом управление сдвиговым регистром осуществляется с помощью 3-х выводов микроконтроллера. Из восьми выводов ВБМК только пять доступно в качестве универсальных портов ввода-вывода. Поэтому использование сдвигового регистра для управления семисегментным индикатором становится целесообразным (необходимым).

Рисунок 4 - Принципиальная схема устройства на основе ВБМК

В ходе работы ВБМК генерирует цифру для отображения и выводит ее на семисегментный индикатор. Затем после некоторой задержки отображенный ранее символ искажается «случайным» образом. В качестве параметра, инициализирующего генератор псевдослучайных чисел, выступает значение, полученное с аналого-цифрового преобразователя, активного на выводе 3 микроконтроллера. Так как этот вывод не подключен ни к какой периферии, то на его входе присутствуют случайные «шумы».

Искаженный символ выводится на индикатор и включается вспомогательный светодиод для отображения данного режима (вывод искаженного символа). Бинарное представление символа направляется на вход предварительно обученной ИНС, для которой, таким образом, известны весовые коэффициенты. Полученное выходное значение декодируется и выводится на индикатор, включая при этом дополнительный сегмент - точку (в знак того, что отображается «искаженный» символ).

На этом очередной цикл работы является оконченным и после некоторой задержки по времени запускается новый цикл (итак, вплоть до окончания заданного количества циклов). Диаграмма последовательностей приведена на рисунке 5.

Таким образом, индикация позволяет визуально определить корректность работы ИНС. Вид собранного устройства с включенными средствами индикации на этапе отображения искаженного символа приведен на рисунке 6.

Оно осуществляет декодирование входных данных на основе использования предварительно сгенерированной ИНС. Демонстрация работы устройства приведена на рисунке 6.

Подчеркнем еще раз, что данное устройство, использующее обученную ИНС, используется просто как «демонстрационный объект», позволяющий обосновать возможность использования ВБМК для решения достаточно сложных задач, оценить их вычислительную эффективность.

Рисунок 5 - Диаграмма последовательностей работы прототипа

Рисунок 6 - Вид собранного устройства на беспаечной макетной плате

Генерация исходного символа Искажение символа Результат распознавания

искаженного символа

Рисунок 6 - Этапы работы устройства, представленные в наглядной форме

Выводы. В работе рассмотрена программно-аппаратная реализация модели персептрона на основе использования ВБМК. Разработана нейронная сеть (НС) для задачи распознавании цифр, отображаемых на семисегментном индикаторе. Использовалась топология персептрона с одним скрытым слоем. Выделены характеристики НС, критичные с точки зрения реализации на ВБМК. Разработаны оценки для определения различных параметров НС для конкретных характеристик ВБМК. Дана оценка скорости реакции сети, построенной на базе ВБМК. Сделан вывод о допустимости и целесообразности использования ВБМК для решения выбранной демонстрационной и аналогичных задач.

Библиографический список

1. Евстифеев А. В. Микроконтроллеры AVR семейств Tiny и Mega фирмы ATMEL / А. В. Евстифеев. -5-е изд., стер. - Москва : Издательский дом «Додэка-XXI», 2008. - 560 с.

2. Колмогоров А. Н. О представлении непрерывных функций нескольких переменных суперпозициями непрерывных функций меньшего числа переменных / А. Н. Колмогоров // Докл. АН СССР. - 1956. - Т. 108. - С. 2.

3. Новикова А. А. Информационные технологии в процессе анализа видеоданных / А. А. Новикова, И. Ю. Квятковская // Материалы Всероссийской междисциплинарной научной конференции / под общей ред. Н. Т. Берберовой, А. В. Котельникова. - 2017.

4. Общая электротехника и электроника : учебное пособие для студентов высших учебных заведений / Р. И. Екутеч, А. А. Паранук, В. А. Хрисониди. - Краснодар : Краснодарский ЦНТИ - филиал ФГБУ «РЭА» Минэнерго России, 2019. - 371 с.

5. Шуршев В. Ф. Информационная система для поддержки принятия решений при выборе устройств / В. Ф. Шуршев, Л. В. Буй // Прикаспийский журнал: управление и высокие технологии. - 2015. - № 1 -С. 208-219.

6. Ясницкий Л. Н. Введение в искусственный интеллект : учеб. пособие для студ. высш. учеб. заведений / Л. Н. Ясницкий. - 2-е изд., испр. - Москва : Издательский центр «Академия», 2008. - 176 с.

7. 11 Myths About 8-Bit Microcontrollers / Wayne Freeman. - Microchip Technology, 2016.

8. ATtiny85 - 8-bit Microcontrollers - Режим доступа: https://www.microchip.com/wwwproducts/en /ATtiny85, свободный. - Заглавие с экрана. - Яз. англ. (дата обращения: 30.04.2020).

9. Deep Learning & Artificial Intelligence Solutions from NVIDIA. - Режим доступа: https://www.nvidia.com/en-us/deep-learning-ai/, свободный. - Заглавие с экрана. - Яз. англ. (дата обращения: 30.04.2020).

10. Introducing a New Breed of Microcontrollers for 8/16-bit Applications / Kristian Saether, Ingar Fredriksen. -Atmel Corporation, 2008.

11. Hecht-Nielsen R. Kolmogorov's Mapping Neural Network Existence Theorem / R. Hecht-Nielsen // IEEE First Annual Int. Conf. on Neural Networks. - San Diego, 1987. - Vol. 3. - P. 11-13.

12. Qualcomm Artificial Intelligence | AI Machine Learning | Qualcomm. - Режим доступа: https://www.qualcomm.com/invention/artificial-intelligence, свободный. - Заглавие с экрана. - Яз. англ. (дата обращения: 30.04.2020).

13. Time taken for a mathematical operation | Page 2 | AVR Freaks. - Режим доступа: https://www.avrfreaks.net/comment/720329#comment-720329, свободный. - Заглавие с экрана. - Яз. англ. (дата обращения: 30.04.2020).

References

1. Evstifeev А. V Mikrokontrottery AVR semeystv Tiny i Mega firmy ATMEL [Microcontrollers AVR of the Tiny and Mega families of ATMEL], 5th ed., ster. Moscow, Publishing House «Dodeka-XXI», 2008.

2. Kolmogorov А. N. O predstavlenii nepreryvnykh funktsiy neskolkikh peremennykh superpozitsiyami nepreryvnykh funktsiy menshego chisla peremennykh [On the representation of continuous functions of several variables by superpositions of continuous functions of a smaller number of variables]. Doklady AN SSSR [Proceedings of the Academy of Sciences of the USSR], 1956, vol. 108, p. 2.

3. Novikova А. А., Kvyatkovskaya I. Yu. Informatsionnye tekhnologii v protsesse analiza videodannykh [Information technologies in the process of video data analysis]. Materialy Vserossiyskoy mezhdistsiplinarnoy nauchnoy konferentsii [Materials of the All-Russian interdisciplinary scientific conference], 2017.

4. Ekutech R. I., Paranuk А. А., Khrisonidi V. А. Obshchaya elektrotekhnika i elektronika : uchebnoeposobie dlya studentov vysshikh uchebnykh zavedeniy [General electrical engineering and electronics: a textbook for students of higher educational institutions]. Krasnodar, 2019.

5. Shurshev V F., Buy L. V. Informatsionnaya sistema dlya podderzhki prinyatiya resheniy pri vybore ustroystv Information system for decision support when choosing devices [Information system for decision support when choosing devices]. Prikaspiyskiy zhurnal: upravlenie i vysokie tekhnologiy [Caspian Journal: Control and High Technologies], 2015, no. 1, pp. 208-219.

6. Yasnitskiy L. N. Vvedenie v iskusstvennyy intellect [Introduction to artificial intelligence]. 2nd ed., rev. Moscow, Publishing Center «Аkademiya», 2008.

7. Wayne Freeman. 11 Myths About 8-Bit Microcontrollers. Microchip Technology, 2016.

8. ATtiny85 - 8-bit Microcontrollers. Available at: https://www.microchip.com/wwwproducts/en/ATtiny85 (accessed 30.04.2020).

9. Deep Learning & Artificial Intelligence Solutions from NVIDIA. Available at: https://www.nvidia.com/en-us/deep-learning-ai/ (accessed 30.04.2020).

10. Kristian Saether, Ingar Fredriksen. Introducing a New Breed of Microcontrollers for 8/16-bit Applications. Atmel Corporation, 2008.

11. Hecht-Nielsen R. Kolmogorov's Mapping Neural Network Existence Theorem. IEEE First Annual Int. Conf. on Neural Networks, San Diego, 1987, vol. 3, pp. 11-13.

12. Qualcomm Artificial Intelligence | AI Machine Learning | Qualcomm. Available at: https://www.qualcomm.com/invention/artificial-intelligence (accessed 30.04.2020).

13. Time taken for a mathematical operation | Page 2 | AVR Freaks. Available at: https://www.avrfreaks.net/comment/720329#comment-720329 (accessed 30.04.2020).

i Надоели баннеры? Вы всегда можете отключить рекламу.