AIfES (Artificial Intelligence for Embedded Systems — Искусственный интеллект для встроенных систем) — это библиотека машинного обучения, реализованная на чистом C и работающая даже на 8-битных микроконтроллерах Arduino.
Создатели библиотеки — Фраунгоферовский институт микроэлектронных схем и систем (Fraunhofer Institute for Microelectronic Circuits and Systems (IMS)).
В отличие от многих существующих систем, данная библиотека позволяет не только запускать, но даже и обучать искусственные нейронные сети практически на любом оборудовании, включая 8-битный Arduino Uno.
Утверждается, что AIfES сопоставим и даже совместим с популярными фреймворками машинного обучения на Python (TensorFlow, Keras или PyTorch).
Текущая версия поддерживает нейронные сети прямого распространения. Уже реализованы такие функции активации, как: ReLU, Sigmoid, Softmax, Leaky ReLU, ELU, Tanh, Softsign.
Из типов слоёв пока реализован только полносвязный слой: Dense.
Обещана скорая реализация свёрточного слоя для создания свёрточных нейронных сетей (ConvNet).
Реализованы функции потерь: Mean Squared Error (MSE), Crossentropy.
Реализованы самые популярные оптимизаторы: Stochastic Gradient Descent (SGD) и Adam.
Библиотека поддерживает импорт нейронных сетей из других фреймворков машинного обучения.
Пример для Keras — 4_XOR_Inference_keras
Библиотека AIfES разработана по модульному принципу, что позволяет изменять различные компоненты алгоритмов. Например, для умножение матриц можно использовать аппаратные ускорители различных семейств процессоров (например, CMSIS DSP контроллеров ARM Cortex).
Ссылки
AIfES for Arduino
AIfES by Fraunhofer IMS
AIfES is an AI/ML framework written in C for even the smallest microcontrollers
По теме
Запуск TensorFlow Lite Micro на Arduino
STM32Cube.AI — пакет расширения для STM32CubeMX для встраивания нейронных сетей в микроконтроллеры STM32
CMSIS-NN — библиотека для работы с нейронными сетями для микроконтроллеров ARM Cortex-M
uTensor — AI на микроконтроллерах
Глубокие нейронные сети как следующий этап развития программного обеспечения
Будущее глубокого обучения
Нейронная сеть
Нейронная сеть — введение
Принцип обучения многослойной нейронной сети с помощью алгоритма обратного распространения
Пример работы самоорганизующейся инкрементной нейронной сети SOINN