Wybór odpowiedniej platformy sprzętowej dla aplikacji AI/ML Edge

Uczenie maszynowe (ML) i sztuczna inteligencja (AI), której ML można uznać za podzbiór, były historycznie wdrażane na platformach obliczeniowych o wysokiej wydajności, a ostatnio w chmurze. Obecnie jednak obie te technologie są coraz częściej wdrażane w aplikacjach, w których przetwarzanie odbywa się w pobliżu źródła danych (na brzegu, edge). Takie przetwarzanie brzegowe, idealne dla urządzeń IoT, oznacza, że mniej danych musi być przesyłanych do chmury w celu ich dalszej analizy. Korzyści z takiego podejścia obejmują lepszą wydajność dzięki mniejszym opóźnieniom i poprawę bezpieczeństwa.

Dodaj do ulubionych źródeł w Google
Posłuchaj
00:00

ML/AI przenosi przetwarzanie brzegowe na wyższy poziom, umożliwiając analizę danych i wnioskowanie u źródła. Pozwala to urządzeniu IoT, trzymając się tego przykładu, uczyć się i doskonalić na podstawie zebranego doświadczenia. Algorytmy tego typu analizują dane, szukając wzorców i podejmują decyzje, wykorzystując trzy sposoby uczenia się: nadzorowane, nienadzorowane i uczenie ze wzmocnieniem (reinforced learning).

Uczenie nadzorowane polega na wykorzystaniu przez algorytm przygotowanych wstępnie danych do treningu. Na przykład inteligentną kamerę bezpieczeństwa można trenować, wykorzystując zdjęcia i nagrania wideo osób stojących, idących, biegnących lub niosących przedmioty. Algorytmy nadzorowanego uczenia maszynowego obejmują regresję logistyczną i model Naive Bayes, z użyciem informacji zwrotnej do udoskonalania modelu, na podstawie których będą formułowane predykcje.

Uczenie bez nadzoru wykorzystuje nieoznaczone dane i algorytmy, takie jak klasteryzacja metodą K-Means i analiza głównych składowych do identyfikacji wzorców. Jest to idealne rozwiązanie do wykrywania anomalii. Na przykład w scenariuszu konserwacji predykcyjnej lub w aplikacji obrazowania medycznego algorytm sygnalizowałby nietypowe sytuacje lub aspekty obrazu w oparciu o model "typowości", który sam stworzył.

Uczenie ze wzmocnieniem to działanie metodą prób i błędów. Podobnie jak w trybie nadzorowanym, wymagane jest sprzężenie zwrotne. Ale zamiast po prostu poprawiać działanie algorytmu, sprzężenie zwrotne jest traktowane jako system nagród lub kar. Algorytmy tego typu to m.in. Monte Carlo i Q-learning.

W powyższych przykładach wspólnym elementem jest możliwość inteligentnej analizy obrazów, którą te techniki pozwalają zrealizować, np. w inteligentnej kamerze systemu bezpieczeństwa. Dzięki różnego typu czujnikom analiza obrazu może wykorzystywać składowe widma niewidoczne dla ludzkiego oka, takie jak podczerwień (używana w obrazowaniu termicznym) i ultrafiolet (UV).

Wyposażenie systemu embedded z przetwarzaniem brzegowym ML/AI w kolejne sensory dostarczające także inne dane, takie jak temperatura i wibracje, pozwala tworzyć rozwiązania odgrywające znaczącą rolę w konserwacji predykcyjnej maszyn przemysłowych.

Systemy wbudowane

Jak wspomniano, przed laty ML/AI wymagały znacznych zasobów obliczeniowych. Obecnie, w zależności od złożoności systemu, do implementacji ML i AI można wykorzystać typowe komponenty przeznaczone do pracy w aplikacjach embedded i IoT. Na przykład detekcję i klasyfikację obrazu można zaimplementować w oparciu o układy FPGA i mikroprocesory MPU. Co więcej, stosunkowo proste aplikacje, takie jak monitorowanie i analiza drgań (na przykład w konserwacji predykcyjnej), można zrealizować nawet w 8-bitowym mikrokontrolerze.

Co więcej, o ile początkowo użycie ML/AI wymagało posiadania wykwalifikowanych analityków danych zajmujących się opracowywaniem algorytmów rozpoznawania wzorców – oraz modeli, które można było automatycznie aktualizować w celu tworzenia prognoz – o tyle obecnie sytuacja ta jest już inna. Inżynierowie systemów wbudowanych, znający się już na przetwarzaniu brzegowym, dysponują obecnie komponentami, oprogramowaniem i narzędziami umożliwiającymi projektowanie urządzeń z algorytmami ML/AI. Ponadto wiele modeli i danych treningowych jest dostępnych bezpłatnie, a liczni dostawcy układów scalonych oferują zintegrowane środowiska programistyczne (IDE) i biblioteki, które przyspieszają tworzenie aplikacji ML/AI.

Weźmy na przykład środowisko IDE MPLAB X firmy Microchip. Ten program zawiera narzędzia ułatwiające konfigurowanie, projektowanie, debugowanie i kwalifikowanie projektów systemów wbudowanych z użyciem dla wielu chipów firmy Microchip. Wtyczka do pakietu uczenia maszynowego umożliwia zapis modeli uczenia maszynowego bezpośrednio w docelowej platformie sprzętowej. Pakiet ten wykorzystuje tzw. automatyczne uczenie maszynowe (AutoML), czyli proces automatyzacji wielu czasochłonnych i iteracyjnych zadań, takich jak tworzenie i trenowanie modeli (patrz rys. 1).

Rys. 1. Rozwój modeli ML/AI jest procesem iteracyjnym

Chociaż procedurę pokazaną na rysunku 1 można zautomatyzować, optymalizacja projektu to zupełnie inna sprawa. Nawet doświadczeni specjaliści w projektowaniu aplikacji przetwarzania brzegowego mogą mieć trudności z niektórymi aspektami ML/AI. Konieczne będzie dokonanie wielu kompromisów między wydajnością systemu (w dużej mierze uwarunkowaną rozmiarem/złożonością modelu i ilością danych), zużyciem energii i kosztami. Odnośnie do tych dwóch ostatnich czynników, rysunek 2 ilustruje odwrotną zależność między wymaganą wydajnością a kosztami oraz wskazuje zużycie energii dla grup układów firmy Microchip używanych w typowych aplikacjach ML.

Rys. 2. Przykładowe serie układów i aplikacje ML, w których są one zazwyczaj wykorzystywane

Projektowanie dla Small Form Factors (SFF)

Jak wspomniano, nawet mikrokontrolery 8-bitowe mogą być używane w niektórych aplikacjach uczenia maszynowego (ML). Jednym z czynników, które to umożliwiają i w znacznym stopniu przyczyniają się do wprowadzenia uczenia maszynowego/sztucznej inteligencji (ML/AI) do społeczności inżynierskiej, jest popularność technologii tinyML, która pozwala na uruchamianie modeli na jednostkach o ograniczonych zasobach.

Zalety tego rozwiązania widać, biorąc pod uwagę, że wysokiej klasy mikrokontroler (MCU) lub mikrokontroler (MPU) do aplikacji uczenia maszynowego/sztucznej inteligencji (ML/AI) zazwyczaj pracuje z częstotliwością od 1 do 4 GHz, potrzebuje od 512 MB do 64 GB pamięci RAM i wykorzystuje od 64 GB do 4 TB pamięci nieulotnej. Pobiera również od 30 do 100 W mocy. Z kolei tinyML jest przeznaczony dla mikrokontrolerów pracujących z częstotliwością od 1 do 400 MHz, mających od 2 do 512 KB pamięci RAM i wykorzystujących od 32 KB do 2 MB pamięci nieulotnej (NVM) do przechowywania danych. Pobór mocy wynosi zazwyczaj od 150 μW do 23,5 mW, co jest wartością idealną w przypadku zastosowań zasilanych bateryjnie.

Kluczem do wdrożenia tinyML jest opanowanie gromadzenia i przygotowywania danych oraz generowanie informacji do ulepszania modelu. Z tych etapów gromadzenie i przygotowywanie danych są niezbędne, aby wartościowe informacje (zestaw danych) były dostępne w całym procesie uczenia maszynowego (patrz rys. 3).

Rys. 3. Przebieg procesu uczenia maszynowego

Do celów szkoleniowych potrzebne są zbiory danych dla maszyn nadzorowanych (i półnadzorowanych). W tym przypadku zbiór danych to zbiór danych, który jest już uporządkowany. Jak wspomniano, w systemach nadzorowanych dane są etykietowane, więc w przykładzie z inteligentną kamerą bezpieczeństwa automat byłby trenowany na podstawie zdjęć m.in. osób stojących, chodzących i biegnących. Zbiór danych można by stworzyć ręcznie, choć wiele z nich jest dostępnych komercyjnie, na przykład MPII Human Pose, który zawiera około 25 000 obrazów wyodrębnionych z dostępnych online filmów.

Taki zbiór wymaga jednak optymalizacji. Zbyt duża ilość danych szybko zapełni dostępną pamięć. Zbyt mała ilość sprawi, że algorytm albo nie będzie w stanie formułować prognoz, albo będą one błędne.

Ponadto sam model ML/AI musi być mały. W tym kontekście jedną z popularnych metod kompresji jest przycinanie "weight pruning", w którym waga połączeń między niektórymi neuronami w modelu jest ustawiona na zero, co oznacza, że maszyna nie musi ich uwzględniać podczas wnioskowania z modelu. Neurony również mogą być przycinane. Inną techniką kompresji jest kwantyzacja. Zmniejsza ona precyzję parametrów, odchyleń i aktywacji modelu poprzez konwersję danych w formacie o wysokiej precyzji, takim jak 32-bitowa liczba zmiennoprzecinkowa (FP32), do formatu o niższej precyzji, na przykład 8-bitowej liczby całkowitej (INT8).

Zoptymalizowany zbiór danych i kompaktowy model ułatwiają wybór odpowiedniego mikrokontrolera. Są też pomocne frameworki – na przykład TensorFlow Framework umożliwia wybór nowego modelu TensorFlow lub ponowne trenowanie istniejącego. Następnie można go skompresować do postaci płaskiego bufora za pomocą konwertera TensorFlow Lite, załadować do systemu i skwantyzować.

Podsumowanie

Uczenie maszynowe (ML) i sztuczna inteligencja (AI) wykorzystują metody algorytmiczne do identyfikacji wzorców/trendów w danych i do tworzenia prognoz. Dzięki umieszczeniu algorytmu ML/ AI na krawędzi systemu aplikacje mogą wnioskować i sterować w czasie rzeczywistym, co zwiększa wydajność i bezpieczeństwo całego systemu.

Dzięki dostępności odpowiedniego sprzętu, środowisk programistycznych (IDE), narzędzi i zestawów programistycznych, frameworków, zestawów danych i modeli open source inżynierowie mogą stosunkowo łatwo tworzyć produkty do przetwarzania brzegowego z obsługą uczenia maszynowego (ML/AI).

Yann LeFaou, Microchip Technology
www.microchip.com

Chcesz częściej widzieć nasze artykuły w Google? Dodaj ElektronikaB2B do ulubionych źródeł
Powiązane treści
Ceva i Microchip wspólnie napędzają rozwój sztucznej inteligencji w urządzeniach brzegowych
Edge AI w natarciu – miliardowe inwestycje w inteligentny sprzęt
Meta wprowadza inteligentne okulary z AI i opaską EMG
STARLight przyspiesza rozwój fotoniki krzemowej w Europie
Zobacz więcej w kategorii: Technika
PCB
HDI pool Eurocircuits - mikroprzelotki w prototypach i małych seriach PCB
PCB
Optymalizacja projektu PCB pod kątem montażu – kluczowe decyzje na etapie layoutu
Komunikacja
Konfiguracja bramek MGate MB3000-G2: tryb Transparent i Agent w praktyce
Produkcja elektroniki
Analiza przyczyn wad montażu SMT i ograniczenia systemów inspekcyjnych
Produkcja elektroniki
Dokumentacja do wyceny montażu PCBA – jak przygotować kompletny pakiet danych?
Produkcja elektroniki
Ochrona antystatyczna fundamentem nowoczesnej produkcji
Zobacz więcej z tagiem: Mikrokontrolery i IoT
Gospodarka
Raspberry Pi zwiększa przychody o 90% dzięki klientom przemysłowym
Technika
Watchdog - przegląd konfiguracji
Technika
Czy każde urządzenie AI musi być połączone z chmurą?

Zobaczyć obiekt oczami radaru, czyli dlaczego potrzebujemy laboratorium do pomiarów RCS?

Radar postrzega świat inaczej niż człowiek. Zamiast obrazu tworzonego przez światło widzialne rejestruje echo wysłanej fali elektromagnetycznej. Na odpowiedź radarową obiektu wpływają nie tylko jego rozmiary, lecz także kształt, zastosowane materiały, częstotliwość oraz kierunek obserwacji. Dlatego dwa przedmioty o podobnych wymiarach mogą być dla radaru widoczne zupełnie inaczej. Jak zatem sprawdzić, co radar rzeczywiście "widzi"? Służą temu pomiary RCS, prowadzone między innymi w specjalistycznych laboratoriach, które zapewniają kontrolowane i powtarzalne warunki oraz umożliwiają uzyskanie dokładności wymaganej w danym zastosowaniu.
Zapytania ofertowe
Unikalny branżowy system komunikacji B2B Znajdź produkty i usługi, których potrzebujesz Katalog ponad 7000 firm i 60 tys. produktów