Modelele de învățare automată sunt peste tot acum. În timpul zilei, probabil că utilizați aceste modele mult mai mult decât vă dați seama. Modelele de învățare automată sunt utilizate în sarcini obișnuite, cum ar fi navigarea în rețelele sociale, fotografiarea și verificarea vremii.
Este posibil ca un algoritm de învățare automată să vă fi recomandat acest blog. Cu toții am auzit despre cât de consumator de timp este să antrenezi aceste modele. Cu toții am auzit că antrenarea acestor modele necesită timp.
Cu toate acestea, deducerea acestor modele este adesea costisitoare din punct de vedere computațional.
Avem nevoie de sisteme informatice care să fie suficient de rapide pentru a gestiona ritmul cu care folosim serviciile de învățare automată. Ca rezultat, majoritatea acestor modele sunt rulate pe centre de date masive cu clustere CPU și GPU (chiar și TPU-uri în unele cazuri).
Când faci o poză, vrei masina de învățare pentru a o îmbunătăți instantaneu. Nu doriți să fiți nevoit să așteptați ca imaginea să fie transferată într-un centru de date, procesată și returnată. În acest caz, modelul de învățare automată ar trebui să fie executat local.
Când rostiți „Hei Siri” sau „OK, Google”, doriți ca gadgeturile dvs. să răspundă imediat. Așteptând ca vocea dvs. să fie transmisă la computere, unde va fi evaluată și obținute date.
Acest lucru necesită timp și are un efect negativ asupra experienței utilizatorului. În acest caz, doriți ca modelul de învățare automată să funcționeze și la nivel local. Aici intervine TinyML.
În această postare, vom analiza TinyML, cum funcționează, utilizările sale, cum să începem cu el și multe altele.
Ce este Tinyml?
TinyML este o disciplină de ultimă oră care aplică potențialul revoluționar al învățării automate la limitele de performanță și putere ale dispozitivelor mici și sistemelor încorporate.
Implementarea cu succes în această industrie necesită o înțelegere aprofundată a aplicațiilor, algoritmilor, hardware-ului și software-ului. Este un subgen de învățare automată care utilizează modele de învățare profundă și de învățare automată în sisteme încorporate care folosesc microcontrolere, procesoare de semnal digital sau alte procesoare specializate cu putere ultra-scăzută.
Dispozitivele încorporate compatibile cu TinyML sunt destinate să ruleze un algoritm de învățare automată pentru o anumită sarcină, de obicei ca parte a dispozitivului. marginea de calcul.
Pentru a funcționa săptămâni, luni sau chiar ani fără reîncărcare sau înlocuire a bateriei, aceste sisteme încorporate trebuie să aibă un consum de energie mai mic de 1 mW.
Cum functioneaza?
Singurul cadru de învățare automată care poate fi utilizat cu microcontrolere și computere este TensorFlow Lite. Este un set de instrumente care le permite dezvoltatorilor să-și ruleze modelele pe dispozitive mobile, încorporate și edge, permițând învățarea automată din mers.
Interfața microcontrolerului este utilizată pentru a colecta date de la senzori (cum ar fi microfoane, camere sau senzori încorporați).
Înainte de a fi trimise la microcontroler, datele sunt încorporate într-un model de învățare automată bazat pe cloud. Antrenamentul în lot în modul offline este folosit în mod obișnuit pentru a antrena aceste modele. Datele senzorului care vor fi utilizate pentru învăţare şi inferenţă a fost deja stabilit pentru aplicația specifică.
Dacă modelul este antrenat să detecteze un cuvânt de trezire, de exemplu, este deja configurat pentru a gestiona un flux audio continuu de la un microfon.
Totul este deja realizat cu ajutorul unei platforme cloud precum Google Colab în cazul TensorFlow Lite, inclusiv selecția setului de date, normalizarea, adaptarea insuficientă sau supraadaptarea modelului, regularizarea, creșterea datelor, instruire, validare și testare.
Un model complet antrenat este în cele din urmă transformat și transferat la microcontroler, microcomputer sau procesor de semnal digital după antrenament offline în lot. Modelul nu are pregătire suplimentară după ce a fost mutat pe un dispozitiv încorporat. În schimb, folosește numai date în timp real de la senzori sau dispozitive de intrare pentru a aplica modelul.
Ca rezultat, un model de învățare automată TinyML trebuie să fie excepțional de durabil și capabil să fie recalificat după ani sau să nu fie niciodată recalificat. Toate potențialele subadaptari și supraajustări ale modelului trebuie investigate, astfel încât modelul să rămână relevant pentru o perioadă lungă de timp, în mod ideal pe o perioadă nedeterminată.
Dar de ce să folosiți TinyML?
TinyML a început ca un efort de a elimina sau de a reduce dependența IoT de serviciile cloud pentru o scară mică de bază. masina de învățare operațiuni. Acest lucru a necesitat utilizarea modelelor de învățare automată pe dispozitivele de margine în sine. Oferă următoarele beneficii majore:
- Putere redusă consum: O aplicație TinyML ar trebui să utilizeze de preferință mai puțin de 1 miliWatt de putere. Cu un astfel de consum redus de energie, un dispozitiv poate continua să tragă concluzii din datele senzorului timp de luni sau ani, chiar dacă este alimentat de o baterie monedă.
- Cost scăzut: este conceput pentru a rula pe microcontrolere sau DSP-uri pe 32 de biți cu costuri reduse. Aceste microcontrolere sunt de obicei de câțiva cenți fiecare, iar sistemul încorporat total dezvoltat cu ele este mai mic de 50 USD. Aceasta este o opțiune foarte rentabilă pentru a rula mici programe de învățare automată la scară mare și este deosebit de benefică în aplicațiile IoT unde trebuie aplicată învățarea automată.
- Latență mai mică: Aplicațiile sale au o latență scăzută, deoarece nu au nevoie să transporte sau să schimbe date prin rețea. Toate datele senzorului sunt înregistrate la nivel local, iar concluziile sunt trase folosind un model care a fost deja instruit. Rezultatele inferențelor pot fi trimise către un server sau cloud pentru înregistrare sau procesare suplimentară, deși acest lucru nu este esențial pentru ca dispozitivul să funcționeze. Acest lucru minimizează latența rețelei și elimină necesitatea ca operațiunile de învățare automată să fie efectuate pe un cloud sau un server.
- Privacy: Este o preocupare majoră pe internet și cu internetul lucrurilor. Lucrarea de învățare automată în aplicațiile TinyML este efectuată local, fără a stoca sau a trimite datele senzorului/utilizatorului către un server/nor. Drept urmare, chiar dacă sunt conectate la o rețea, aceste aplicații sunt sigure de utilizat și nu prezintă riscuri pentru confidențialitate.
aplicatii
- Agricultura – Când fermierii fac o fotografie a unei plante, aplicația lui TensorFlow Lite detectează boli în ea. Funcționează pe orice dispozitiv și nu necesită conexiune la internet. Procedura protejează interesele agricole și este o necesitate critică pentru fermierii din mediul rural.
- Întreținere mecanică – TinyML, atunci când este utilizat pe dispozitive cu putere redusă, poate identifica continuu defectele unei mașini. Presupune întreținere bazată pe predicții. Ping Services, un start-up australian, a introdus un gadget IoT care monitorizează turbinele eoliene atașându-se la exteriorul turbinei. Sesizează autoritățile ori de câte ori detectează orice posibilă problemă sau defecțiune.
- Spitale – The Solar Scare este un proiect. Mosquito folosește TinyML pentru a opri răspândirea bolilor precum dengue și malaria. Este alimentat de energie solară și detectează condițiile de reproducere a țânțarilor înainte de a semnala apei pentru a inhiba reproducerea țânțarilor.
- Supravegherea Traficului – De aplicând TinyML senzorilor care colectează date de trafic în timp real, le putem folosi pentru a direcționa mai bine traficul și pentru a reduce timpii de răspuns pentru vehiculele de urgență. Swim.AI, de exemplu, folosește această tehnologie în fluxul de date pentru a crește siguranța pasagerilor, reducând în același timp congestia și emisiile prin rutare inteligentă.
- Drept: TinyML poate fi folosit în forțele de ordine pentru a identifica acțiunile ilegale, cum ar fi revoltele și furtul, folosind învățarea automată și recunoașterea gesturilor. Un program similar poate fi folosit și pentru a securiza bancomatele băncilor. Urmărind comportamentul utilizatorului, un model TinyML poate prezice dacă utilizatorul este un consumator real care finalizează o tranzacție sau un intrus care încearcă să pirateze sau să distrugă ATM-ul.
Cum să începeți cu TinyML?
Pentru a începe să utilizați TinyML în TensorFlow Lite, veți avea nevoie de o placă de microcontroler compatibilă. TensorFlow Lite pentru microcontrolere acceptă microcontrolerele enumerate mai jos.
- Terminal Wio: ATSAMD51
- Placă de dezvoltare Himax WE-I Plus EVB Endpoint AI
- STM32F746 Kit de descoperire
- Adafruit EdgeBadge
- Platforma de dezvoltare software Synopsys DesignWare ARC EM
- Sony Express
- Arduino Nano 33 BLE Sense
- SparkFun Edge
- Kit Adafruit TensorFlow Lite pentru microcontrolere
- Adafruit Circuit Playground Bluefruit
- Espressif ESP32-DevKitC
- Espressif ESP-EYE
Acestea sunt microcontrolere pe 32 de biți care au suficientă memorie flash, RAM și frecvență de ceas pentru a executa un model de învățare automată. Plăcile au, de asemenea, o serie de senzori la bord capabili să ruleze orice program încorporat și să aplice modele de învățare automată aplicației vizate. La construi un model de învățare automată, veți avea nevoie de un laptop sau computer pe lângă o platformă hardware.
Fiecare platformă hardware are propriile instrumente de programare pentru construirea, instruirea și portarea modelelor de învățare automată, care utilizează pachetul TensorFlow Lite pentru microcontrolere. TensorFlow Lite este liber de utilizat și modificat deoarece este open-source.
Pentru a începe cu TinyML și TensorFlow Lite, tot ce aveți nevoie este una dintre platformele hardware încorporate menționate mai sus, un computer/laptop, un cablu USB, un convertor USB-la-Serial - și dorința de a exersa învățarea automată cu sisteme încorporate .
Provocări
Chiar dacă progresul TinyML a dat multe rezultate pozitive, industria învățării automate se confruntă în continuare cu obstacole considerabile.
- Diversitatea software – Codare manuală, generarea de cod și interpreții ML sunt toate opțiuni pentru implementarea modelelor pe dispozitivele TinyML și fiecare necesită un timp și efort diferit. Ca rezultat pot apărea performanțe diferite.
- Diversitatea hardware – Acolo sunt disponibile mai multe opțiuni hardware. Platformele TinyML pot fi orice, de la microcontrolere de uz general la procesoare neuronale de ultimă oră. Acest lucru cauzează probleme cu implementarea modelului în diferite arhitecturi.
- Depanare/depanare – Când un model ML are performanțe slabe pe cloud, este simplu să te uiți la date și să descoperi ce nu merge bine. Atunci când un model este răspândit pe mii de dispozitive TinyML, fără ca fluxul de date să revină în cloud, depanarea devine dificilă și poate necesita o metodă diferită.
- Constrângeri de memorie – Tradiționale platformele, cum ar fi smartphone-urile și laptopurile, au nevoie de gigaocteți de memorie RAM, în timp ce dispozitivele TinyML folosesc kilobytes sau megabytes. Ca urmare, dimensiunea modelului care poate fi implementat este limitată.
- Antrenamentul modelului – Deși Există mai multe avantaje în implementarea modelelor ML pe dispozitivele TinyML, cea mai mare parte a modelelor ML este încă instruită pe cloud pentru a repeta și a îmbunătăți continuu acuratețea modelului.
Viitor
TinyML, cu amprenta sa mică, consumul redus de baterie și lipsa sau dependența limitată de conexiunea la internet, are un potențial enorm în viitor, deoarece majoritatea inteligență artificială va fi implementat pe dispozitive de vârf sau gadgeturi încorporate independente.
Va face aplicațiile IoT mai private și mai sigure prin valorificarea acestora. Deşi TensorFlow Lite este în prezent singurul cadru de învățare automată pentru microcontrolere și microcalculatoare, alte cadre comparabile, cum ar fi senzorul și CMSIS-NN de la ARM, sunt în lucru.
În timp ce TensorFlow Lite este un proiect open-source în desfășurare, care a avut un început grozav cu echipa Google, încă are nevoie de sprijinul comunității pentru a intra în curentul principal.
Concluzie
TinyML este o abordare nouă care combină sistemele încorporate cu învățarea automată. Pe măsură ce IA îngustă atinge vârfuri în multe verticale și domenii, tehnologia poate apărea ca un subdomeniu proeminent în învățarea automată și inteligența artificială.
Oferă o soluție la numeroase provocări cu care se confruntă acum sectorul IoT și profesioniștii care aplică învățarea automată la multe discipline specifice domeniului.
Conceptul de utilizare a învățării automate la dispozitive de vârf cu un computer mic Amprenta și consumul de energie au potențialul de a transforma semnificativ modul în care sunt construite sistemele încorporate și robotica.
Lasă un comentariu