Не могли бы вы реализовать простую нейронную сеть на микропроцессоре, таком как Arduino Uno, для использования в машинном обучении?
Не могли бы вы реализовать простую нейронную сеть на микропроцессоре, таком как Arduino Uno, для использования в машинном обучении?
Ответы:
Не могли бы вы обучить нейронную сеть на микроконтроллере? Может быть, но, пожалуйста, не пытайтесь. Не могли бы вы использовать NN для классификации и т. Д. На микроконтроллере? Конечно, до тех пор, пока вы можете вычислить результат распространения значений узлов и ребер и обработать умножения.
Это, безусловно, возможно реализовать на Arduino. Вот 3 таких библиотеки Arduino, которые реализуют нейронные сети:
Сложность сети, с которой может справиться Arduino, - это отдельный вопрос, особенно когда речь идет об обучении - десятки тысяч итераций на обучающих данных. Тренировка на быстрой машине, а затем копирование весов нейронов в Arduino будет более разумным способом разработки вашей реализации.
Да. Если вы запускаете его только в режиме прямой связи и проводите обучение в другом месте:
Я запрограммировал 3-слойный (5-5-2) ANN с прямой связью на Arduino UNO. Это бежало на мобильном роботе. Всякий раз, когда робот ударяет что-то, он переучивает сеть. Прямая часть сети работала в режиме реального времени; в то время как тренировка обратного распространения заняла порядка ~ 5-20 секунд. Я полагаю, вы могли бы урезать размер сети, а также играть с параметрами, чтобы заставить ее работать немного быстрее, но если вы планируете делать обратное распространение на Arduino, я думаю, что это будет слишком медленно.
Некоторые мысли для ускорения вещей включают в себя:
Вот краткое описание, которое я сделал для сети.
Да, действительно, в микроконтроллеры можно встроить нейронную сеть. Подобных примеров в научной литературе много, но я могу привести яркий пример того, что можно сделать с помощью очень простого MCU, если вы достаточно умны. В Evolutionary Bits'n'Spikes авторы описывают реализацию всплеска нейронной сети в реальном времени И генетического алгоритма для ее обучения, чтобы управлять роботом с дифференциальным колесом. Весь код работает в крошечном микроконтроллере PIC16F628 с тактовой частотой 4 МГц, встроенном в робота Alice размером 1 кубический дюйм.