Connect with us

Intelligenza artificiale

TinyML: Applicazioni, Limitazioni e il suo Utilizzo in IoT e Dispositivi Edge

mm

Negli ultimi anni, l’Intelligenza Artificiale (AI) e il Machine Learning (ML) hanno assistito a una rapida ascesa in termini di popolarità e applicazioni, non solo nell’industria ma anche nell’ambito accademico. Tuttavia, i modelli di ML e AI di oggi hanno una limitazione importante: richiedono una grande quantità di potenza di calcolo e di elaborazione per ottenere i risultati desiderati e l’accuratezza. Ciò li confina spesso all’utilizzo di dispositivi ad alta capacità con una sostanziale potenza di calcolo.

Tuttavia, grazie ai progressi compiuti nella tecnologia dei sistemi embedded e allo sviluppo sostanziale nell’industria dell’Internet delle Cose, è desiderabile incorporare l’utilizzo di tecniche e concetti di ML in un sistema embedded a risorse limitate per l’intelligenza ubiqua. Il desiderio di utilizzare concetti di ML in sistemi embedded e IoT è il principale fattore motivante dietro lo sviluppo di TinyML, una tecnica di ML embedded che consente modelli e applicazioni di ML su dispositivi a risorse limitate, a potenza limitata e a basso costo.

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

In questo articolo, esploreremo più in profondità il modello TinyML e impareremo di più sul suo background, gli strumenti che supportano TinyML e le applicazioni di TinyML utilizzando tecnologie avanzate. Quindi, iniziamo.

Introduzione a TinyML: Perché il Mondo ha Bisogno di TinyML

I dispositivi IoT o Internet delle Cose puntano a sfruttare l’edge computing, un paradigma di calcolo che si riferisce a una gamma di dispositivi e reti vicini all’utente per abilitare l’elaborazione senza soluzione di continuità e in tempo reale dei dati da milioni di sensori e dispositivi interconnessi tra loro. Uno dei principali vantaggi dei dispositivi IoT è che richiedono bassa potenza di calcolo e di elaborazione poiché sono distribuiti al margine della rete e, quindi, hanno un basso impatto sulla memoria.

Inoltre, i dispositivi IoT si affidano fortemente alle piattaforme edge per raccogliere e quindi trasmettere i dati, poiché questi dispositivi edge raccolgono dati sensoriali e li trasmettono a una posizione vicina o a piattaforme cloud per l’elaborazione. La tecnologia di edge computing memorizza e esegue l’elaborazione dei dati e fornisce anche l’infrastruttura necessaria per supportare l’elaborazione distribuita.

L’implementazione di edge computing nei dispositivi IoT fornisce

  1. Sicurezza, privacy e affidabilità efficaci per gli utenti finali.
  2. Ritardo inferiore.
  3. Disponibilità e throughput di risposta alle applicazioni e ai servizi più elevati.

Inoltre, poiché i dispositivi edge possono implementare una tecnica collaborativa tra i sensori e la nuvola, l’elaborazione dei dati può essere eseguita al margine della rete invece di essere eseguita sulla piattaforma cloud. Ciò può risultare in una gestione dei dati efficace, persistenza dei dati, consegna efficace e caching dei contenuti. Inoltre, per implementare IoT in applicazioni che trattano l’interazione uomo-macchina e la sanità moderna, l’edge computing fornisce un modo per migliorare notevolmente i servizi di rete.

Le ricerche recenti nel campo dell’edge computing IoT hanno dimostrato il potenziale per implementare tecniche di ML in diversi casi d’uso IoT. Tuttavia, il problema principale è che i modelli di ML tradizionali richiedono spesso una forte potenza di calcolo e di elaborazione e una grande capacità di memoria, il che limita l’implementazione di modelli di ML in dispositivi e applicazioni IoT.

Inoltre, la tecnologia di edge computing attuale manca di alta capacità di trasmissione e di risparmio energetico efficace, il che porta a sistemi eterogenei, che è il principale motivo della necessità di un’infrastruttura armoniosa e olistica, principalmente per l’aggiornamento, la formazione e la distribuzione di modelli di ML. L’architettura progettata per dispositivi embedded presenta un’altra sfida, poiché queste architetture dipendono dalle esigenze hardware e software che variano da dispositivo a dispositivo. È il motivo principale per cui è difficile costruire un’architettura di ML standard per reti IoT.

Inoltre, nello scenario attuale, i dati generati da diversi dispositivi vengono inviati a piattaforme cloud per l’elaborazione a causa della natura computazionalmente intensiva delle implementazioni di rete. Inoltre, i modelli di ML dipendono spesso dal Deep Learning, dalle reti neurali profonde, dai circuiti integrati specifici dell’applicazione (ASIC) e dalle unità di elaborazione grafica (GPU) per l’elaborazione dei dati e spesso hanno una maggiore potenza e memoria richiesta. Distribuire modelli di ML completi su dispositivi IoT non è una soluzione fattibile a causa della mancanza evidente di potenza di calcolo e di elaborazione e di soluzioni di archiviazione limitate.

La richiesta di miniaturizzare dispositivi embedded a bassa potenza, insieme all’ottimizzazione dei modelli di ML per renderli più efficienti in termini di potenza e memoria, ha aperto la strada a TinyML, che mira a implementare modelli e pratiche di ML su dispositivi IoT e framework edge. TinyML consente l’elaborazione del segnale su dispositivi IoT e fornisce intelligenza embedded, eliminando così la necessità di trasferire i dati a piattaforme cloud per l’elaborazione. L’implementazione efficace di TinyML su dispositivi IoT può risultare infine in un aumento della privacy e dell’efficienza, riducendo i costi operativi. Inoltre, ciò che rende TinyML più attraente è che, in caso di connettività inadeguata, può fornire analisi on-premise.

Introduzione e Panoramica di TinyML

TinyML è uno strumento di ML che ha la capacità di eseguire analisi on-device per diverse modalità di sensore, come audio, visione e linguaggio. I modelli di ML costruiti con lo strumento TinyML hanno bassi requisiti di potenza, memoria e calcolo, il che li rende adatti per reti e dispositivi embedded che operano con alimentazione a batteria. Inoltre, i bassi requisiti di TinyML lo rendono un adattamento ideale per distribuire modelli di ML sul framework IoT.

Nello scenario attuale, i sistemi di ML basati su cloud affrontano alcune difficoltà, tra cui problemi di sicurezza e privacy, consumo di potenza elevato, problemi di affidabilità e latenza, il che è il motivo per cui i modelli su piattaforme hardware-software sono preinstallati. I sensori raccolgono i dati che simulano il mondo fisico e vengono quindi elaborati utilizzando un’unità di elaborazione centrale (CPU) o un’unità di elaborazione micro (MPU). L’MPU soddisfa le esigenze di supporto alle analisi di ML abilitate da reti e architetture edge-aware. L’architettura di ML edge comunica con la nuvola di ML per il trasferimento dei dati e l’implementazione di TinyML può risultare in un avanzamento significativo della tecnologia.

Sarebbe sicuro dire che TinyML è un amalgama di software, hardware e algoritmi che lavorano in sincronia tra loro per fornire le prestazioni desiderate. La computazione analogica o della memoria potrebbe essere necessaria per fornire un’esperienza di apprendimento migliore e più efficace per hardware e dispositivi IoT che non supportano acceleratori hardware. Per quanto riguarda il software, le applicazioni costruite utilizzando TinyML possono essere distribuite e implementate su piattaforme come Linux o Linux embedded e su software abilitato alla nuvola. Infine, le applicazioni e i sistemi costruiti sull’algoritmo TinyML devono avere il supporto di nuovi algoritmi che richiedono modelli di bassa dimensione di memoria per evitare un consumo di memoria elevato.

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

Inoltre, i sistemi e le applicazioni in esecuzione sullo strumento TinyML devono fornire un’alta accuratezza quando si eseguono in condizioni più strette, poiché il software compatto è necessario per un basso consumo di potenza che supporta le implicazioni di TinyML. Inoltre, le applicazioni o i moduli TinyML possono dipendere dall’alimentazione a batteria per supportare le loro operazioni su sistemi embedded edge.

Con ciò detto, le applicazioni TinyML hanno due requisiti fondamentali

  1. Capacità di scalare miliardi di dispositivi embedded a basso costo.
  2. Memorizzazione del codice sul dispositivo RAM con capacità inferiore a pochi KB.

Applicazioni di TinyML utilizzando Tecnologie Avanzate

Una delle principali ragioni per cui TinyML è un argomento caldo nell’industria AI e ML è a causa delle sue potenziali applicazioni, tra cui applicazioni basate su visione e linguaggio, diagnosi sanitaria, compressione e classificazione di modelli di dati, interfaccia cervello-computer e molto altro.

Applicazioni basate su Linguaggio

Comunicazioni basate su Linguaggio

Tipicamente, le applicazioni basate su linguaggio si affidano a 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 su applicazioni basate su linguaggio utilizzando metodologie TinyML.

Alcune delle applicazioni più popolari nel settore delle comunicazioni basate su linguaggio oggi sono la rilevazione del linguaggio, il riconoscimento del linguaggio, l’apprendimento online, l’insegnamento online e la comunicazione orientata agli obiettivi. Queste applicazioni richiedono tipicamente un alto consumo di potenza e hanno anche elevate esigenze di dati sull’host. Per superare queste esigenze, è stata introdotta una nuova libreria TinySpeech che consente agli sviluppatori di costruire un’architettura a basso consumo computazionale che utilizza reti neurali profonde convolutive per costruire una struttura a bassa memoria.

Per utilizzare TinyML per il miglioramento del linguaggio, gli sviluppatori hanno affrontato innanzitutto la questione delle dimensioni del modello di miglioramento del linguaggio, poiché era soggetto a limitazioni e vincoli hardware. Per affrontare il problema, sono state distribuite la potatura strutturata e la quantizzazione degli interi per il modello di miglioramento del linguaggio RNN o Recurrent Neural Network. I risultati hanno suggerito che le dimensioni del modello siano state ridotte di circa 12 volte, mentre le operazioni sono state ridotte di circa 3 volte. Inoltre, è fondamentale che le risorse vengano utilizzate in modo efficace, specialmente quando vengono distribuite su applicazioni a risorse limitate che eseguono applicazioni di riconoscimento vocale.

Di conseguenza, per suddividere il processo, è stata proposta un metodo di progettazione congiunta per le applicazioni di riconoscimento vocale basate su TinyML. Gli sviluppatori hanno utilizzato l’operazione di windowing per suddividere il software e l’hardware in modo da pre-elaborare i dati vocali grezzi. Il metodo sembrava funzionare, poiché i risultati hanno indicato una diminuzione del consumo energetico sull’hardware. Infine, c’è anche il potenziale per implementare una partizione ottimizzata tra progettazione congiunta di software e hardware per una migliore prestazione nel prossimo futuro.

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

Molte applicazioni prominenti di riconoscimento del linguaggio, come gli assistenti vocali o di voce, la didascalia live e i comandi vocali, utilizzano tecniche di ML per funzionare. Gli assistenti vocali popolari come Siri e Google Assistant interrogano la piattaforma cloud ogni volta che ricevono alcuni dati e ciò crea preoccupazioni significative relative alla privacy e alla sicurezza dei dati. TinyML è una soluzione fattibile per questo problema, poiché mira a eseguire il riconoscimento del linguaggio sui dispositivi e a eliminare la necessità di migrare i dati alle piattaforme cloud. Uno dei modi per raggiungere il riconoscimento del linguaggio on-device è utilizzare Tiny Transducer, un modello di riconoscimento del linguaggio che utilizza un livello DFSMN o Deep Feed-Forward Sequential Memory Block accoppiato con un livello Conv1D invece dei livelli LSTM per ridurre le esigenze computazionali e i parametri della rete.

Dispositivi per l’Udito

La perdita dell’udito è una preoccupazione sanitaria importante in tutto il mondo e la capacità umana di udire i suoni si indebolisce generalmente con l’età e si tratta di un problema significativo nei paesi che affrontano la popolazione che invecchia, tra cui Cina, Giappone e Corea del Sud. I dispositivi per l’udito attualmente funzionano sul principio semplice di amplificare tutti i suoni in ingresso dall’ambiente, il che rende difficile per la persona distinguere o differenziare il suono desiderato, specialmente in un ambiente rumoroso.

TinyML potrebbe essere la soluzione fattibile per questo problema, poiché l’utilizzo di un modello TinyLSTM che utilizza un algoritmo di riconoscimento del linguaggio per i dispositivi per l’udito può aiutare gli utenti a distinguere tra diversi suoni.

Applicazioni basate su Visione

TinyML ha il potenziale per svolgere un ruolo cruciale nell’elaborazione di set di dati di visione computerizzata, poiché per ottenere output più rapidi, questi set di dati devono essere elaborati sulla piattaforma edge stessa. Per raggiungere ciò, il modello TinyML incontra le sfide pratiche affrontate durante l’addestramento del modello utilizzando la scheda microcontroller OpenMV H7. Gli sviluppatori hanno anche proposto un’architettura per rilevare la lingua dei segni americana con l’aiuto di un microcontrollore ARM Cortex M7 che funziona solo con 496 KB di frame-buffer RAM.

L’implementazione di TinyML per le applicazioni di visione computerizzata su piattaforme edge ha richiesto agli sviluppatori di superare la sfida principale delle reti neurali convolutive (CNN) con un alto errore di generalizzazione e un’alta accuratezza di addestramento e testing. Tuttavia, l’implementazione non si è generalizzata efficacemente alle immagini all’interno di nuovi casi d’uso e sfondi con rumore. Quando gli sviluppatori hanno utilizzato il metodo di interpolazione di aumento, il modello ha restituito un punteggio di accuratezza superiore al 98% sui dati di test e intorno al 75% in termini di generalizzazione.

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

Inoltre, ulteriori studi su CNN hanno indicato che è possibile distribuire e ottenere risultati desiderabili con l’architettura CNN su dispositivi con risorse limitate. Recentemente, gli sviluppatori sono stati in grado di sviluppare un framework per la rilevazione di maschere mediche su un microcontrollore ARM Cortex M7 con risorse limitate utilizzando TensorFlow Lite con un’impronta di memoria minima. Le dimensioni del modello dopo la quantizzazione erano di circa 138 KB, mentre la velocità di inferenza sulla scheda di destinazione era di circa 30 FPS.

Un’altra applicazione di TinyML per le applicazioni di visione computerizzata è implementare un dispositivo di riconoscimento dei gesti che può essere fissato a un bastone per aiutare le persone con disabilità visive a navigare nella loro vita quotidiana in modo più semplice. Per progettarlo, gli sviluppatori hanno utilizzato il set di dati dei gesti e hanno addestrato il modello ProtoNN con un algoritmo di classificazione. I risultati ottenuti dall’allestimento sono stati accurati, il design è stato a basso costo e ha fornito risultati soddisfacenti.

Un’altra applicazione significativa di TinyML è nell’industria dei veicoli autonomi e senza guida, a causa della mancanza di risorse e della 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 ha proposto un modello di predittore online che cattura l’immagine in tempo di esecuzione. Il problema principale che gli sviluppatori hanno affrontato durante l’implementazione di TinyML per la guida autonoma è stato che il modello di decisione addestrato per funzionare sui dati offline potrebbe non funzionare altrettanto bene quando si tratta di dati online. Per massimizzare appieno le applicazioni di auto e veicoli autonomi, il modello dovrebbe idealmente essere in grado di adattarsi ai dati in tempo reale.

Classificazione e Compressione di Modelli di Dati

Una delle sfide più grandi dell’attuale framework TinyML è quella di consentirgli di adattarsi ai dati di addestramento online. Per affrontare il problema, gli sviluppatori hanno proposto un metodo chiamato TinyOL o TinyML Online Learning per consentire l’addestramento con apprendimento online incrementale su unità di controllo micro, consentendo così al modello di aggiornarsi sui dispositivi edge IoT. L’implementazione è stata realizzata utilizzando il linguaggio di programmazione C++ e un ulteriore livello è stato aggiunto 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 efficienti e più ottimizzati per le reti neurali per supportare i modelli di addestramento dei dispositivi online.

La ricerca su TinyOL e TinyML ha indicato che il numero di livelli di attivazione è stato un problema significativo per i dispositivi edge IoT con risorse limitate. Per affrontare il problema, gli sviluppatori hanno introdotto il nuovo modello TinyTL o Tiny Transfer Learning per rendere l’utilizzo della memoria sui dispositivi edge IoT più efficace, evitando l’utilizzo di livelli intermedi per scopi di attivazione. Inoltre, gli sviluppatori hanno anche introdotto un nuovo modulo di bias chiamato “modulo di residuo leggero” per massimizzare le capacità di adattamento e, di conseguenza, consentire ai feature extractor di scoprire mappe di caratteristiche residue.

Quando confrontato con l’ottimizzazione della rete completa, i risultati sono stati a favore dell’architettura TinyTL, poiché i risultati hanno mostrato che TinyTL riduce l’onere della memoria di circa 6,5 volte con una perdita di accuratezza moderata. Quando l’ultimo livello è stato ottimizzato, 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 e per raggiungere ciò, gli sviluppatori hanno proposto TAC o Tiny Anomaly Compressor. Il TAC è stato in grado di superare gli algoritmi SDT o Swing Door Trending e DCT o Trasformata coseno discreta. Inoltre, l’algoritmo TAC ha superato entrambi gli algoritmi SDT e DCT raggiungendo un tasso di compressione massimo del 98% e avendo il più alto rapporto segnale/rumore tra i tre algoritmi.

Diagnosi Sanitaria

La pandemia globale di Covid-19 ha aperto nuove porte di opportunità per l’implementazione di TinyML, poiché ora è una pratica essenziale rilevare continuamente i sintomi respiratori relativi alla tosse e al raffreddore. Per garantire un monitoraggio ininterrotto, gli sviluppatori hanno proposto un modello CNN chiamato Tiny RespNet che funziona in un ambiente multi-modello e il modello è stato distribuito su un FPGA Xilinx Artix-7 100t che consente al dispositivo di elaborare le informazioni in parallelo, ha un’alta efficienza e un basso consumo di potenza. Inoltre, il modello TinyResp prende anche il linguaggio dei pazienti, le registrazioni audio e le informazioni demografiche come input per classificare e i sintomi della tosse del paziente vengono classificati utilizzando tre dataset distinti.

Inoltre, gli sviluppatori hanno anche proposto un modello in grado di eseguire calcoli di apprendimento profondo su dispositivi edge, un modello TinyML chiamato TinyDL. Il modello TinyDL può essere distribuito su dispositivi edge come orologi intelligenti e dispositivi indossabili per la diagnosi sanitaria e è anche in grado di eseguire un’analisi delle prestazioni per ridurre la larghezza di banda, la latenza e il consumo di energia. Per raggiungere la distribuzione di TinyDL su dispositivi portatili, un modello LSTM è stato progettato e addestrato specificamente per un dispositivo indossabile e gli è stato fornito il dati raccolti come input. Il modello ha un punteggio di accuratezza del 75-80% e può funzionare con dati off-device. Questi modelli in esecuzione su dispositivi edge hanno mostrato il potenziale per risolvere le sfide attuali affrontate dai dispositivi IoT.

Infine, gli sviluppatori hanno anche proposto un’altra applicazione per monitorare la salute degli anziani stimando e analizzando le loro pose del corpo. Il modello utilizza un framework agnostico sul dispositivo che consente al modello di abilitare la convalida e la rapida adozione per eseguire adattamenti. Il modello ha implementato algoritmi di rilevamento della posa del corpo accoppiati con punti di riferimento facciali per rilevare pose del corpo spaziotemporali in tempo reale.

Edge Computing

Una delle principali applicazioni di TinyML è nel campo dell’edge computing, poiché con l’aumento dell’utilizzo di dispositivi IoT per connettere dispositivi in tutto il mondo, è essenziale configurare dispositivi edge, poiché ciò aiuterà a ridurre il carico sulle architetture cloud. Questi dispositivi edge avranno centri dati individuali che consentiranno loro di eseguire calcoli di alto livello sul dispositivo stesso, piuttosto che affidarsi all’architettura cloud. Di conseguenza, ciò aiuterà a ridurre la dipendenza dalla nuvola, ridurre la latenza, migliorare la sicurezza e la privacy degli utenti e ridurre anche la larghezza di banda.

I dispositivi edge che utilizzano gli algoritmi TinyML aiuteranno a risolvere le attuali limitazioni relative alla potenza, al calcolo e alle esigenze di memoria e ciò è discusso nell’immagine seguente.

Inoltre, TinyML può anche migliorare l’utilizzo e l’applicazione dei Veicoli Aerei senza Pilota (UAV) affrontando le limitazioni attuali di questi macchinari. L’utilizzo di TinyML può consentire agli sviluppatori di implementare un dispositivo efficiente in termini di energia, a bassa latenza e ad alta potenza di calcolo che può agire come controllore per questi UAV.

Interfaccia Cervello-Computer o BCI

TinyML ha applicazioni significative nel settore sanitario e può essere molto utile in diverse aree, tra cui la rilevazione del cancro e dei tumori, le previsioni sanitarie utilizzando segnali ECG ed EEG e l’intelligenza emotiva. L’utilizzo di TinyML può consentire alla Stimolazione Cerebrale Profonda Adattiva (aDBS) di adattarsi con successo alle adattamenti clinici. L’utilizzo di TinyML può anche consentire all’aDBS di identificare i segni e i sintomi delle malattie utilizzando registrazioni invasive dei segnali cerebrali.

Inoltre, il settore sanitario include spesso la raccolta di una grande quantità di dati di un paziente e questi dati devono quindi essere elaborati per raggiungere soluzioni specifiche per il trattamento di un paziente nelle prime fasi di una malattia. Di conseguenza, è fondamentale costruire un sistema che non solo sia molto efficace, ma anche molto sicuro. Quando combiniamo le applicazioni IoT con il modello TinyML, nasce un nuovo campo chiamato H-IoT o Internet delle Cose Sanitarie e le principali applicazioni di 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 e analizzare la salute di un paziente a distanza, è essenziale sviluppare un sistema che abbia un’accessibilità globale e una bassa latenza.

Veicoli Autonomi

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

Attualmente, i veicoli autonomi e la guida autonoma sono un compito abbastanza complesso, specialmente quando si sviluppano veicoli di piccole dimensioni. Gli sviluppi recenti hanno mostrato il potenziale per migliorare l’applicazione della guida autonoma per veicoli di piccole dimensioni utilizzando un’architettura CNN e distribuendo il modello su GAP8 MCI.

Sfide

TinyML è un concetto relativamente nuovo nell’industria AI e ML e, nonostante i progressi, non è ancora così efficace come necessario per un’ampia distribuzione su dispositivi edge e IoT.

La sfida più grande attualmente affrontata dai dispositivi TinyML è il consumo di potenza di questi dispositivi. Idealmente, i dispositivi edge e IoT embedded sono previsti per avere una durata della batteria che si estende oltre 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, supponendo che il consumo di potenza del dispositivo sia di circa 12 ua. Tuttavia, nello stato attuale, un’architettura IoT con un sensore di temperatura, un’unità di controllo micro e un modulo WiFi ha un consumo di corrente di circa 176,4 mA e con questo consumo di potenza, la batteria durerà solo circa 11 ore, invece dei 10 anni di durata della batteria richiesti.

Vincoli di Risorse

Per mantenere la coerenza di un algoritmo, è fondamentale mantenere la disponibilità della potenza e, dato lo scenario attuale, la disponibilità di potenza limitata per i dispositivi TinyML è una sfida critica. Inoltre, le limitazioni di memoria sono anche una sfida significativa, poiché la distribuzione di modelli spesso richiede una grande quantità di memoria per funzionare in modo efficace e preciso.

Vincoli Hardware

I vincoli hardware rendono difficile la distribuzione degli algoritmi TinyML su larga scala a causa dell’eterogeneità dei dispositivi hardware. Ci sono migliaia di dispositivi, ognuno con le proprie specifiche e requisiti hardware e, di conseguenza, un algoritmo TinyML attualmente deve essere adattato per ogni dispositivo individuale, il che rende la distribuzione di massa un problema significativo.

Vincoli 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, poiché raccolgono dati utilizzando sensori esterni e questi dispositivi spesso hanno vincoli di potenza e di energia. Pertanto, i set di dati esistenti non possono essere utilizzati per addestrare i modelli TinyML in modo efficace.

Pensieri Finali

Lo sviluppo di tecniche di ML ha causato una rivoluzione e un cambio di prospettiva nell’ecosistema IoT. L’integrazione di modelli di ML nei dispositivi IoT consentirà a questi dispositivi edge di prendere decisioni intelligenti in modo autonomo senza alcun input umano esterno. Tuttavia, convenzionalmente, i modelli di ML spesso hanno elevate esigenze di potenza, memoria e calcolo, il che li rende inadatti per la distribuzione su dispositivi edge che sono spesso a risorse limitate.

Di conseguenza, un nuovo ramo dell’AI è stato dedicato all’utilizzo di ML per dispositivi IoT e viene chiamato TinyML. TinyML è un framework di ML che consente anche ai dispositivi a risorse limitate di sfruttare il potere di AI e ML per garantire una maggiore accuratezza, intelligenza e efficienza.

In questo articolo, abbiamo parlato dell’implementazione di modelli TinyML su dispositivi IoT a risorse limitate e questa implementazione richiede l’addestramento dei modelli, la distribuzione dei modelli sull’hardware e l’esecuzione di tecniche di quantizzazione. Tuttavia, dato l’attuale ambito, i modelli di ML pronti per la distribuzione su dispositivi IoT e edge hanno diverse complessità e vincoli, tra cui problemi di compatibilità hardware e framework.

Un ingegnere per professione, uno scrittore per passione. Kunal è uno scrittore tecnico con un profondo amore e comprensione di AI e ML, dedicato a semplificare concetti complessi in questi campi attraverso la sua documentazione coinvolgente e informativa.