Embedded-AI: sztuczna inteligencja w mikrokontrolerach
Sieci neuronowe wymagają znacznie mniejszej mocy obliczeniowej w czasie pracy aplikacji, niż w fazie uczenia się. Ten fakt można wykorzystać do użycia algorytmów sztucznej inteligencji w mikrokontrolerach.
Ewolucja technologii związanych ze sztuczną inteligencją (AI), takich jak machine learning (uczenie maszynowe) i deep learning (uczenie głębokie), była w ostatnich latach niezwykle dynamiczna. Zakres zastosowań AI szybko rozszerza się, głównie w kierunku systemów wbudowanych. Przykładem rozwijającej się aplikacji AI są roboty serwisowe. Podczas gdy moc obliczeniowa dostępna dla sztucznej inteligencji w chmurze jest prawie nieograniczona, AI w systemach wbudowanych jest oparta na procesorach i kontrolerach, które są raczej ograniczone pod względem zasobów, a dodatkowo oddziałują na siebie i otoczenie.
W przyszłości urządzenia wbudowane wyposażone w sztuczną inteligencję mogą być wykorzystywane w robotach serwisowych, które mają za zadanie przeprowadzić ocenę i podjąć działanie, w zależności od konkretnej sytuacji. Ponadto oczekuje się, że rozwój urządzeń wbudowanych wyposażonych w AI przyspieszy nie tylko dla robotów serwisujących, ale także dla usług i związanych z nimi urządzeń, które wymagają interakcji z ludźmi. Niniejszy artykuł podejmuje tematykę dalszego rozwoju implementacji wbudowanej sztucznej inteligencji (e-AI) w kontekście technologii firmy Renesas dla urządzeń wbudowanych.
Rys. 1. Sztuczna inteligencja w chmurze z wysoką mocą obliczeniową jest wykorzystywana do uczenia sieci neuronowych. To, czego sieć się nauczyła, jest stosowane w urządzeniach wbudowanych
Zanim przyjrzymy się temu, co składa się na rozwiązanie e-AI, rozważmy pewną terminologię związaną z „e” – jak embedded – w e-AI przy użyciu mikrokontrolerów i mikroprocesorów Renesas oraz ich narzędzi jako przykładu. Jako pierwszy krok rozwiązania e-AI, musimy wprowadzić nową funkcję do implementacji rezultatów głębokiego uczenia się (deep learning) w urządzeniu końcowym. W tym konkretnym przypadku jest to realizowane w formie wtyczek zgodnych ze zintegrowanym środowiskiem programistycznym opartym na Eclipse typu open source – e² studio. (rys. 1):
- Translator e-AI: konwertuje odpowiednio nauczoną sieć neuronową z platform machine learning/deep learning, takich jak Caffe lub TensorFlow na postać zrozumiałą przez środowisko programistyczne MCU/MPU.
- Tester e-AI: Na podstawie wyniku wyjściowego z translatora oblicza rozmiar potrzebnego ROM/RAM i czas przetwarzania dla wybranego MCU/MPU.
- Importer e-AI: Łączy nową strukturę AI dla systemów wbudowanych, która umożliwia pracę w czasie rzeczywistym i oszczędność zasobów w środowisku programistycznym MCU/MPU.
Czym jest rozwiązanie e-AI?
Każdy może używać sztucznej inteligencji stosunkowo łatwo, za pomocą oprogramowania Caffe, opracowanego przez Uniwersytet Berkeley, lub TensorFlow, opracowanego przez Google. Dziedzina specjalizacji AI różni się w zależności od zastosowanego algorytmu. W przypadku e-AI szczególnie interesuje nas DNN (Deep Neural Network) – wielowarstwowa sieć, która stała się sławna w rozpoznawaniu obrazów, ale może być stosowana we wszystkich innych rodzajach aplikacji.
Rys. 2. W fazie treningu określa się parametry sieci neuronowej. Ten proces wymaga dużej mocy obliczeniowej
Do algorytmu dostarczane są przykładowe dane (tak zwane dane uczące), a obliczone wyniki są następnie porównywane z pożądanymi wynikami, tak że parametry sieci są stopniowo zmieniane, a błąd w obliczeniach staje się coraz mniejszy (rys. 2). W ten sposób automatyczna ekstrakcja cechy jest coraz bardziej precyzyjna. DNN cieszy się tak dużym zainteresowaniem, ponieważ pomimo tego, że moc obliczeniowa poświęcona na naukę jest bardzo wysoka, zastosowanie tego, czego sieć się już nauczyła można przeprowadzić przy znacznie mniejszej mocy obliczeniowej.
W fazie uczenia się do sieci neuronowej trzeba dostarczyć ogromne ilości danych do nauki, aby obliczyć odpowiednie współczynniki. Ponieważ ilość wykonywanych obliczeń jest duża, do tego celu potrzebne są wydajne serwery. Po zakończeniu fazy uczenia się sieci neuronowej i wyszkoleniu sieci, współczynniki są przenoszone do systemu docelowego. Ta asymetria sieci neuronowych oznacza, że w fazie aplikacji wymagana jest znacznie mniejsza moc obliczeniowa (rys. 3). Z tego powodu Renesas wykorzystuje już nauczone sieci w urządzeniach wbudowanych „e-AI” (embedded-AI).
Rys. 3. Po przeszkoleniu sieci neuronowej parametry są stałe. Dla fazy wnioskowania, aplikacja sieci neuronowej wymaga znacznie mniejszej mocy obliczeniowej
W zależności od struktury sieci, wynik sieci neuronowej jest generowany za pomocą obliczeń macierzowych, począwszy od warstwy wejściowej, krok po kroku w jednym kierunku do warstwy wyjściowej. Ponieważ współczynniki uzyskane po procesie nauki są stałe, mogą być przechowywane w obszarze ROM, dzięki czemu AI może działać na mikrokontrolerze o niskiej pojemności pamięci RAM.
- Środowisko programistyczne e-AI jest skutecznym narzędziem do osadzania DNN w MCU/MPU po fazie nauki. Istnieją jednak pewne trudności z wdrożeniem wyników nauczania na MCU/MPU:
- Python jest używany jako język opisu w wielu frameworkach AI, podczas gdy program sterujący mikrokontrolerem jest zwykle napisany w języku C/C ++, co powoduje niezgodność z zarządzaniem pamięcią ROM/RAM w MCU/MPU.
Rys. 4. Środowisko programistyczne e-AI przenosi przeszkoloną głęboką sieć neuronową do mikrokontrolera
Środowisko programistyczne e-AI rozwiązuje te problemy i umożliwia wdrożenie poznanych wyników sieci DNN na MCU/MPU, zgodnie z projektem e² studio C/C ++. Struktura sieci, funkcje i wyuczone parametry są wyodrębniane przez wprowadzenie wyuczonego AI do translatora i są konwertowane na użyteczną formę dla projektów e2 studio C/C ++ (rys. 4).
Tłumacz (w wersji darmowej) obsługuje mikrokontrolery ze stosunkowo małą pojemnością pamięci ROM/RAM. Aby skompresować pojemność używaną przez bibliotekę, obsługiwane są tylko te funkcje, które są często używane przez sieci neuronowe (patrz tabela 1). Funkcje sieci neuronowych, które są używane tylko do nauki, a nie do wnioskowania, nie są użyteczne.
Tutorial dla translatora e-AI został opublikowany przez Renesas na stronie Gadget.
Zastosowanie e-AI w fabryce półprzewodników
W fabryce półprzewodników Renesas Naka w mieście Hitachinaka w prefekturze Ibaraki w Japonii przeprowadzono eksperyment demonstracyjny dotyczący wykrywania nieprawidłowości w sprzęcie i konserwacji predykcyjnej przez e-AI. Nowa funkcjonalność, taka jak wykrywanie nieprawidłowości i utrzymanie predykcyjne, może być realizowana bez większych zmian w istniejących obiektach, przy dalszym ich wykorzystywaniu. Ponadto e-AI znacznie poprawił precyzję wykrywania anomalii obiektu, które wcześniej mogły być właściwie ocenione tylko przez wykwalifikowanego technika lub operatora. Po tym eksperymencie firma Renesas otrzymała zapytania od ponad 40 klientów w Japonii i za granicą oraz rozpoczęła dyskusję z ponad 10 partnerami związanymi ze sztuczną inteligencją w celu konkretyzacji przypadków biznesowych.
Tabela 1. Funkcje, które mogą być tłumaczone przez translator e-AI
Ten przykład przekonał klientów, że e-AI może przyczynić się do poprawy ich działalności i rozwiązać problemy społeczne. W fabryce Naka trwają przygotowania do praktycznego wykorzystania wbudowanej sztucznej inteligencji do wykrywania nieprawidłowości i utrzymania predykcyjnego.
Sprzętowa akceleracja AI
Renesas zamierza nadal rozwijać swoją ofertę rozwiązań e-AI opartych na technologii DRP (Procesor Dynamicznie Rekonfigurowalny). Wyjątkowa technologia DRP firmy Renesas umożliwia przetwarzanie obrazu w czasie rzeczywistym przy niskim zużyciu energii. Jest to sprzętowy blok IP zdolny do dynamicznej zmiany konfiguracji swojego ukladu przetwarzania z jednego cyklu zegara na następny. DRP są wykorzystywane w masowej produkcji od ponad dziesięciu lat, w aplikacjach takich jak urządzenia nadawcze i aparaty cyfrowe.
Ta wyjątkowa technologia firmy Renesas łączy wydajność sprzętu z elastycznością oprogramowania w szerokiej gamie produktów. Idąc dalej, Renesas planuje rozszerzyć wykorzystanie DRP w e-AI, zapewniając doskonałą wydajność i niezrównaną elastyczność śledzenia bieżących postępów w sieciach neuronowych. Po wprowadzeniu na rynek rodziny RZ/A2M we wrześniu 2018 r. Renesas zamierza w drugiej połowie 2019 r. wydać akcelerator AI zawierający DRP z wydajnością 100 razy szybszą niż przetwarzanie programowe AI, umożliwiając wykonywanie w czasie rzeczywistym wnioskowania poprzez embedded-AI. W 2021 roku Renesas ma w planach wydać akcelerator AI nowej generacji. 1000 razy wydajniejszy niż konwencjonalny mikroprocesor. Te innowacje sztucznej inteligencji firmy Renesas dodadzą mocy obliczeniowej urządzeniom wbudowanym i wprowadzą możliwość projektowania urządzeń końcowych, które nie tylko mogą realizować wnioskowanie, ale także uczenie.