TinyML Applicazioni, Limitazioni e Il Suo Utilizzo in Dispositivi IoT e Edge

TinyML Applicazioni, Limitazioni e Utilizzo in IoT e Edge

Negli ultimi anni, l’Intelligenza Artificiale (AI) e il Machine Learning (ML) hanno registrato una crescita meteorica in termini di popolarità e applicazioni, non solo nell’industria ma anche nell’ambito accademico. Tuttavia, i modelli di ML e AI attuali presentano una limitazione principale: richiedono una quantità immensa di potenza di calcolo e di elaborazione per ottenere i risultati e l’accuratezza desiderati. Ciò limita spesso il loro utilizzo a dispositivi ad alta capacità con una notevole potenza di calcolo.

Tuttavia, dati gli sviluppi tecnologici nei sistemi embedded e lo sviluppo sostanziale nell’industria dell’Internet delle Cose (IoT), si desidera incorporare l’uso di tecniche e concetti di ML in un sistema embedded con risorse limitate per un’intelligenza ubiqua. Il desiderio di utilizzare i concetti di ML nei sistemi embedded e IoT è il principale fattore motivante alla base dello sviluppo di TinyML, una tecnica di ML incorporata che consente modelli e applicazioni di ML su dispositivi multipli a risorse limitate, a basso consumo energetico e a basso costo.

Tuttavia, l’implementazione di ML su dispositivi a risorse limitate non è semplice poiché l’implementazione di modelli di ML su dispositivi con bassa potenza di calcolo presenta sfide specifiche in termini di ottimizzazione, capacità di elaborazione, affidabilità, manutenzione dei modelli e molto altro.

In questo articolo, approfondiremo il modello TinyML e impareremo di più sulla sua origine, gli strumenti che supportano TinyML e le applicazioni di TinyML utilizzando tecnologie avanzate. Quindi cominciamo.

Un’introduzione a TinyML: perché il mondo ha bisogno di TinyML

I dispositivi Internet delle Cose o IoT mirano a sfruttare il calcolo periferico, un paradigma di calcolo che si riferisce a una serie di dispositivi e reti vicini all’utente per consentire un’elaborazione in tempo reale e senza interruzioni dei dati provenienti da milioni di sensori e dispositivi interconnessi tra loro. Uno dei principali vantaggi dei dispositivi IoT è che richiedono una bassa potenza di calcolo e di elaborazione poiché possono essere distribuiti al margine della rete e quindi occupano una bassa quantità di memoria.

Inoltre, i dispositivi IoT si affidano pesantemente alle piattaforme periferiche per raccogliere e quindi trasmettere i dati, poiché questi dispositivi periferici raccolgono dati sensoriali e li trasmettono a una posizione vicina o a piattaforme cloud per l’elaborazione. La tecnologia di calcolo periferico archivia e esegue calcoli sui dati e fornisce anche l’infrastruttura necessaria per supportare il calcolo distribuito.

L’implementazione del calcolo periferico nei dispositivi IoT offre:

  1. Sicurezza, privacy ed affidabilità efficaci per gli utenti finali.
  2. Ritardo inferiore.
  3. Maggiore disponibilità e velocità di risposta per applicazioni e servizi.

Inoltre, poiché i dispositivi periferici possono utilizzare una tecnica collaborativa tra i sensori e il cloud, l’elaborazione dei dati può essere condotta al margine della rete anziché sulle piattaforme cloud. Ciò può portare a una gestione efficace dei dati, persistenza dei dati, consegna efficace e memorizzazione nella cache dei contenuti. Inoltre, per implementare l’IoT nelle applicazioni che trattano l’interazione tra uomo e macchina (H2M) e nell’assistenza sanitaria moderna, il calcolo periferico offre un modo per migliorare significativamente i servizi di rete.

Ricerche recenti nel campo del calcolo periferico IoT hanno dimostrato il potenziale di implementare tecniche di Machine Learning in diversi casi d’uso IoT. Tuttavia, il problema principale è che i modelli tradizionali di Machine Learning spesso richiedono una potenza di calcolo e di elaborazione elevata e una capacità di memoria elevata, il che limita l’implementazione di modelli di ML nei dispositivi e nelle applicazioni IoT.

Inoltre, la tecnologia del calcolo periferico attuale manca di una capacità di trasmissione elevata e di un risparmio energetico efficace, il che porta a sistemi eterogenei, che è la principale ragione alla base dell’esigenza di un’infrastruttura armoniosa ed olistica, principalmente per l’aggiornamento, l’addestramento e la distribuzione dei modelli di ML. L’architettura progettata per i dispositivi embedded rappresenta una sfida ulteriore poiché queste architetture dipendono dai requisiti hardware e software che variano da dispositivo a dispositivo. Questo è il motivo principale per cui è difficile creare un’architettura di ML standard per le reti IoT.

Inoltre, nell’attuale scenario, i dati generati da diversi dispositivi vengono inviati alle piattaforme cloud per l’elaborazione a causa della natura computazionalmente intensiva delle implementazioni di rete. Inoltre, i modelli di ML spesso dipendono dal Deep Learning, dalle Reti Neurali Profonde, dai Circuiti Integrati Specifici per Applicazioni (ASIC) e dalle Unità di Elaborazione Grafica (GPU) per l’elaborazione dei dati, e spesso hanno requisiti di potenza e memoria più elevati. La distribuzione di modelli di ML completi su dispositivi IoT non è una soluzione praticabile a causa della evidente mancanza di potenza di calcolo e di elaborazione e delle soluzioni di archiviazione limitate.

La necessità di miniaturizzare dispositivi embedded a basso consumo energetico insieme all’ottimizzazione dei modelli di ML per renderli più efficienti dal punto di vista energetico e della memoria ha aperto la strada a TinyML, che mira ad implementare modelli e pratiche di ML su dispositivi e framework IoT periferici. TinyML consente l’elaborazione del segnale su dispositivi IoT e fornisce intelligenza integrata, eliminando così la necessità di trasferire i dati alle piattaforme cloud per l’elaborazione. L’implementazione di successo di TinyML su dispositivi IoT può portare a un aumento della privacy e dell’efficienza, riducendo al contempo i costi operativi. Inoltre, ciò che rende TinyML ancora più interessante è che in caso di connettività insufficiente, può fornire analisi in loco.

TinyML: Introduzione e Panoramica

TinyML è uno strumento di apprendimento automatico che ha la capacità di eseguire analisi su dispositivo per diverse modalità di rilevamento come audio, visione e speech. I modelli di machine learning creati con lo strumento TinyML hanno requisiti di potenza, memoria e calcolo ridotti, rendendoli adatti per reti integrate e dispositivi che funzionano con batterie. Inoltre, i bassi requisiti di TinyML lo rendono ideale per distribuire modelli di machine learning nel framework IoT.

Nello scenario attuale, i sistemi di machine learning basati su cloud affrontano alcune difficoltà, tra cui preoccupazioni per la sicurezza e la privacy, elevato consumo di energia, affidabilità e problemi di latenza, motivo per cui i modelli su piattaforme hardware-software vengono preinstallati. I sensori raccolgono i dati che simulano il mondo fisico e vengono quindi elaborati utilizzando una CPU o MPU (unità di microprocessazione). L’MPU soddisfa le esigenze del supporto analitico di machine learning abilitato da reti e architetture edge-aware di TinyML. L’architettura di Edge ML comunica con il cloud di machine learning per il trasferimento dei dati e l’implementazione di TinyML può portare a significativi progressi tecnologici.

Si può affermare che TinyML è una combinazione di software, hardware e algoritmi che lavorano in sinergia per fornire le prestazioni desiderate. Potrebbe essere necessario utilizzare calcolo analogico o di memoria per offrire un’esperienza di apprendimento migliore ed efficace per dispositivi hardware e IoT che non supportano acceleratori hardware. Per quanto riguarda il software, le applicazioni sviluppate utilizzando TinyML possono essere distribuite ed implementate su piattaforme come Linux o Linux integrato e su software abilitato per il cloud. Infine, le applicazioni e i sistemi basati sull’algoritmo TinyML devono essere supportati da nuovi algoritmi che richiedono modelli di dimensioni ridotte per evitare un’elevata occupazione di memoria.

Per riassumere, le applicazioni sviluppate utilizzando lo strumento TinyML devono ottimizzare i principi e i metodi di machine learning insieme alla progettazione del software in modo compatto, in presenza di dati di alta qualità. Questi dati devono quindi essere trasferiti tramite file binari generati utilizzando modelli addestrati su macchine con capacità e potenza di calcolo molto più grandi.

Inoltre, i sistemi e le applicazioni che utilizzano lo strumento TinyML devono fornire un’alta precisione quando operano in condizioni più strette, poiché è necessario un software compatto per un consumo di energia ridotto che supporti le implicazioni di TinyML. Inoltre, le applicazioni o i moduli TinyML possono dipendere dall’alimentazione a batteria per supportare le proprie operazioni su sistemi embedded edge.

Detto questo, le applicazioni TinyML hanno due requisiti fondamentali:

  1. Capacità di scalare miliardi di sistemi embedded economici.
  2. Memorizzazione del codice nella RAM del dispositivo con una capacità inferiore a pochi KB.

Applicazioni di TinyML Utilizzando Tecnologie Avanzate

Uno dei principali motivi per cui TinyML è un argomento caldo nell’industria dell’IA e del machine learning è a causa delle sue potenziali applicazioni, tra cui applicazioni basate su visione e speech, diagnosi di salute, compressione e classificazione di pattern di dati, interfaccia di controllo cerebrale, edge computing, fenomica, auto a guida autonoma e altro ancora.

Applicazioni Basate su Speech

Comunicazioni Speech

Tipicamente, le applicazioni basate su speech si basano su metodi di comunicazione convenzionali in cui tutti i dati sono importanti e vengono trasmessi. Tuttavia, negli ultimi anni, la comunicazione semantica è emersa come un’alternativa alla comunicazione convenzionale poiché nella comunicazione semantica viene trasmesso solo il significato o il contesto dei dati. La comunicazione semantica può essere implementata nelle applicazioni basate su speech utilizzando metodologie TinyML.

Alcune delle applicazioni più popolari nell’industria delle comunicazioni speech oggi sono il rilevamento del discorso, il riconoscimento del discorso, l’apprendimento online, l’insegnamento online e la comunicazione orientata agli obiettivi. Queste applicazioni hanno tipicamente un consumo energetico più elevato e richiedono anche requisiti elevati di dati sul dispositivo host. Per superare tali requisiti, è stata introdotta una nuova libreria chiamata TinySpeech che consente agli sviluppatori di creare un’architettura computazionale ridotta che utilizza reti convoluzionali profonde per costruire una struttura di archiviazione ridotta.

Per utilizzare TinyML per il miglioramento del discorso, gli sviluppatori hanno prima affrontato la dimensione del modello di miglioramento del discorso poiché era soggetto a limitazioni e vincoli hardware. Per affrontare il problema, è stata utilizzata la potatura strutturata e la quantizzazione intera per il modello di miglioramento del discorso basato su reti neurali ricorrenti (RNN). I risultati hanno suggerito che la dimensione del modello potesse essere ridotta di quasi 12 volte e le operazioni di quasi 3 volte. Inoltre, è fondamentale utilizzare efficacemente le risorse, specialmente quando vengono distribuite su applicazioni con vincoli di risorse che eseguono applicazioni di riconoscimento vocale.

Come risultato, per partizionare il processo, è stato proposto un metodo di co-progettazione per applicazioni di riconoscimento vocale e speech basate su TinyML. Gli sviluppatori hanno utilizzato l’operazione di finestraggio per partizionare il software e l’hardware in modo da preelaborare i dati vocali grezzi. Il metodo sembrava funzionare poiché i risultati hanno indicato una diminuzione del consumo energetico sull’hardware. Infine, esiste anche il potenziale per implementare una partizione ottimizzata tra la co-progettazione di software e hardware per una migliore performance in futuro.

Inoltre, recenti ricerche hanno proposto l’utilizzo di un trasduttore basato su telefono per i sistemi di riconoscimento vocale, e la proposta mira a sostituire i predittori LSTM con un livello Conv1D per ridurre i requisiti di calcolo sui dispositivi edge. Quando implementata, la proposta ha restituito risultati positivi poiché la decomposizione in valori singolari o SVD ha compresso con successo il modello, mentre l’utilizzo della decodifica basata su trasduttori a stati finiti pesati o WFST ha portato a una maggiore flessibilità nel miglioramento del modello.

Molte applicazioni importanti di riconoscimento vocale come assistenti virtuali o vocali, sottotitolazione in diretta e comandi vocali utilizzano tecniche di apprendimento automatico per funzionare. Gli assistenti vocali popolari attualmente come Siri e Google Assistant inviano una richiesta alla piattaforma cloud ogni volta che ricevono dei dati, e ciò crea preoccupazioni significative legate alla privacy e alla sicurezza dei dati. TinyML è una soluzione valida al problema poiché mira a eseguire il riconoscimento vocale sui dispositivi, eliminando la necessità di migrare i dati alle piattaforme cloud. Uno dei modi per ottenere il riconoscimento vocale su dispositivo è utilizzare Tiny Transducer, un modello di riconoscimento vocale che utilizza un livello DFSMN o Deep Feed-Forward Sequential Memory Block accoppiato a un livello Conv1D al posto dei livelli LSTM per ridurre i requisiti di calcolo e i parametri di rete.

Audioprotesi

La perdita dell’udito è una preoccupazione sanitaria importante in tutto il mondo e la capacità dell’essere umano di sentire i suoni si indebolisce generalmente con l’età, rappresentando un problema significativo nei paesi con una popolazione invecchiata, tra cui Cina, Giappone e Corea del Sud. Attualmente, i dispositivi per le protesi acustiche funzionano sul semplice principio di amplificare tutti i suoni di input provenienti dall’ambiente circostante, rendendo difficile per la persona distinguere o differenziare tra i suoni desiderati, soprattutto in un ambiente rumoroso.

TinyML potrebbe rappresentare la soluzione valida per questo problema, poiché l’utilizzo di un modello TinyLSTM che utilizza un algoritmo di riconoscimento vocale per i dispositivi per le protesi acustiche può aiutare gli utenti a distinguere tra diversi suoni.

Applicazioni basate sulla visione

TinyML ha il potenziale per svolgere un ruolo cruciale nell’elaborazione di set di dati basati sulla visione artificiale perché per ottenere risultati più rapidi, questi set di dati devono essere elaborati sulla piattaforma edge stessa. Per raggiungere questo obiettivo, il modello TinyML affronta le sfide pratiche incontrate durante l’addestramento del modello utilizzando la scheda microcontroller OpenMV H7. Gli sviluppatori hanno anche proposto un’architettura per il rilevamento della lingua dei segni americana con l’aiuto di un microcontroller ARM Cortex M7 che funziona solo con 496KB di frame-buffer RAM.

L’implementazione di TinyML per applicazioni basate sulla visione artificiale su piattaforme edge ha richiesto agli sviluppatori di superare la sfida principale delle reti neurali convoluzionali o CNN con un alto errore di generalizzazione e un’alta accuratezza di addestramento e test. Tuttavia, l’implementazione non ha generalizzato efficacemente alle immagini in nuovi casi d’uso e con sfondi rumorosi. Quando gli sviluppatori hanno utilizzato il metodo di interpolazione per l’aumento dei dati, il modello ha restituito un punteggio di accuratezza superiore al 98% sui dati di test e circa il 75% nella generalizzazione.

Inoltre, è stato osservato che quando gli sviluppatori hanno utilizzato il metodo di interpolazione per l’aumento dei dati, c’è stato un calo dell’accuratezza del modello durante la quantizzazione, ma allo stesso tempo c’è stato anche un aumento della velocità di inferenza del modello e della generalizzazione della classificazione. Gli sviluppatori hanno anche proposto un metodo per aumentare ulteriormente l’accuratezza del modello di generalizzazione addestrando il modello su dati ottenuti da una varietà di fonti diverse e testando le prestazioni per esplorare la possibilità di implementarlo su piattaforme edge come smartwatch portatili.

Inoltre, ulteriori studi sulle CNN hanno indicato che è possibile implementare e ottenere risultati desiderabili con l’architettura CNN su dispositivi con risorse limitate. Recentemente, gli sviluppatori sono riusciti a sviluppare un framework per il rilevamento delle maschere facciali mediche su un microcontroller ARM Cortex M7 con risorse limitate utilizzando TensorFlow Lite con un’occupazione di memoria minima. La dimensione del modello dopo la quantizzazione era di circa 138 KB, mentre la velocità di inferenza sulla scheda di destinazione era di circa 30 FPS.

Un’altra applicazione di TinyML per applicazioni basate sulla visione artificiale è quella di implementare un dispositivo di riconoscimento dei gesti che può essere fissato a un bastone per aiutare le persone con disabilità visiva a navigare facilmente nella loro vita quotidiana. Per progettarlo, gli sviluppatori hanno utilizzato il set di dati dei gesti e hanno utilizzato il set di dati per addestrare il modello ProtoNN con un algoritmo di classificazione. I risultati ottenuti dalla configurazione sono stati accurati, il design era a basso costo e ha fornito risultati soddisfacenti.

Un’altra applicazione significativa di TinyML è nell’industria dei veicoli autonomi e a guida autonoma a causa della mancanza di risorse e potenza di calcolo a bordo. Per affrontare il problema, gli sviluppatori hanno introdotto un metodo di apprendimento a ciclo chiuso basato sul modello TinyCNN che propone un modello predittivo online che cattura l’immagine in tempo reale. Il problema principale che gli sviluppatori hanno affrontato durante l’implementazione di TinyML per la guida autonoma era che il modello decisionale addestrato per lavorare su dati offline potrebbe non funzionare altrettanto bene quando si tratta di dati online. Per massimizzare appieno le applicazioni delle auto autonome e delle auto a guida autonoma, il modello dovrebbe idealmente essere in grado di adattarsi ai dati in tempo reale.

Classificazione e compressione dei modelli di dati

Una delle sfide più grandi del framework TinyML attuale è quella di facilitare l’adattamento ai dati di addestramento online. Per affrontare questo problema, gli sviluppatori hanno proposto un metodo noto come TinyOL o TinyML Online Learning, che consente l’addestramento con apprendimento incrementale online su unità microcontroller, consentendo così all’elaborazione di aggiornarsi sui dispositivi IoT edge. L’implementazione è stata realizzata utilizzando il linguaggio di programmazione C++, con l’aggiunta di uno strato aggiuntivo all’architettura TinyOL.

Inoltre, gli sviluppatori hanno anche eseguito l’auto-codifica della scheda del sensore Arduino Nano 33 BLE, e il modello addestrato è stato in grado di classificare nuovi modelli di dati. Inoltre, il lavoro di sviluppo ha incluso la progettazione di algoritmi più efficienti e ottimizzati per le reti neurali al fine di supportare i modelli di addestramento online dei dispositivi.

La ricerca su TinyOL e TinyML ha indicato che il numero di strati di attivazione è stato un problema principale per i dispositivi IoT edge con risorse limitate. Per affrontare questo problema, gli sviluppatori hanno introdotto il nuovo modello TinyTL o Tiny Transfer Learning per rendere l’utilizzo della memoria su dispositivi IoT edge molto più efficace, evitando l’uso di strati intermedi per scopi di attivazione. Inoltre, gli sviluppatori hanno anche introdotto un nuovo modulo di bias conosciuto come “modulo di residui leggeri” per massimizzare le capacità di adattamento e consentire agli estrattori di funzionalità di scoprire mappe di funzionalità residue.

Rispetto al fine-tuning completo della rete, i risultati sono stati a favore dell’architettura TinyTL, in quanto i risultati hanno mostrato che TinyTL riduce il sovraccarico di memoria di circa 6,5 volte con una perdita di accuratezza moderata. Quando l’ultimo strato è stato sintonizzato, TinyML ha migliorato l’accuratezza del 34% con una perdita di accuratezza moderata.

Inoltre, la ricerca sulla compressione dei dati ha indicato che gli algoritmi di compressione dei dati devono gestire i dati raccolti su un dispositivo portatile. Per raggiungere questo obiettivo, gli sviluppatori hanno proposto TAC o Tiny Anomaly Compressor. Il TAC è riuscito a superare gli algoritmi SDT o Swing Door Trending e DCT o Discrete Cosine Transform. Inoltre, l’algoritmo TAC ha superato sia gli algoritmi SDT che DCT raggiungendo un tasso di compressione massimo superiore al 98% e avendo il miglior rapporto segnale-rumore tra i tre algoritmi.

Diagnosi sanitaria

La pandemia globale da Covid-19 ha aperto nuove opportunità per l’implementazione di TinyML, in quanto è diventata pratica essenziale rilevare continuamente i sintomi respiratori correlati a tosse e raffreddore. Per garantire un monitoraggio ininterrotto, gli sviluppatori hanno proposto un modello CNN chiamato Tiny RespNet che opera su un ambiente multi-modello ed è implementato su un FPGA Xilinx Artix-7 100t che consente al dispositivo di elaborare le informazioni in modo parallelo, con alta efficienza e basso consumo energetico. Inoltre, il modello TinyResp utilizza anche il parlato dei pazienti, le registrazioni audio e le informazioni demografiche come input per classificare i sintomi correlati alla tosse di un paziente utilizzando tre dataset distinti.

Inoltre, gli sviluppatori hanno anche proposto un modello in grado di eseguire calcoli di deep learning su dispositivi edge, un modello TinyML chiamato TinyDL. Il modello TinyDL può essere implementato su dispositivi edge come smartwatch e dispositivi indossabili per la diagnosi sanitaria ed è in grado anche di svolgere analisi delle prestazioni per ridurre la larghezza di banda, la latenza e il consumo energetico. Per realizzare l’implementazione di TinyDL su dispositivi portatili, è stato progettato e addestrato un modello LSTM specifico per un dispositivo indossabile, al quale sono stati forniti i dati raccolti come input. Il modello ha un punteggio di accuratezza di circa il 75-80% ed è stato in grado di lavorare anche con dati fuori dal dispositivo. Questi modelli eseguiti su dispositivi edge hanno dimostrato il potenziale per risolvere le attuali sfide affrontate dai dispositivi IoT.

Infine, gli sviluppatori hanno anche proposto un’altra applicazione per monitorare la salute delle persone anziane stimando e analizzando le loro pose corporee. Il modello utilizza un framework agnostico sul dispositivo che consente al modello di abilitare la convalida e la promozione rapida per eseguire adattamenti. Il modello implementa algoritmi di rilevamento della posa del corpo combinati con landmarks facciali per rilevare pose corporee spaziotemporali in tempo reale.

Edge Computing

Una delle principali applicazioni di TinyML si trova nel campo del computing edge, poiché con l’aumento dell’uso dei dispositivi IoT per connettere dispositivi in tutto il mondo, è essenziale configurare dispositivi edge al fine di ridurre il carico sulle architetture cloud. Questi dispositivi edge avranno dei data center individuali che consentiranno loro di eseguire calcoli di alto livello direttamente sul dispositivo stesso, anziché fare affidamento sull’architettura cloud. Questo contribuirà a ridurre la dipendenza dal cloud, ridurre la latenza, migliorare la sicurezza e la privacy dell’utente e ridurre anche la larghezza di banda.

I dispositivi Edge che utilizzano gli algoritmi TinyML contribuiranno a risolvere i vincoli attuali legati all’energia, ai requisiti di calcolo e di memoria, come discusso nell’immagine sottostante. 

Inoltre, TinyML può migliorare anche l’uso e l’applicazione dei Veicoli Aerei Senza Pilota o UAV affrontando le attuali limitazioni di queste macchine. L’uso di TinyML può consentire agli sviluppatori di implementare un dispositivo ad alta efficienza energetica con bassa latenza e alta potenza di calcolo che può fungere da controller per questi UAV. 

Interfaccia Cervello-Computer o BCI

TinyML ha applicazioni significative nel settore sanitario e può rivelarsi molto utile in diverse aree, tra cui la rilevazione di cancro e tumori, le previsioni di salute utilizzando segnali ECG ed EEG e l’intelligenza emotiva. L’uso di TinyML può consentire alla Stimolazione Cerebrale Profonda Adattiva o aDBS di adattarsi con successo alle applicazioni cliniche. L’uso di TinyML può anche consentire aDBS di identificare biomarcatori correlati alle malattie e i loro sintomi utilizzando registrazioni invasive dei segnali cerebrali. 

Inoltre, il settore sanitario spesso prevede la raccolta di una grande quantità di dati di un paziente, e questi dati devono poi essere elaborati per raggiungere soluzioni specifiche per il trattamento di un paziente nelle fasi iniziali di una malattia. Di conseguenza, è fondamentale costruire un sistema che sia non solo altamente efficace, ma anche altamente sicuro. Quando combiniamo l’applicazione IoT con il modello TinyML, nasce un nuovo campo chiamato H-IoT o Healthcare Internet of Things, e le principali applicazioni dell’H-IoT sono la diagnosi, il monitoraggio, la logistica, il controllo della diffusione e i sistemi di assistenza. Se vogliamo sviluppare dispositivi in grado di rilevare ed analizzare la salute di un paziente a distanza, è essenziale sviluppare un sistema con accessibilità globale e bassa latenza. 

Veicoli Autonomi

Infine, TinyML può avere applicazioni diffuse nell’industria dei veicoli autonomi poiché questi veicoli possono essere utilizzati in modi diversi, tra cui il tracciamento umano, scopi militari e applicazioni industriali. Questi veicoli hanno il requisito principale di essere in grado di identificare efficientemente gli oggetti quando l’oggetto viene cercato. 

Al momento attuale, i veicoli autonomi e la guida autonoma sono un compito piuttosto complesso, specialmente nello sviluppo di veicoli di piccole dimensioni. Gli sviluppi recenti hanno mostrato il potenziale per migliorare l’applicazione della guida autonoma per veicoli mini utilizzando un’architettura CNN e distribuendo il modello su GAP8 MCI. 

Sfide

TinyML è un concetto relativamente nuovo nell’industria dell’IA e dell’ML e, nonostante i progressi, non è ancora così efficace come lo necessitiamo per la distribuzione su larga scala per dispositivi edge e IoT. 

La sfida più grande attualmente affrontata dai dispositivi TinyML è il consumo di energia di questi dispositivi. Idealmente, si prevede che i dispositivi embedded edge e IoT abbiano una durata della batteria che si estenda oltre i 10 anni. Ad esempio, in condizioni ideali, un dispositivo IoT che funziona con una batteria da 2 Ah dovrebbe avere una durata della batteria di oltre 10 anni, considerando che il consumo di energia del dispositivo è di circa 12 ua. Tuttavia, nello stato attuale, con un’architettura IoT dotata di un sensore di temperatura, un’unità MCU e un modulo WiFi, il consumo di corrente attuale si attesta a circa 176,4 mA, e con questo consumo di energia, la batteria durerà solo circa 11 ore, invece dei richiesti 10 anni di durata della batteria. 

Limitazioni delle Risorse

Per mantenere la coerenza di un algoritmo, è fondamentale garantire la disponibilità di energia e, data la situazione attuale, la disponibilità di energia limitata per i dispositivi TinyML rappresenta una sfida critica. Inoltre, le limitazioni di memoria sono anche una sfida significativa poiché il dispiegamento dei modelli richiede spesso una grande quantità di memoria per funzionare in modo efficace e preciso. 

Limitazioni Hardware

Le limitazioni hardware rendono difficile il dispiegamento di algoritmi TinyML su vasta scala a causa dell’eterogeneità dei dispositivi hardware. Ci sono migliaia di dispositivi, ognuno con le proprie specifiche hardware e requisiti, e di conseguenza, un algoritmo TinyML attualmente deve essere adattato per ogni singolo dispositivo, rendendo la distribuzione di massa un problema principale. 

Limitazioni del set di dati

Uno dei principali problemi con i modelli TinyML è che non supportano i set di dati esistenti. È una sfida per tutti i dispositivi edge in quanto raccolgono dati utilizzando sensori esterni e questi dispositivi spesso hanno vincoli di potenza ed energia. Pertanto, i set di dati esistenti non possono essere utilizzati per addestrare in modo efficace i modelli TinyML.

Pensieri finali

Lo sviluppo delle tecniche di apprendimento automatico ha causato una rivoluzione e un cambiamento prospettico nell’ecosistema IoT. L’integrazione di modelli di apprendimento automatico nei dispositivi IoT consentirà a questi dispositivi edge di prendere decisioni intelligenti autonomamente, senza alcun input umano esterno. Tuttavia, in modo convenzionale, i modelli di apprendimento automatico spesso hanno requisiti elevati di potenza, memoria e calcolo che li rendono inadatti per essere implementati su dispositivi edge spesso limitati in risorse.

Come risultato, è stata dedicata un’intera branca dell’intelligenza artificiale all’uso di modelli di apprendimento automatico per i dispositivi IoT, denominata TinyML. TinyML è un framework di apprendimento automatico che consente anche ai dispositivi con risorse limitate di sfruttare la potenza dell’intelligenza artificiale e del machine learning per garantire maggiore precisione, intelligenza ed efficienza.

In questo articolo abbiamo parlato dell’implementazione di modelli TinyML su dispositivi IoT con risorse limitate e questa implementazione richiede l’addestramento dei modelli, il loro deployment sull’hardware e l’applicazione di tecniche di quantizzazione. Tuttavia, data la portata attuale, i modelli di apprendimento automatico pronti per essere implementati su dispositivi IoT e edge presentano diverse complessità e vincoli, tra cui problemi di compatibilità hardware e framework.