За першим документом , біг не є проблемою. Це і було метою. Тільки існує обмеження щодо максимальної ваги:
В даний час обмеження на архітектуру, вбудовану в цей мікроконтролер, обмежується лише кількістю необхідних ваг. На даний момент нейронна мережа обмежена 256 вагами. Однак для більшості вбудованих додатків ця вага 256 не повинна обмежувати систему.
Що стосується навчання, наскільки я розумію описану реалізацію, контролер PIC отримує параметри від зовнішнього джерела.
Обчислення прямої передачі нейронної мережі записуються таким чином, що кожен нейрон обчислюється індивідуально в серії вкладених петель. Кількість обчислень для кожного циклу та значення для кожного вузла зберігаються у простому масиві пам'яті.
[...]
Ці масиви містять архітектуру та ваги мережі. Наразі, для демонстраційних цілей, ці масиви попередньо завантажуються під час програмування чіпа, але в остаточній версії це не буде необхідним. Мікроконтролер може бути легко модифікований, щоб містити простий завантажувач, який використовує бортовий послідовний порт RS232, який би отримував дані для ваг і топографії з віддаленого місця. Це дозволить змінити ваги або навіть всю мережу, поки чіп знаходиться в полі.
Я підозрюю, що навчання проводиться і зовні.
У статті також наведено посилання на тренери нейронної мережі, які, ймовірно, використовувались для визначення значень, попередньо запрограмованих у пам'ять PIC.
- Віламовський, БМ; Бавовна, N .; Hewlett, J .; Кайнак, О., "Тренер нейронної мережі з алгоритмами навчання другого порядку"
- Віламовський, БМ; Бавовна, штат Нью-Джерсі; Кайнак, О.; Дундар, Г.,
"Метод обчислення градієнтного вектора та матриці Якоба в довільно пов'язаних нейронних мережах"
Тепер я розглянув перший, який описує мережеві архітектури та алгоритми для використання з ними. Але програмне забезпечення Neural Network Trainer, що використовується тут, реалізовано в MATLAB.
В даний час існує дуже мало програмного забезпечення для навчання нейронних мереж, яке буде тренувати повністю пов'язані мережі. Таким чином для цієї мети був розроблений пакет з графічним інтерфейсом користувача в MATLAB. Це програмне забезпечення дозволяє користувачеві легко вводити дуже складні архітектури, а також початкові ваги, параметри тренувань, набори даних та вибір декількох потужних алгоритмів.
Я мушу зазначити, що повністю підключені мережі мають меншу кількість ваг для тієї ж задачі, ніж архітектура пошарово. Це робить його більш придатним для мікроконтролерів.
Я не є експертом з нейронних мереж, і це досить складно, тому я можу помилитися, але виходячи з цих робіт, я б сказав, що підхід Коттона, Віламовського та Дюндара вимагає зовнішньої, більш потужної платформи для навчання.
Щодо запуску нейронної мережі на мікроконтролері, ST Microelectronics щойно оголосила інструментарій STM32Cube.AI: Перетворити нейронні мережі в оптимізований код для STM32 для перетворення заздалегідь підготовлених нейронних мереж з популярних бібліотек до більшості своїх MCU STM32.