Modely strojového učenia sú momentálne všade. Počas dňa pravdepodobne využívate tieto modely oveľa viac, ako si uvedomujete. Modely strojového učenia sa využívajú pri bežných úlohách, ako je prehliadanie sociálnych médií, fotografovanie a kontrola počasia.
Tento blog vám mohol odporučiť algoritmus strojového učenia. Všetci sme už počuli o tom, aké časovo náročné je trénovať tieto modely. Všetci sme počuli, že tréning týchto modelov je časovo náročný.
Vyvodzovanie záverov o týchto modeloch je však často výpočtovo nákladné.
Potrebujeme počítačové systémy, ktoré sú dostatočne rýchle na to, aby zvládli rýchlosť, s akou využívame služby strojového učenia. Výsledkom je, že väčšina týchto modelov beží na masívnych dátových centrách s klastrami CPU a GPU (v niektorých prípadoch dokonca aj TPU).
Keď fotíte, chcete strojové učenie aby sa to okamžite zlepšilo. Nechcete čakať, kým sa obrázok prenesie do dátového centra, spracuje a vráti vám. V tomto prípade by mal byť model strojového učenia vykonaný lokálne.
Keď poviete „Hey Siri“ alebo „OK, Google“, chcete, aby vaše moduly gadget okamžite reagovali. Čaká sa na prenos vášho hlasu do počítačov, kde sa vyhodnotí a získajú sa údaje.
To si vyžaduje čas a má škodlivý vplyv na používateľskú skúsenosť. V tomto prípade chcete, aby model strojového učenia fungoval aj lokálne. Tu prichádza na rad TinyML.
V tomto príspevku sa pozrieme na TinyML, ako funguje, ako sa používa, ako s ním začať a oveľa viac.
Čo je TinyML?
TinyML je špičková disciplína, ktorá využíva revolučný potenciál strojového učenia na výkonové a výkonové limity malých zariadení a vstavaných systémov.
Úspešné nasadenie v tomto odvetví si vyžaduje dôkladné pochopenie aplikácií, algoritmov, hardvéru a softvéru. Ide o podžáner strojového učenia, ktorý využíva modely hlbokého učenia a strojového učenia vo vstavaných systémoch, ktoré využívajú mikrokontroléry, procesory digitálnych signálov alebo iné špecializované procesory s mimoriadne nízkou spotrebou.
Vstavané zariadenia s podporou TinyML sú určené na spustenie algoritmu strojového učenia pre konkrétnu úlohu, zvyčajne ako súčasť hrany.
Aby tieto vstavané systémy fungovali týždne, mesiace alebo dokonca roky bez dobíjania alebo výmeny batérie, musia mať spotrebu energie menšiu ako 1 mW.
Ako to funguje?
Jediný rámec strojového učenia, ktorý možno použiť s mikrokontrolérmi a počítačmi, je TensorFlow Lite. Ide o súbor nástrojov, ktoré umožňujú vývojárom spúšťať ich modely na mobilných, vstavaných a okrajových zariadeniach, čo umožňuje strojové učenie za behu.
Rozhranie mikrokontroléra sa používa na zber údajov zo senzorov (ako sú mikrofóny, kamery alebo vstavané senzory).
Pred odoslaním do mikrokontroléra sa údaje začlenia do modelu strojového učenia založeného na cloude. Na trénovanie týchto modelov sa bežne používa dávkové školenie v režime offline. Údaje senzora, ktoré sa použijú učenie a vyvodzovanie už bola určená pre konkrétnu aplikáciu.
Ak je model napríklad trénovaný na detekciu budiaceho slova, je už nastavený na spracovanie nepretržitého zvukového toku z mikrofónu.
Všetko sa už robí pomocou cloudovej platformy, akou je Google Colab v prípade TensorFlow Lite, vrátane výberu množiny údajov, normalizácie, nedostatočného alebo nadmerného prispôsobenia modelu, regularizácie, rozšírenia údajov, školenia, overenia a testovania.
Plne natrénovaný model sa nakoniec transformuje a prenesie do mikrokontroléra, mikropočítača alebo digitálneho signálového procesora po offline dávkovom tréningu. Model nemá žiadne ďalšie školenie po premiestnení do vstavaného zariadenia. Namiesto toho na aplikáciu modelu používa iba údaje zo senzorov alebo vstupných zariadení v reálnom čase.
Výsledkom je, že model strojového učenia TinyML musí byť výnimočne odolný a musí sa dať preškoliť po rokoch alebo ho nikdy nepreškoliť. Je potrebné preskúmať všetky potenciálne nedostatočné a nadmerné prispôsobenia modelu, aby model zostal relevantný po dlhšiu dobu, ideálne na neurčito.
Ale prečo používať TinyML?
TinyML začal ako snaha eliminovať alebo znížiť závislosť internetu vecí na cloudových službách pre základné malé strojové učenie operácií. To si vyžiadalo použitie modelov strojového učenia na samotných okrajových zariadeniach. Poskytuje tieto hlavné výhody:
- Slaby prud spotreba: Aplikácia TinyML by mala prednostne využívať menej ako 1 miliWatt energie. S takouto nízkou spotrebou energie môže zariadenie pokračovať vo vyvodzovaní záverov z údajov snímača mesiace alebo roky, aj keď je napájané gombíkovou batériou.
- nižšie náklady: Je navrhnutý tak, aby fungoval na lacných 32-bitových mikrokontroléroch alebo DSP. Tieto mikrokontroléry sú zvyčajne za niekoľko centov a celkový vstavaný systém vyvinutý s nimi je nižší ako 50 dolárov. Toto je veľmi nákladovo efektívna možnosť na spustenie malých programov strojového učenia vo veľkom meradle a je obzvlášť výhodná v aplikáciách internetu vecí, kde sa musí použiť strojové učenie.
- Nižšia latencia: Jeho aplikácie majú nízku latenciu, pretože nepotrebujú prenášať alebo vymieňať dáta cez sieť. Všetky údaje zo senzorov sa zaznamenávajú lokálne a závery sa vyvodzujú pomocou modelu, ktorý už bol natrénovaný. Výsledky záverov môžu byť odoslané na server alebo cloud na zaznamenávanie alebo dodatočné spracovanie, hoci to nie je nevyhnutné pre fungovanie zariadenia. To minimalizuje latenciu siete a eliminuje potrebu operácií strojového učenia, ktoré sa majú vykonávať v cloude alebo serveri.
- súkromia: Na internete a na internete vecí je to hlavný problém. Práca strojového učenia v aplikáciách TinyML sa vykonáva lokálne, bez ukladania alebo odosielania údajov senzora/používateľa na server/cloud. Výsledkom je, že aj keď sú tieto aplikácie pripojené k sieti, je ich používanie bezpečné a nepredstavujú žiadne riziká pre súkromie.
použitie
- Poľnohospodárstvo – kedy farmári odfotia rastlinu, aplikácia TensorFlow Lite v nej zistí choroby. Funguje na akomkoľvek zariadení a nevyžaduje pripojenie k internetu. Postup chráni poľnohospodárske záujmy a pre vidieckych poľnohospodárov je kritickou nevyhnutnosťou.
- Údržba mechaniky – TinyML, keď sa používa na zariadeniach s nízkou spotrebou, môže neustále identifikovať chyby v počítači. Zahŕňa údržbu založenú na predikcii. Austrálsky start-up Ping Services predstavil IoT gadget, ktorý monitoruje veterné turbíny tak, že sa pripojí k vonkajšej strane turbíny. Upozorní úrady vždy, keď zistí akýkoľvek možný problém alebo poruchu.
- Nemocnice – The Solar Scare je projekt. Mosquito používa TinyML na zastavenie šírenia chorôb, ako je horúčka dengue a malária. Je poháňaný solárnou energiou a zisťuje podmienky rozmnožovania komárov predtým, ako signalizuje vode, aby zabránila rozmnožovaniu komárov.
- Dopravný dohľad – By aplikovaním TinyML na senzory, ktoré zhromažďujú dopravné údaje v reálnom čase, ich môžeme použiť na lepšie nasmerovanie premávky a skrátenie reakčných časov pre záchranné vozidlá. Swim.AI napríklad používa túto technológiu na streamovanie údajov na zvýšenie bezpečnosti cestujúcich a zároveň na zníženie preťaženia a emisií prostredníctvom inteligentného smerovania.
- zákon: TinyML je možné použiť pri presadzovaní práva na identifikáciu nezákonných činov, ako sú výtržnosti a krádeže, pomocou strojového učenia a rozpoznávania gest. Podobný program možno použiť aj na zabezpečenie bankových bankomatov. Sledovaním správania používateľov môže model TinyML predpovedať, či je používateľ skutočným spotrebiteľom, ktorý dokončuje transakciu, alebo narušiteľom, ktorý sa pokúša hacknúť alebo zničiť bankomat.
Ako začať s TinyML?
Ak chcete začať s TinyML v TensorFlow Lite, budete potrebovať kompatibilnú dosku mikrokontroléra. TensorFlow Lite for Microcontrollers podporuje mikrokontroléry uvedené nižšie.
- Wio terminál: ATSAMD51
- Himax WE-I Plus EVB Endpoint AI Development Board
- STM32F746 Discovery kit
- Adafruit EdgeBadge
- Platforma pre vývoj softvéru Synopsys DesignWare ARC EM
- Sony Express
- Arduino Nano 33 BLE Sense
- SparkFun Edge
- Súprava Adafruit TensorFlow Lite pre mikrokontroléry
- Adafruit Circuit Ihrisko Bluefruit
- Espressif ESP32-DevKitC
- Espressif ESP-EYE
Ide o 32-bitové mikrokontroléry, ktoré majú dostatok pamäte flash, RAM a frekvenciu hodín na vykonanie modelu strojového učenia. Dosky majú tiež množstvo zabudovaných senzorov schopných spustiť akýkoľvek vstavaný program a aplikovať modely strojového učenia na cieľovú aplikáciu. Komu vytvoriť model strojového učenia, budete okrem hardvérovej platformy potrebovať aj notebook alebo počítač.
Každá hardvérová platforma má svoje vlastné programovacie nástroje na vytváranie, školenie a prenos modelov strojového učenia, ktoré využívajú balík TensorFlow Lite for Microcontrollers. TensorFlow Lite je zadarmo na použitie a úpravu, pretože je open source.
Ak chcete začať s TinyML a TensorFlow Lite, všetko, čo potrebujete, je jedna z vyššie uvedených vstavaných hardvérových platforiem, počítač/laptop, kábel USB, prevodník USB na sériový port – a túžba praktizovať strojové učenie so vstavanými systémami. .
Výzvy
Aj keď pokrok TinyML priniesol mnoho pozitívnych výsledkov, priemysel strojového učenia stále čelí značným prekážkam.
- Rozmanitosť softvéru – Ručné kódovanie, generovanie kódu a interpreti ML sú všetky možnosti nasadzovania modelov na zariadeniach TinyML a každý z nich si vyžaduje iné množstvo času a úsilia. V dôsledku toho môžu vzniknúť rôzne výkony.
- Rozmanitosť hardvéru – tam je k dispozícii niekoľko možností hardvéru. Platformy TinyML môžu byť čokoľvek od univerzálnych mikrokontrolérov až po špičkové neurónové procesory. To spôsobuje problémy s nasadením modelu naprieč rôznymi architektúrami.
- Riešenie problémov/ladenie – kedy model ML funguje v cloude zle, je jednoduché pozrieť sa na údaje a zistiť, čo sa deje. Keď je model rozmiestnený na tisíckach zariadení TinyML bez toho, aby sa do cloudu vracal žiadny dátový tok, ladenie sa stáva zložitým a môže si vyžadovať inú metódu.
- Pamäťové obmedzenia – tradičné platformy, ako sú smartfóny a notebooky, potrebujú gigabajty pamäte RAM, zatiaľ čo zariadenia TinyML používajú kilobajty alebo megabajty. V dôsledku toho je veľkosť modelu, ktorý možno nasadiť, obmedzená.
- Modelový tréning – Hoci Nasadenie modelov ML na zariadeniach TinyML má niekoľko výhod, väčšina modelov ML je stále trénovaná v cloude, aby sa opakovala a neustále zlepšovala presnosť modelu.
Budúcnosť
TinyML so svojimi malými rozmermi, nízkou spotrebou batérie a nedostatočným alebo obmedzeným spoliehaním sa na internetové pripojenie má v budúcnosti obrovský potenciál, pretože väčšina úzkych umelá inteligencia budú implementované na okrajových zariadeniach alebo nezávislých vstavaných miniaplikáciách.
Vďaka tomu budú aplikácie internetu vecí súkromnejšie a bezpečnejšie tým, že ich využije. Predsa TensorFlow Lite je v súčasnosti jediným rámcom strojového učenia pre mikrokontroléry a mikropočítače, na iných porovnateľných rámcoch, ako je senzor a CMSIS-NN od ARM, sa pracuje.
Zatiaľ čo TensorFlow Lite je prebiehajúci projekt s otvoreným zdrojovým kódom, ktorý začal s tímom Google skvele, stále potrebuje podporu komunity, aby sa dostal do hlavného prúdu.
záver
TinyML je nový prístup, ktorý kombinuje vstavané systémy so strojovým učením. Keďže úzka umelá inteligencia vrcholí v mnohých vertikálach a doménach, táto technológia sa môže objaviť ako významná podoblasť v oblasti strojového učenia a umelej inteligencie.
Poskytuje riešenie mnohých výziev, ktorým v súčasnosti čelí sektor internetu vecí a profesionáli používajúci strojové učenie v mnohých disciplínach špecifických pre danú doménu.
Koncept využitia strojového učenia pri okrajové zariadenia s malým výpočtovým systémom pôdorys a spotreba energie majú potenciál výrazne zmeniť spôsob konštrukcie vstavaných systémov a robotiky.
Nechaj odpoveď