Можно ли запустить и обучить нейронную сеть на 8-битном микроконтроллере?


11

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

Это кажется идеальным для простых приложений, где обработка не является критичной по времени, а данные для обработки будут относительно редкими. Тем не менее, дальнейшие исследования показывают, что обучение нейронной сети в условиях ограниченных ресурсов является плохой идеей (см. Ответ на вопрос « Можно ли запустить нейронную сеть на микроконтроллере» ).

Применимо ли это к подходу Коттона, Виламовского и Дюндара, который я связал? Нужно ли обучать сеть, предназначенную для низкого использования ресурсов, на более мощном устройстве в моей сети IoT?

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


Любопытно, вы намереваетесь запустить нейронную сеть на каждом узле датчика / исполнительного механизма или на каком-либо (полу) централизованном «мозге» (тогда, конечно, 8-битное ограничение не обязательно будет применяться)?
Ганима

@Ghanima, если это возможно, я хотел бы сделать это на узле привода, чтобы сохранить дополнительный уровень сложности, хотя я не уверен, будет ли это работать с ограниченными ограничениями.
Аврора0001

@ Aurora0001 Конкретный контроллер, который вы здесь размещаете, может не подходить для обучения вашего NN, но в мире встроенного компьютерного зрения предпринимаются согласованные усилия, чтобы сделать именно это. Если вы пытаетесь найти микроконтроллер с архитектурой, подходящей для таких задач, я предлагаю вам обратиться к компаниям, разрабатывающим такие виды оборудования для индустрии компьютерного зрения. Я уверен, что некоторые из них могут быть переназначены и адаптированы к вашим требованиям. Хорошее место для начала
grldsndrs

@grldsndrs фантастика, спасибо за ссылку. Не стесняйтесь опубликовать его в качестве дополнительного ответа, если вы чувствуете, что этого достаточно (я, безусловно, был бы счастлив с этим)
Aurora0001

1
8-битный процессор может делать все, что может более широкий текстовый процессор, только возможно (зависит от задачи) медленнее. Однако 8-разрядные процессоры, как правило, имеют ограниченное собственное адресное пространство, что означает, что они должны использовать косвенные средства для управления очень большими объемами памяти, а в случае микроконтроллеров, как правило, поставляются со сравнительно небольшими объемами встроенной памяти. Разница в затратах все меньше и меньше, чем у самого нижнего уровня - основной драйвер стоимости MCU - это, вероятно, память, а не ширина ALU.
Крис Страттон

Ответы:


9

Согласно первой статье , бег не является проблемой. Это была цель. Только есть ограничение по максимальному весу:

В настоящее время ограничение на архитектуру, встроенную в этот микроконтроллер, ограничено только количеством необходимых весов. Нейронная сеть в настоящее время ограничена 256 весами. Однако для большинства встроенных приложений этот вес 256 не должен ограничивать систему.


Что касается обучения, насколько я понимаю описанную реализацию, контроллер PIC получает параметры от внешнего источника.

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

[...]

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

Я подозреваю, что обучение проводится и внешне.

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

Теперь я посмотрел на первый, который описывает сетевые архитектуры и алгоритмы для использования с ними. Но используемое здесь программное обеспечение Neural Network Trainer реализовано в MATLAB.

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

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

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


О запуске нейронной сети на микроконтроллере ST Microelectronics только что анонсировала набор инструментов STM32Cube.AI: преобразование нейронных сетей в оптимизированный код для STM32 для преобразования предварительно обученных нейронных сетей из популярных библиотек в большинство своих микроконтроллеров STM32.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.