Niedawno czytałem o sieciach neuronowych w ograniczonych środowiskach (w szczególności implementacji sieci neuronowej na niedrogim ośmiobitowym mikrokontrolerze ) i ich zastosowaniach w urządzeniach IoT (np. Regresja do przewidywania rzeczy na podstawie danych wejściowych z czujników itp.).
Wydaje się to idealne w przypadku prostych aplikacji, w których przetwarzanie nie jest czasochłonne, a dane do przetworzenia będą stosunkowo rzadkie. Jednak dalsze badania sugerują, że szkolenie sieci neuronowej w środowisku ograniczonym zasobami jest złym pomysłem (patrz odpowiedź na Czy można uruchomić sieć neuronową na mikrokontrolerze ).
Czy nadal dotyczy to podejścia Cotton, Wilamowski i Dündar, które połączyłem? Czy konieczne byłoby szkolenie sieci zaprojektowanej pod kątem niskiego zużycia zasobów na mocniejszym urządzeniu w mojej sieci IoT?
Dla kontekstu, gdybym miał czujnik transmitujący ustawienie ciepła, rozważam sieć neuronową, jak opisano w artykule, aby przewidzieć pożądane ustawienie kotła na podstawie tego i pory dnia itp. Szkolenie byłoby przydatne, aby zmienić sieć neuronową dane wyjściowe w oparciu o więcej danych dostarczonych przez użytkownika. To pytanie Quora dobrze opisuje podobny scenariusz i omawia szczegóły implementacji sieci neuronowej, ale moje pytanie koncentruje się bardziej na tym, czy uruchomienie sieci na samym siłowniku będzie działać.
źródło
Odpowiedzi:
Według pierwszego artykułu bieganie nie stanowi problemu. To był cel. Ograniczenia dotyczą tylko maksymalnych ciężarów:
Jeśli chodzi o szkolenie, o ile rozumiem opisaną implementację, kontroler PIC odbiera parametry z zewnętrznego źródła.
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.
„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.
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.
źródło