Modele uczenia maszynowego są teraz wszędzie. W ciągu dnia prawdopodobnie korzystasz z tych modeli o wiele częściej, niż Ci się wydaje. Modele uczenia maszynowego są wykorzystywane w typowych zadaniach, takich jak przeglądanie mediów społecznościowych, fotografowanie i sprawdzanie pogody.
Algorytm uczenia maszynowego mógł polecić Ci tego bloga. Wszyscy słyszeliśmy o tym, jak czasochłonne jest trenowanie tych modeli. Wszyscy słyszeliśmy, że trenowanie tych modeli jest czasochłonne.
Jednak wnioskowanie na podstawie tych modeli jest często kosztowne obliczeniowo.
Potrzebujemy systemów komputerowych, które są wystarczająco szybkie, aby obsłużyć tempo, w jakim korzystamy z usług uczenia maszynowego. W rezultacie większość tych modeli działa w ogromnych centrach danych z klastrami procesorów i kart graficznych (w niektórych przypadkach nawet TPU).
Kiedy robisz zdjęcie, chcesz uczenie maszynowe aby natychmiast ją poprawić. Nie chcesz czekać, aż obraz zostanie przesłany do centrum danych, przetworzony i zwrócony. W takim przypadku model uczenia maszynowego powinien być wykonywany lokalnie.
Kiedy mówisz „Hej, Siri” lub „OK, Google”, chcesz, aby Twoje gadżety reagowały natychmiast. Oczekiwanie na przesłanie Twojego głosu do komputerów, gdzie zostanie on oceniony i pozyskane dane.
Zajmuje to czas i ma szkodliwy wpływ na wrażenia użytkownika. W takim przypadku chcesz, aby model uczenia maszynowego działał również lokalnie. I tu pojawia się TinyML.
W tym poście przyjrzymy się TinyML, jak to działa, jego zastosowaniu, jak zacząć z nim korzystać i wiele więcej.
Co to jest TinyML?
TinyML to najnowocześniejsza dyscyplina, która wykorzystuje rewolucyjny potencjał uczenia maszynowego do wydajności i ograniczeń mocy małych urządzeń i systemów wbudowanych.
Pomyślne wdrożenie w tej branży wymaga dogłębnego zrozumienia aplikacji, algorytmów, sprzętu i oprogramowania. Jest to podgatunek uczenia maszynowego, który wykorzystuje modele uczenia głębokiego i uczenia maszynowego w systemach wbudowanych, które wykorzystują mikrokontrolery, cyfrowe procesory sygnałowe lub inne wyspecjalizowane procesory o bardzo niskim zużyciu energii.
Urządzenia wbudowane obsługujące TinyML są przeznaczone do uruchamiania algorytmu uczenia maszynowego dla określonego zadania, zazwyczaj jako część przetwarzanie krawędziowe.
Aby działać przez tygodnie, miesiące, a nawet lata bez ładowania lub wymiany baterii, te wbudowane systemy muszą zużywać mniej niż 1 mW.
Jak to działa?
Jedyną platformą uczenia maszynowego, którą można wykorzystać z mikrokontrolerami i komputerami, jest TensorFlow Lite. Jest to zestaw narzędzi, które pozwalają programistom uruchamiać ich modele na urządzeniach mobilnych, wbudowanych i brzegowych, umożliwiając uczenie maszynowe w locie.
Interfejs mikrokontrolera służy do zbierania danych z czujników (takich jak mikrofony, kamery lub czujniki wbudowane).
Przed wysłaniem do mikrokontrolera dane są włączane do opartego na chmurze modelu uczenia maszynowego. Szkolenie wsadowe w trybie offline jest powszechnie stosowane do uczenia tych modeli. Dane czujnika, które będą używane uczenie się i wnioskowanie została już określona dla konkretnego zastosowania.
Jeśli model jest na przykład szkolony do wykrywania słowa budzącego, jest już skonfigurowany do obsługi ciągłego strumienia audio z mikrofonu.
Wszystko jest już zrobione za pomocą platformy chmurowej, takiej jak Google Colab w przypadku TensorFlow Lite, w tym wybór zestawu danych, normalizacja, niedopasowanie lub przepełnienie modelu, regularyzacja, powiększanie danych, trenowanie, walidacja i testowanie.
W pełni wytrenowany model jest ostatecznie przekształcany i przesyłany do mikrokontrolera, mikrokomputera lub cyfrowego procesora sygnałowego po uczeniu wsadowym offline. Model nie ma dodatkowego szkolenia po przeniesieniu na urządzenie wbudowane. Zamiast tego do zastosowania modelu wykorzystuje wyłącznie dane w czasie rzeczywistym z czujników lub urządzeń wejściowych.
W rezultacie model uczenia maszynowego TinyML musi być wyjątkowo trwały i możliwy do przeszkolenia po latach lub nigdy nie przekwalifikowany. Wszystkie potencjalne niedopasowania i nadmierne dopasowania modelu muszą zostać zbadane, aby model pozostał istotny przez dłuższy czas, najlepiej w nieskończoność.
Ale po co używać TinyML?
TinyML rozpoczęło się jako próba wyeliminowania lub zmniejszenia zależności IoT od usług w chmurze w przypadku podstawowych usług na małą skalę uczenie maszynowe operacje. Wymagało to zastosowania modeli uczenia maszynowego na samych urządzeniach brzegowych. Zapewnia następujące główne korzyści:
- Mała moc konsumpcja: Aplikacja TinyML powinna zużywać mniej niż 1 miliwat mocy. Przy tak niskim zużyciu energii urządzenie może nadal wyciągać wnioski z danych z czujników przez miesiące lub lata, nawet jeśli jest zasilane baterią pastylkową.
- niższe koszty: Jest przeznaczony do pracy na tanich 32-bitowych mikrokontrolerach lub procesorach DSP. Te mikrokontrolery kosztują zwykle kilka centów za sztukę, a całkowity system wbudowany z nimi opracowany to mniej niż 50 USD. Jest to bardzo opłacalna opcja do uruchamiania małych programów uczenia maszynowego na dużą skalę i jest szczególnie korzystna w aplikacjach IoT, w których konieczne jest zastosowanie uczenia maszynowego.
- Niższe opóźnienie: Jego aplikacje mają małe opóźnienia, ponieważ nie muszą przesyłać ani wymieniać danych przez sieć. Wszystkie dane z czujników są rejestrowane lokalnie, a wnioski są wyciągane przy użyciu już wytrenowanego modelu. Wyniki wnioskowania mogą być przesyłane do serwera lub chmury w celu logowania lub dodatkowego przetwarzania, chociaż nie jest to niezbędne do działania urządzenia. Minimalizuje to opóźnienia sieci i eliminuje konieczność wykonywania operacji uczenia maszynowego w chmurze lub na serwerze.
- Prywatności: Jest to poważny problem w Internecie i Internecie rzeczy. Uczenie maszynowe w aplikacjach TinyML odbywa się lokalnie, bez przechowywania lub wysyłania danych czujnika/użytkownika do serwera/chmury. W rezultacie, nawet jeśli są połączone z siecią, aplikacje te są bezpieczne w użyciu i nie stanowią zagrożenia dla prywatności.
Konsultacje
- Rolnictwo – Kiedy rolnicy robią zdjęcie rośliny, aplikacja TensorFlow Lite wykrywa w niej choroby. Działa na każdym urządzeniu i nie wymaga połączenia z Internetem. Procedura chroni interesy rolników i jest niezbędna dla rolników wiejskich.
- Konserwacja mechaniki – TinyML, gdy jest używany na urządzeniach o niskim poborze mocy, może stale identyfikować wady maszyny. Pociąga to za sobą konserwację opartą na przewidywaniu. Ping Services, australijski start-up, wprowadził gadżet IoT, który monitoruje turbiny wiatrowe, przyczepiając się do zewnętrznej części turbiny. Powiadamia władze o każdym możliwym problemie lub awarii.
- Szpitale – im Solar Scare to projekt. Mosquito używa TinyML do powstrzymania rozprzestrzeniania się chorób, takich jak denga i malaria. Jest zasilany energią słoneczną i wykrywa warunki rozmnażania się komarów, zanim zasygnalizuje wodzie, aby zahamowała rozmnażanie się komarów.
- Nadzór Ruchu – wg stosując TinyML do czujników, które zbierają dane o ruchu drogowym w czasie rzeczywistym, możemy wykorzystać je do lepszego kierowania ruchem i skrócenia czasu reakcji pojazdów uprzywilejowanych. Na przykład Swim.AI wykorzystuje tę technologię do przesyłania strumieniowego danych, aby zwiększyć bezpieczeństwo pasażerów, a jednocześnie zmniejszyć korki i emisje dzięki inteligentnemu wyznaczaniu tras.
- Prawo: TinyML może być używany przez organy ścigania do identyfikowania nielegalnych działań, takich jak zamieszki i kradzieże, przy użyciu uczenia maszynowego i rozpoznawania gestów. Podobny program może być również wykorzystany do zabezpieczenia bankomatów banków. Obserwując zachowanie użytkownika, model TinyML może przewidzieć, czy użytkownik jest prawdziwym konsumentem dokonującym transakcji, czy też intruzem próbującym zhakować lub zniszczyć bankomat.
Jak zacząć z TinyML?
Aby rozpocząć pracę z TinyML w TensorFlow Lite, potrzebujesz kompatybilnej płytki mikrokontrolera. TensorFlow Lite dla mikrokontrolerów obsługuje mikrokontrolery wymienione poniżej.
- Terminal Wio: ATSAMD51
- Płyta rozwojowa Himax WE-I Plus EVB Endpoint AI
- Zestaw wykrywający STM32F746
- Odznaka Adafruit Edge
- Platforma programistyczna Synopsys DesignWare ARC EM
- Sony Express
- Arduino Nano 33 BLE Sense
- Krawędź SparkFun
- Zestaw Adafruit TensorFlow Lite do mikrokontrolerów
- Bluefruitowy plac zabaw Adafruit Circuit
- Espressif ESP32-DevKitC
- Espressif ESP-EYE
Są to 32-bitowe mikrokontrolery posiadające wystarczającą ilość pamięci flash, pamięci RAM i częstotliwości taktowania, aby wykonać model uczenia maszynowego. Płyty mają również szereg wbudowanych czujników, które mogą uruchamiać dowolny wbudowany program i stosować modele uczenia maszynowego do docelowej aplikacji. Do zbudować model uczenia maszynowego, oprócz platformy sprzętowej potrzebny będzie laptop lub komputer.
Każda platforma sprzętowa ma własne narzędzia programistyczne do budowania, uczenia i przenoszenia modeli uczenia maszynowego, które wykorzystują pakiet TensorFlow Lite for Microcontrollers. TensorFlow Lite jest darmowy w użyciu i modyfikacji, ponieważ jest open source.
Aby rozpocząć pracę z TinyML i TensorFlow Lite, wystarczy jedna z wyżej wymienionych wbudowanych platform sprzętowych, komputer/laptop, kabel USB, konwerter USB-to-Serial – i chęć przećwiczenia uczenia maszynowego z systemami wbudowanymi.
Wyzwania
Nawet jeśli postęp TinyML przyniósł wiele pozytywnych rezultatów, branża uczenia maszynowego wciąż napotyka znaczne przeszkody.
- Różnorodność oprogramowania — ręczne kodowanie, generowanie kodu i interpretery ML to opcje wdrażania modeli na urządzeniach TinyML, a każdy z nich wymaga innego czasu i wysiłku. W wyniku tego mogą powstać różne występy.
- Różnorodność sprzętu — Nie dostępnych jest kilka opcji sprzętowych. Platformami TinyML może być wszystko, od mikrokontrolerów ogólnego przeznaczenia po najnowocześniejsze procesory neuronowe. Powoduje to problemy z wdrażaniem modelu w różnych architekturach.
- Rozwiązywanie problemów/debugowanie — Kiedy model ML słabo działa w chmurze, łatwo jest spojrzeć na dane i dowiedzieć się, co jest nie tak. Gdy model jest rozproszony na tysiącach urządzeń TinyML i żaden strumień danych nie wraca do chmury, debugowanie staje się trudne i może wymagać zastosowania innej metody.
- Ograniczenia pamięci – Tradycyjne platformy, takie jak smartfony i laptopy, potrzebują gigabajtów pamięci RAM, podczas gdy urządzenia TinyML wykorzystują kilobajty lub megabajty. W rezultacie rozmiar modelu, który można wdrożyć, jest ograniczony.
- Szkolenie modelowe – Chociaż Istnieje kilka zalet wdrażania modeli ML na urządzeniach TinyML, większość modeli ML jest nadal szkolona w chmurze, aby iterować i stale poprawiać dokładność modelu.
Przyszłość
TinyML, dzięki swoim niewielkim rozmiarom, niskiemu zużyciu baterii oraz braku lub ograniczonej zależności od łączności internetowej, ma ogromny potencjał w przyszłości, ponieważ większość wąskich sztuczna inteligencja zostaną zaimplementowane na urządzeniach brzegowych lub niezależnych gadżetach osadzonych.
Dzięki ich wykorzystaniu aplikacje IoT będą bardziej prywatne i bezpieczne. Chociaż TensorFlow Lite jest obecnie jedyną platformą uczenia maszynowego dla mikrokontrolerów i mikrokomputerów, trwają prace nad innymi porównywalnymi platformami, takimi jak czujnik i CMSIS-NN firmy ARM.
Chociaż TensorFlow Lite jest w toku projektem typu open source, który miał wspaniały start w zespole Google, nadal potrzebuje wsparcia społeczności, aby dostać się do głównego nurtu.
Wnioski
TinyML to nowatorskie podejście, które łączy systemy wbudowane z uczeniem maszynowym. Ponieważ wąska sztuczna inteligencja osiąga szczyt w wielu branżach i domenach, technologia ta może stać się znaczącą poddziedziną uczenia maszynowego i sztucznej inteligencji.
Zapewnia rozwiązanie wielu wyzwań, przed którymi stoi sektor IoT i specjaliści stosujący uczenie maszynowe w wielu dyscyplinach specyficznych dla danej domeny.
Koncepcja wykorzystania uczenia maszynowego w urządzenia brzegowe z małą mocą obliczeniową ślad i zużycie energii mogą znacząco zmienić sposób budowy systemów wbudowanych i robotyki.
Dodaj komentarz