O introducere în tehnologia TinyML

by donpedro

Inteligența artificială și învățarea automată: Deja încorporate în viața noastră

Nu cu mult timp în urmă, ideea de a “vorbi” cu ceasul de mână sau cu un dispozitiv ‘Star Trek Communicator’ era în mintea scriitorilor de science-fiction, însă, astăzi, mulți dintre noi fac acest lucru în mod obișnuit. Vorbim cu aplicațiile telefoanelor noastre inteligente, vorbim cu sistemul de infotainment al mașinilor noastre și cu “difuzoarele inteligente” din casele noastre.

Inteligența artificială (AI), știința creării de computere care pot gândi, simți, recunoaște și rezolva probleme, a devenit fundamentul domeniilor actuale ale informaticii și științei datelor. Învățarea automată (ML − Machine Learning), un domeniu de aplicare a inteligenței artificiale, se concentrează pe utilizarea algoritmilor pentru a permite computerelor să învețe și să îmbunătățească modul în care îndeplinesc o sarcină fără a fi programate în mod explicit pentru a o realiza.

O mare parte din lumea din jurul nostru este astăzi deja modelată de învățarea automată, de la previziunile meteo și găsirea celui mai bun traseu pentru deplasarea zilnică până la bannerele publicitare promoționale din aplicația voastră favorită de ‘social media’. Multe domenii de cercetare științifică depind în prezent de ML pentru a analiza petabyte de date în căutare de tendințe.

Cum funcționează învățarea automată

În exemplele de învățare automată evidențiate mai sus, de obicei, ne întâlnim doar cu rezultatele. În mod obișnuit, nu ajungem să vedem complexitatea găsirii unei noi găuri negre sau numărul de permutări ale evenimentelor meteorologice anterioare folosite pentru a determina prognoza de astăzi. Multe dintre sarcinile complexe implică seturi mari de date, mai mulți algoritmi potențiali și o putere de calcul semnificativă. Pătrundeți mai adânc în învățarea automată și veți găsi diferite categorii de învățare, fiecare dintre acestea fiind potrivită pentru sarcini specifice. Nu le vom aborda în detaliu aici, dar acestea sunt: învățarea supravegheată, nesupravegheată, semisupravegheată și învățarea de consolidare.

O rețea neurală este o parte esențială a oricărei aplicații ML. În general, o rețea neurală este o încercare de a reproduce într-un model matematic funcția neuronilor din creierul uman. Modelul utilizează algoritmi pentru a deduce probabilitățile unui rezultat; de exemplu, într-o sarcină de recunoaștere a imaginii, probabilitatea ca imaginea să fie un câine este de 95%. Există diferite tipuri de rețele neurale și veți întâlni termeni precum rețele neurale convoluționale (CNN) și rețele neurale recurente (RNN). Fiecare tip de rețea neurală are un set diferit de straturi interconectate, ceea ce o face mai potrivită pentru sarcini specifice.

Învățarea supravegheată implică predarea către rețeaua neurală a multor date de instruire, astfel încât un algoritm să poată deduce un rezultat. De exemplu, pentru sarcinile de recunoaștere a imaginilor, o rețea CNN este cea mai bună. Pentru a identifica diferite tipuri de fructe, trebuie să “hrăniți” algoritmul rețelei neurale cu mii de imagini etichetate cu diferite tipuri de fructe, luate din diferite unghiuri și cu grade diferite de coacere. Algoritmul caută apoi caracteristici perceptibile care să îl ajute să identifice un tip de fruct în raport cu altul. Faza de formare este iterativă și poate implica modificarea algoritmului pentru a obține cele mai mari probabilități atunci când este confruntat cu un set de date de imagini de test.

Odată ce datele de test ating cea mai bună performanță a algoritmului de rețea neurală, modelul este gata de implementare. În procesul de implementare, cunoscut și sub numele de inferență, modelul deduce rezultatele pe baza unei probabilități.

Figura 1: Etapele de instruire și de inferență (© Mouser)

Interacțiunea noastră zilnică cu, să zicem, difuzorul nostru inteligent implică, de obicei, un cuvânt sau o frază de declanșare, cum ar fi “Hei, Google”, pentru a-l trezi astfel încât să înceapă să asculte ce urmează. Un difuzor inteligent nu dispune de capabilitățile de calcul ale unui centru de date, astfel încât fișierele audio scurte sunt înregistrate și transmise în cloud pentru inferență, pentru a determina natura solicitării noastre. Detectarea cuvântului sau a frazei de declanșare este un exemplu excelent de învățare automată simplă; bun venit în lumea TinyML!

Învățarea automată și Industrial IoT

Pe măsură ce învățarea automată devine omniprezentă, lista de aplicații potențiale crește exponențial. Multe aplicații industriale, de exemplu, nu se concentrează pe aplicații de “date mari”, ci pe modul de eficientizare a liniilor de producție. Costurile unei defecțiuni neașteptate într-un proces de producție pot fi ridicate. O defecțiune a unui motor în timpul unui proces de amestecare a alimentelor refrigerate poate opri producția, ducând la pierderea materiilor prime.

Multe organizații folosesc acum un regim de întreținere predictivă pentru a programa perioadele de oprire planificate cu scopul de a preveni astfel de defecțiuni. Monitorizarea bazată pe starea activelor de producție, cum ar fi motoarele și dispozitivele de acționare, ajută la prezicerea momentului în care, de exemplu, un rulment de motor începe să dea semne de uzură excesivă. Algoritmii de învățare automată utilizați în dispozitivele de senzori edge IIoT pot identifica momentul în care semnătura de vibrații a unui motor se abate de la parametri normali, oferind un avertisment suficient.

În domeniul industrial, aplicațiile pentru învățarea automată sunt uriașe, dar odată cu acestea apar și câteva provocări tehnice. Spre deosebire de aplicațiile “Big Data”, resursele de calcul și de memorie ale unui simplu senzor ‘de margine’ IIoT sunt doar o fracțiune din ceea ce este disponibil într-un centru de date. Pe de altă parte, o singură fabrică ar putea avea sute de senzori, astfel încât economia la scară este un factor, la fel ca și dimensiunea fizică, disponibilitatea unei surse de alimentare adecvate și conectivitatea cu fir sau fără fir. Cu toate acestea, în cele mai multe cazuri, algoritmul de rețea neurală utilizat într-un senzor de vibrații este mai puțin solicitant decât cercetarea spațiului cosmic, astfel încât dezvoltatorii de sisteme integrate explorează modalități de a rula modele de rețea pe microcontrolere cu consum redus de putere, alimentate de la baterii.

TinyML: Învățare automată la marginea sistemului

Platforma de calcul utilizată pentru a antrena un model de rețea neurală nu trebuie să fie identică cu platforma de implementare, astfel încât se elimină unul dintre procesele care necesită cele mai multe resurse. Cu toate acestea, provocările tehnice sunt încă prezente. Poate fi executat algoritmul în timp util? Cum va comunica dispozitivul cu un sistem gazdă pentru a notifica personalul operațional? Dezvoltatorii de sisteme încorporate (embedded) se confruntă și ei cu provocări. Majoritatea nu sunt oameni de știință în domeniul datelor, astfel încât învățarea noțiunilor de învățare automată și lucrul cu rețele neurale prezintă o curbă de învățare abruptă.

În următoarele două părți ale acestei serii de articole, vom explora mai întâi lista tot mai mare de biblioteci, framework-uri și instrumente de învățare automată care simplifică foarte mult dezvoltarea și implementarea unei rețele neurale pe un microcontroler. În ultimul articol, prezentăm mai multe platforme cu microcontrolere potrivite pentru implementări TinyML.


Autor
:
Mark Patrick

 

 

Mouser Electronics
Authorised Distributor
www.mouser.com
Urmărește-ne pe Twitter

S-ar putea să vă placă și

Adaugă un comentariu