К вопросу об использовании микроконтроллеров для реализации искусственных нейронных сетей | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 4 мая, печатный экземпляр отправим 8 мая.

Опубликовать статью в журнале

Автор:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №46 (284) ноябрь 2019 г.

Дата публикации: 13.11.2019

Статья просмотрена: 694 раза

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

Скрипов, С. А. К вопросу об использовании микроконтроллеров для реализации искусственных нейронных сетей / С. А. Скрипов. — Текст : непосредственный // Молодой ученый. — 2019. — № 46 (284). — С. 26-28. — URL: https://moluch.ru/archive/284/63914/ (дата обращения: 26.04.2024).



В настоящее время искусственные нейронные сети могут использоваться для решения задач классификации, распознавания, предсказания. Для реализации таких нейронных сетей используются ЭВМ, имеющие достаточно большие вычислительные ресурсы, при этом может использоваться как центральный, так и графический процессор. Также существуют примеры реализации нейронных сетей на устройствах с низкой производительностью, таких как одноплатные компьютеры [1]. Обычно это различные модели Raspberry PI [2], Orange Pi [3], Banana PI. Однако существует также множество устройств от компаний Olimex, Cubietech, Intel [4] и многих других, на которых искусственные нейронные сети также могут быть легко реализованы.

В качестве недостатков реализации на основе ЭВМ или одноплатного компьютера можно выделить относительно высокую стоимость устройств, а также относительно высокое энергопотребление. В рамках данной работы рассматривается возможность реализации нейронной сети на базе микроконтроллеров. Их главные преимущества — относительно невысокая цена, малые размеры, малое энергопотребление. Цена микроконтроллера, на основе которого можно развернуть нейронную сеть начинается от $1. В процессе работы микроконтроллер может потреблять ток в несколько миллиампер, а в режиме энергосбережения (сна) — <1мкА [5]. Эти особенности позволяют применять микроконтроллеры в самых различных устройствах без существенного увеличения стоимости последних. При этом возможно автономное питание от батареи, что позволяет проектировать портативные устройства [6].

В настоящее время существуют примеры успешного применения нейронных сетей на основе микроконтроллеров в различных сферах деятельности, таких как медицина или исследования. Примеры успешного применения микроконтроллеров описаны в [7] и [8].

В рамках данной работы рассматривается возможность портирования на микроконтроллер нейронной сети, обученной на классической ЭВМ. Для этого создан прототип программной системы для переноса нейронной сети и её запуска на микроконтроллере. В качестве микроконтроллера использовался модуль ESP8266 [9]. Данный модуль оснащен процессором Tensilica L106 с ультрамалым потреблением энергии, имеет 64 Кб оперативной памяти и 1 Мб флеш-памяти. Имеется также встроенный адаптер Wi-Fi, что позволяет использовать ESP8266 для реализации интернета вещей. Выбор в пользу этого устройства был сделан по причине возможности быстрого создания прототипов на языке Lua при использовании встроенного программного обеспечения NodeMCU.

Для проведения эксперимента была обучена нейронная сеть, которая классифицирует изображения одежды. Для обучения был использован датасет Fashion MNIST, содержащий размеченные изображения размером 28x28. Нейронная сеть создана с использованием платформы TensorFlow и библиотеки Keras. Входной слой состоит из 784‬ нейронов, выходной из 10 нейронов. Имеется один скрытый слой, количество нейронов в котором будет в рамках эксперимента составлять 64, 32 или 16 нейронов. Для скрытого слоя используется функция активации relu, для выходного слоя — softmax.

Рис. 1. Модель нейронной сети

Для переноса обученной нейронной сети на другую платформу необходимо получить веса синапсов и смещения для нейронов выходного и скрытого слоев. Эти значения были сохранены в файлы в формате вещественных чисел одинарной точности.

Для работы с микроконтроллером была подготовлена сборка NodeMCU [10]. Для работы с файлами используется модуль file, для извлечения вещественных чисел в формате IEEE 754 в сборку добавлен модуль struct. Сборка позволяет производить операции над числами с плавающей точкой.

Для реализации нейронной сети были написаны два сценария: nn.lua, позволяющий делать предсказания на основе нейронной сети, и activation.lua, реализующий функции активации. В процессе работы данные извлекаются напрямую с флеш-памяти, так как оперативная память не способна вместить все веса синапсов из-за её малого размера. Таким образом на микроконтроллер загружено 7 файлов (рис. 2).

Рис. 2. Файлы на флеш-памяти микроконтроллера

Здесь layer1.dat и layer2.dat — файлы, содержащие список весов синапсов для соответствующих уровней, а biases1.dat и biases2.dat — смещения для нейронов. Файл image1.dat содержит изображение для классификации.

Процессор ESP 8266 может работать на частотах 80 МГц и 160 МГц. Был измерен ток потребления для обоих режимов, для частоты 80 МГц он составил 20.2 мА, для 160 МГц — 24.8 мА. На устройство подавалось напряжение 3.3 В. С помощью микроконтроллера получены предсказания, аналогичные предсказаниям, полученным с помощью ЭВМ. Результаты эксперимента приведены в таблице 1.

Таблица 1

Результаты эксперимента

Кол-во нейронов скрытого слоя

Точность

Размер данных (веса, смещения)

Время предсказания, 80 МГц

Время предсказания, 160 МГц

64

0.8848

203560‬ байт

53.85 секунд

31.79 секунд

32

0.8785

101800 байт‬

26.78 секунд

15.38 секунд

16

0.8619

50920 байт‬

13.62 секунд

7.83 секунд

Из проведенного эксперимента видно, что нейронной сети, реализованной на основе микроконтроллера, требуется относительно много времени для предсказания. Это связано с необходимостью вычислений с плавающей точкой, которые в данном случае реализованы программно. Для ускорения работы нейронной сети необходимо модифицировать алгоритмы таким образом, чтобы для расчетов использовались только целочисленные операции. Примеры таких реализаций приведены в [11]

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

Литература:

  1. Manav Mehra, Sameer Saxena, Suresh Sankaranarayanan, Rijo Jackson Tom, M. Veeramanikandan. IoT based hydroponics system using Deep Neural Networks // Computers and Electronics in Agriculture. — 2018. — № 155(2018). — С. 473–486.
  2. Deep Neural Network Benchmark with Raspberry Pi 2, 3 and 3+ // Element14. URL: https://www.element14.com/community/thread/63591/l/deep-neural-network-benchmark-with-raspberry-pi-2–3-and-3 (дата обращения: 10.11.2019).
  3. What’s Orange Pi 3 // Orange Pi. URL: http://www.orangepi.org/Orange %20Pi %203/ (дата обращения: 10.11.2019).
  4. D.Gutierrez-GalanJuan, P.Dominguez-Morales, E.Cerezuela-Escudero, A.Rios-Navarro, R.Tapiador-Morales, M.Rivas-Perez, M.Dominguez-Morales, A.Jimenez-Fernandez, A.Linares-Barranco. Embedded neural network for real-time animal behavior classification // Neurocomputing. — 2017. — № 272. — С. 17–26.
  5. New/Popular 8-bit PIC MCU Products // Microchip. URL: https://www.microchip.com/ParamChartSearch/Chart.aspx?branchID=30048 (дата обращения: 10.11.2019).
  6. Umar Farooq, Muhammad Amar, Muhammad Usman Asad, Athar Hanif, and Syed Omar Saleh. Design and Implementation of Neural Network Based Controller for Mobile Robot Navigation in Unknown Environments // International Journal of Computer and Electrical Engineering. — 2014. — № 6(2). — С. 83–89.
  7. Javier Ibánez Civera, Eduardo Garcia Breijo, Nicolás Laguarda Miró, Luis Gil Sánchez, José Garrigues Baixauli, Inmaculada Romero Gil, Rafael Masot Peris, Miguel Alcaniz Fillol. Artificial neural network onto eight bit microcontroller for Secchi depth calculation // Sensors and Actuators B. — 2011. — № 156(2011). — С. 132–139.
  8. Maria Hügle, Simon Heller, Manuel Watter, Manuel Blum, Farrokh Manzouri, Matthias Dümpelmann, Andreas Schulze-Bonhage, Peter Woias, Joschka Boedecker. Early Seizure Detection with an Energy-Efficient Convolutional Neural Network on an Implantable Microcontroller // International Joint Conference on Neural Networks, 2018.
  9. WiFi модуль ESP8266 ESP07 для домашней автоматизации // Mysku. URL: https://mysku.ru/blog/ebay/30626.html (дата обращения: 10.11.2019).
  10. NodeMCU custom builds // NodeMCU. URL: https://nodemcu-build.com/ (дата обращения: 10.11.2019).
  11. Jnana Ranjan Tripathy, Hrudaya Kumar Tripathy, S. S. Nayak. Artificial Neural Network Implementation in Microchip PIC 18F45J10 8-Bit Microcontroller // International Journal of Engineering and Advanced Technology. — 2014. — № 3(5). — С. 131–135.
Основные термины (генерируются автоматически): нейронная сеть.


Похожие статьи

Аппаратная реализация искусственных нейронных сетей.

Рассмотрены типы искусственных нейронных сетей. Представлены методы аппаратной реализации искусственных нейронных сетей с использованием аналоговых, либо цифровых...

Искусственные нейронные сети | Статья в журнале...

Что же такое искусственные нейронные сети? Фактически, это математическая модель, абстракция. История самой дисциплины начинается с середины 60-х годов прошлого века...

Исследование возможностей использования нейронных сетей

В данной статье рассматриваются теоретические основы нейронных сетей, исследование их видов и описание их математической модели.

Применение нейронных сетей в экономике | Статья в журнале...

В век научно-технического прогресса мы имеем огромное количество разнообразных открытий и исследований, одним из которых является изучение нейросетевых технологий.

Виды архитектур нейронных сетей | Статья в журнале...

В этой статье представлен обзор наиболее популярных архитектур нейронных сетей. Для некоторых из них приведены подходящие сферы применения.

Нейронные сети.

Нейронные сети. Нейронная сеть — это математическая модель, построенная на принципах работы человеческого мозга. Нервная система и мозг человека состоят из нейронов...

Модель математической нейронной сети | Статья в журнале...

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

GRU и LSTM: современные рекуррентные нейронные сети

Рекуррентные нейронные сети (Recurrent Neural Network, RNN) — класс моделей машинного обучения, основанный на использовании предыдущих состояний сети для вычисления...

Прогнозирование потребительского поведения на основе...

В моделировании потребительского поведения использование нейронных сетей по сравнению с другими методами получило меньшее распространение ввиду трудоемкости построения ее...

Разработка математической модели нейронной сети

В статье рассмотрены вопросы разработки математической модели нейронной сети. Ключевые слова: модель, нейрон, математика, нейронные сети...

Похожие статьи

Аппаратная реализация искусственных нейронных сетей.

Рассмотрены типы искусственных нейронных сетей. Представлены методы аппаратной реализации искусственных нейронных сетей с использованием аналоговых, либо цифровых...

Искусственные нейронные сети | Статья в журнале...

Что же такое искусственные нейронные сети? Фактически, это математическая модель, абстракция. История самой дисциплины начинается с середины 60-х годов прошлого века...

Исследование возможностей использования нейронных сетей

В данной статье рассматриваются теоретические основы нейронных сетей, исследование их видов и описание их математической модели.

Применение нейронных сетей в экономике | Статья в журнале...

В век научно-технического прогресса мы имеем огромное количество разнообразных открытий и исследований, одним из которых является изучение нейросетевых технологий.

Виды архитектур нейронных сетей | Статья в журнале...

В этой статье представлен обзор наиболее популярных архитектур нейронных сетей. Для некоторых из них приведены подходящие сферы применения.

Нейронные сети.

Нейронные сети. Нейронная сеть — это математическая модель, построенная на принципах работы человеческого мозга. Нервная система и мозг человека состоят из нейронов...

Модель математической нейронной сети | Статья в журнале...

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

GRU и LSTM: современные рекуррентные нейронные сети

Рекуррентные нейронные сети (Recurrent Neural Network, RNN) — класс моделей машинного обучения, основанный на использовании предыдущих состояний сети для вычисления...

Прогнозирование потребительского поведения на основе...

В моделировании потребительского поведения использование нейронных сетей по сравнению с другими методами получило меньшее распространение ввиду трудоемкости построения ее...

Разработка математической модели нейронной сети

В статье рассмотрены вопросы разработки математической модели нейронной сети. Ключевые слова: модель, нейрон, математика, нейронные сети...

Задать вопрос