Nauka idzie w sieć
W listopadzie 2020 roku pojawiła się w mediach informacja o opracowanym przez specjalistów z MIT nowym rozwiązaniu, które pozwala przenieść techniki przetwarzania danych, znane dotychczas z potężnych sieci neuronowych, do miniaturowych chipów w noszonych urządzeniach medycznych, urządzeniach gospodarstwa domowego i do 250 miliardów innych urządzeń, które składają się obecnie na coś, co nazywamy Internetem Rzeczy.
System ten, nazwany MCUNet, konstruuje kompaktowe sieci neuronowe, które zapewniają niespotykaną dotąd w urządzeniach IoT szybkość i dokładność przetwarzania typu deep learning. I to wszystko pomimo bardzo mocno ograniczonej wciąż pamięci i mocy przetwarzania. Technologia ta może ułatwić rozbudowę uniwersum Internetu Rzeczy, oszczędzając jednocześnie energię i poprawiając bezpieczeństwo danych.
"Mały deep learning"
Za umowną datę początku Internetu Rzeczy (1) uważa się dzień w 1978 roku, w którym studenci uniwersytetu Carnegie Mellon, wśród których był m.in. Mike Kazar, połączyli z Internetem maszynę do serwowania coli-coli. Ich motywacją było głównie lenistwo, gdyż automat stał w pewnej odległości od sali, w której pracowali. Chcieli mieć pewność, czy podjęcie wyprawy po napój ma sens, czyli cola rzeczywiście jest w automacie. "Uważaliśmy to za rodzaj żartu", wspominał w mediach Kazar, obecnie inżynier w Microsoft. "Nikt wtedy nie spodziewał się miliardów urządzeń podłączonych do sieci".
Dziś w szybko rosnącej sieci IoT można znaleźć nieomal wszystko, od noszonych na co dzień medycznych monitorów pracy serca po inteligentne lodówki, które sygnalizują, kiedy mamy za mało mleka. Urządzenia w tej sieci często działają z wykorzystaniem mikrokontrolerów, prostych układów komputerowych bez systemu operacyjnego, z minimalną mocą przetwarzania i tysiąc razy mniejszą pamięcią niż oferowana przez zwykły smartfon. Zatem zadania związane z rozpoznawaniem wzorców, typowe dla technik głębokiej nauki maszynowej, są trudne do przeprowadzenia w sposób lokalny na urządzeniach IoT. W przypadku konieczności przeprowadzania złożonych analiz, dane zebrane w systemie IoT są często przesyłane do chmury, co czyni je podatnymi na ataki hakerów.
W ramach projektu MCUNet grupa badaczy z MIT opracowała dwa komponenty do "małego deep learningu", czyli do obsługi sieci neuronowych na mikrokontrolerach IoT. Jednym z komponentów jest TinyEngine, silnik dedukcyjny zarządzający zasobami, podobny trochę do systemu operacyjnego. TinyEngine jest przystosowany do obsługi określonej struktury sieci neuronowej, która jest wybierana przez drugi komponent systemu MCUNet o nazwie TinyNAS, algorytm wyszukiwawczy architektury neuronowej.
Dostępne techniki wyszukiwania w architekturze neuronowej zaczynają zwykle od dużego wachlarza możliwych struktur sieciowych opartych na wstępnie zdefiniowanym szablonie, a potem stopniowo znajdują tę o dużej dokładności i niskich kosztach. Choć metoda ta działa, nie jest najbardziej efektywna. "Może to działać całkiem dobrze w przypadku procesorów graficznych lub smartfonów", mówi serwisowi helpnetsecurity.com współautor pracy, Ji Lin z Wydziału Inżynierii Elektrycznej i Nauk Komputerowych (EECS) MIT. "Trudno było jednak bezpośrednio zastosować te techniki do drobnych mikrokontrolerów".
Lin opracował więc TinyNAS, metodę wyszukiwania architektury neuronowej, która tworzy sieci o niestandardowych rozmiarach. "Mamy wiele mikrokontrolerów o różnej mocy i różnej wielkości pamięci", wyjaśnia Lin. "Więc opracowaliśmy algorytm [TinyNAS], aby zoptymalizować przestrzeń wyszukiwania dla różnych mikrokontrolerów". Konfigurowalna natura systemu TinyNAS pozwala generować kompaktowe sieci neuronowe o najlepszej możliwej wydajności dla danego mikrokontrolera - bez niepotrzebnych parametrów. "Następnie dostarczamy do mikrokontrolera ostateczny, wydajny model", kontynuuje opis działania mechanizmu Lin.
Aby uruchomić tę małą sieć neuronową, mikrokontroler potrzebuje również silnika wnioskowania (inferencyjnego). Typowy silnik inferencyjny jest zwykle obciążony przez wskazówki dotyczące rzadko wykonywanych zadań. Dodatkowy kod nie stanowi problemu dla laptopa czy smartfona, ale może łatwo przytłoczyć mikrokontroler. Nie ma tego obciążenia w rozwiązaniu MIT. Do dyspozycji jest tu tylko megabajt pamięci flash, więc trzeba było ekonomicznie zarządzać zasobami. TinyEngine generuje kod niezbędny do uruchomienia sieci neuronowej TinyNAS. Każdy kod dodatkowo obciążający jest odrzucany. "Trzymamy tu tylko to, czego potrzebujemy", wyjaśnia Song Han, współpracownik Lina. "A ponieważ zaprojektowaliśmy sieć neuronową, wiemy dokładnie, czego potrzebujemy. To jest zaleta algorytmów powiązanych z systemem".
W testach TinyEngine rozmiar skompilowanego kodu binarnego był od 1,9 do 5 razy mniejszy niż w porównywalnych projektach mikrokontrolerów inferencyjnych, nad którymi pracują Google i ARM. TinyEngine oferuje również innowacje, które skracają czas pracy, w tym wbudowany tzw. mechanizm konwolucji depth-wise, który zmniejsza szczytowe zużycie pamięci niemal o połowę.
Pierwszym testowym zadaniem dla MCUNetu była klasyfikacja obrazu. Badacze wykorzystali bazę danych ImageNet z obrazami oznaczonymi etykietami do wyszkolenia systemu, a następnie do sprawdzenia jego zdolności do klasyfikowania nowych obrazów. Na testowanym przez nich komercyjnym mikrokontrolerze MCUNet poprawnie sklasyfikował 70,7 proc., co stanowi istotny postęp w porównaniu z poprzednio testowanym układem (2), który wykazywał 54 proc. trafności. Zespół odnotował podobne wyniki w testach ImageNet trzech innych mikrokontrolerów, zarówno pod względem szybkości, jak i dokładności, MCUNet pokonał też konkurencję w zadaniach audiowizualnych na "słowo budzące", w których użytkownik inicjuje interakcję z komputerem za pomocą wskazówek wokalnych (np. "Hej, Siri") lub po prostu wchodząc do pomieszczenia.
Obiecujące wyniki testów dają Linowi i Hanowi nadzieję, że ich rozwiązanie stanie się nowym standardem dla mikrokontrolerów. Autorzy systemu zwracają uwagę, że MCUNet mógłby również zwiększyć bezpieczeństwo urządzeń IoT. "Kluczową jego zaletą jest ochrona prywatności", ocenia Han. "Nie trzeba w nim przesyłać żadnych wrażliwych danych do chmury obliczeniowej".
Han snuje wizje inteligentnych zegarków zintegrowanych z systemem MCUNet, które nie tylko monitorują bicie serca, ciśnienie krwi i poziom tlenu w organizmie użytkownika, ale także same, bez przesyłania danych gdziekolwiek indziej, analizują i pomagają zrozumieć te informacje. Rozwiązanie może również pomóc w głębokim uczeniu w sieci urządzeń IoT w pojazdach i na obszarach wiejskich o ograniczonym dostępie do Internetu (zobacz także: Jak wybrać idealny zegarek do biegania?).
AI + IoT = AioT
Projekt opracowany przez specjalistów z MIT zalicza się do kategorii, która ma już swoją nazwę - AIoT (3) - od połączenia Internetu Rzeczy (IoT) i sztucznej inteligencji (AI). Sieć rzeczy zbiera i przetwarza dane, które są wsadem do systemów sztucznej inteligencji podejmującej na ich podstawie decyzji i uczącej się. Rośnie inteligencja i funkcjonalność całej sieci.
Praktyczne przykłady zastosowania AIoT są już całkiem liczne. Weźmy np. inteligentne systemy sprzedaży w sklepach. W inteligentnym środowisku system kamer wyposażony w odpowiednie algorytmy może wykorzystywać rozpoznawanie twarzy w celu identyfikacji klientów. System gromadzi informacje o klientach, w tym o ich płci, preferencjach co do produktów, przepływach ruchu w czasie itp. Analizuje dane w celu dokładnego przewidywania zachowań konsumentów, a następnie wykorzystuje te informacje do podejmowania decyzji marketingowych lub dotyczących lokowania produktów na półkach. Techniki te stosuje się np. w sklepach Amazon Go.
Inne zastosowanie to monitoring ruchu pojazdów. Gdy do śledzenia dużego obszaru wykorzystywane są drony, mogą przesyłać dane o ruchu drogowym, a następnie AI może analizować te dane i podejmować decyzje o tym, jak najlepiej zmniejszyć natężenie ruchu, dostosowując ograniczenia prędkości i czas sygnalizacji świetlnej bez udziału człowieka. ET City Brain, rozwiązanie należące do Alibaba Cloud, optymalizuje wykorzystanie zasobów miejskich poprzez wykorzystanie AIoT. System ten może wykrywać wypadki, nielegalne parkowanie i może zmieniać sygnalizację świetlną, aby pomóc ambulansom szybciej dotrzeć do pacjentów i w innych nagłych wypadkach.
Kolejnym obszarem, w którym sztuczna inteligencja i Internet Rzeczy krzyżują się, są inteligentne budynki biurowe. Niektóre firmy decydują się na zainstalowanie w swoich biurowcach sieci inteligentnych czujników. Mogą wykrywać obecność personelu i odpowiednio regulować temperaturę i oświetlenie, aby ekonomicznie zarządzać zużyciem energii. Inteligentny budynek może kontrolować dostęp do budynku za pomocą technologii rozpoznawania twarzy. Połączenie sieci kamer i sztucznej inteligencji, które mogą porównywać obrazy wykonane w czasie rzeczywistym z bazą danych w celu określenia, kto powinien mieć dostęp do budynku.
AIoT jest obecnie stosowany w zarządzaniu flotami pojazdów, w monitorowaniu pojazdów, obniżaniu kosztów paliwa, identyfikacji niebezpiecznych zachowań kierowców. Dzięki urządzeniom IoT, takim jak GPS i inne czujniki oraz systemowi sztucznej inteligencji, firmy są w stanie lepiej zarządzać swoją flotą. Innym obszarem, w którym AIoT jest obecnie stosowany, są systemy autonomiczne pojazdów, takich jak autopiloty Tesli, które wykorzystują radary, sonary, GPS i kamery do zbierania danych o warunkach jazdy, a następnie AI do podejmowania decyzji. W podobny sposób funkcjonują inne systemy autonomicznych robotów.
Infrastrukturą, w której ta inteligentna sieć inteligentnych rzeczy będzie się uczyć, by być jeszcze bardziej inteligentną siecią jeszcze bardziej inteligentnych rzeczy, ma być powstający Internet 5G a potem jeszcze bardziej zaawansowany, 6G. I to jest oczywisty kierunek rozwoju, niezależnie od tego, czy przetwarzanie i neuronowe nauczanie odbywać się będzie w wielkich hubach, chmurach, czy lokalnie na małych mikrokontrolerach.
Mirosław Usidus