Według pierwszego artykułu bieganie nie stanowi problemu. To był cel. Ograniczenia dotyczą tylko maksymalnych ciężarów:
Obecnie ograniczenie architektury wbudowanej w ten mikrokontroler jest ograniczone tylko liczbą potrzebnych wag. Sieć neuronowa jest obecnie ograniczona do 256 wag. Jednak w przypadku większości aplikacji osadzonych ta waga 256 nie powinna ograniczać systemu.
Jeśli chodzi o szkolenie, o ile rozumiem opisaną implementację, kontroler PIC odbiera parametry z zewnętrznego źródła.
Obliczenia do przodu dla sieci neuronowej są zapisywane tak, że każdy neuron jest obliczany indywidualnie w szeregu zagnieżdżonych pętli. Liczba obliczeń dla każdej pętli i wartości dla każdego węzła są przechowywane w prostej tablicy w pamięci.
[...]
Te tablice zawierają architekturę i wagi sieci. Obecnie do celów demonstracyjnych tablice te są wstępnie ładowane w momencie programowania układu, ale w ostatecznej wersji nie byłoby to konieczne. Mikrokontroler można łatwo zmodyfikować, aby zawierał prosty moduł ładujący, który korzysta z wbudowanego portu szeregowego RS232, który odbierałby dane dotyczące wag i topografii ze zdalnej lokalizacji. Umożliwiłoby to modyfikację wag, a nawet całej sieci, gdy chip znajduje się w terenie.
Podejrzewam, że szkolenie odbywa się również na zewnątrz.
Artykuł zawiera również odniesienia do trenerów sieci neuronowych, które prawdopodobnie zostały użyte do określenia wartości zaprogramowanych w pamięci PIC.
- Wilamowski, BM; Bawełna, N .; Hewlett, J .; Kaynak, O., „Trener sieci neuronowej z algorytmami uczenia się drugiego rzędu”,
- Wilamowski, BM; Bawełna, NJ; Kaynak, O .; Dundar, G.,
„Metoda obliczania wektora gradientu i macierzy jakobowskiej w dowolnie połączonych sieciach neuronowych”,
Teraz zajrzałem do pierwszego, który opisuje architektury sieci i algorytmy, które można z nimi stosować. Ale używane tutaj oprogramowanie trenera sieci neuronowej jest zaimplementowane w MATLAB.
Obecnie dostępnych jest bardzo mało oprogramowania do szkolenia sieci neuronowych, które szkoliłoby w pełni połączone sieci. W tym celu w MATLAB został opracowany pakiet z graficznym interfejsem użytkownika. To oprogramowanie pozwala użytkownikowi na łatwe wprowadzanie bardzo złożonych architektur, a także początkowych wag, parametrów szkolenia, zestawów danych oraz wyboru kilku potężnych algorytmów.
Muszę wspomnieć, że w pełni połączone sieci mają niższą liczbę wag dla tego samego zadania niż architektura warstwa po warstwie. Dzięki temu jest bardziej odpowiedni dla mikrokontrolerów.
Nie jestem ekspertem od sieci neuronowych i jest to dość skomplikowane, więc mogę się mylić, ale na podstawie tych dokumentów powiedziałbym, że podejście Cotton, Wilamowski i Dündar wymaga zewnętrznej, silniejszej platformy do przeprowadzenia szkolenia.
O uruchomieniu sieci neuronowej na mikrokontrolerze firma ST Microelectronics właśnie ogłosiła zestaw narzędzi STM32Cube.AI: Konwertuj sieci neuronowe na zoptymalizowany kod dla STM32 do konwersji wstępnie wyszkolonych sieci neuronowych z popularnych bibliotek do większości MCU STM32.