Sommario[Nascondere][Spettacolo]
I modelli di Machine Learning sono ovunque in questo momento. Durante il giorno, probabilmente utilizzi questi modelli molto più di quanto pensi. I modelli di apprendimento automatico vengono utilizzati in attività comuni come la navigazione sui social media, la fotografia e il controllo del tempo.
Un algoritmo di apprendimento automatico potrebbe averti consigliato questo blog. Abbiamo tutti sentito parlare di quanto sia dispendioso in termini di tempo addestrare questi modelli. Abbiamo tutti sentito dire che la formazione di questi modelli richiede tempo.
Tuttavia, fare inferenze su questi modelli è spesso dispendioso dal punto di vista computazionale.
Abbiamo bisogno di sistemi informatici sufficientemente veloci da gestire la velocità con cui utilizziamo i servizi di apprendimento automatico. Di conseguenza, la maggior parte di questi modelli viene eseguita su enormi data center con cluster di CPU e GPU (in alcuni casi anche TPU).
Quando scatti una foto, vuoi machine learning per migliorarlo istantaneamente. Non devi aspettare che l'immagine venga trasferita a un data center, elaborata e restituita a te. In questo caso, il modello di machine learning dovrebbe essere eseguito localmente.
Quando dici "Ehi Siri" o "OK, Google", vuoi che i tuoi gadget rispondano immediatamente. In attesa che la tua voce venga trasmessa ai computer, dove verrà valutata e ottenuti i dati.
Ciò richiede tempo e ha un effetto negativo sull'esperienza dell'utente. In questo caso, vuoi che anche il modello di machine learning funzioni localmente. È qui che entra in gioco TinyML.
In questo post, esamineremo TinyML, come funziona, i suoi usi, come iniziare e molto altro.
Che cosa è l' TinyML?
TinyML è una disciplina all'avanguardia che applica il potenziale rivoluzionario dell'apprendimento automatico alle prestazioni e ai limiti di potenza di piccoli dispositivi e sistemi embedded.
Un'implementazione di successo in questo settore richiede una conoscenza approfondita di applicazioni, algoritmi, hardware e software. È un sottogenere di machine learning che utilizza modelli di deep learning e machine learning in sistemi embedded che impiegano microcontrollori, processori di segnali digitali o altri processori specializzati a bassissima potenza.
I dispositivi embedded abilitati TinyML hanno lo scopo di eseguire un algoritmo di apprendimento automatico per un lavoro specifico, in genere come parte del dispositivo edge computing.
Per funzionare per settimane, mesi o addirittura anni senza ricarica o sostituzione della batteria, questi sistemi embedded devono avere un consumo energetico inferiore a 1 mW.
Come funziona?
L'unico framework di apprendimento automatico che può essere utilizzato con microcontrollori e computer è TensorFlow Lite. È un set di strumenti che consente agli sviluppatori di eseguire i propri modelli su dispositivi mobili, embedded ed edge, consentendo l'apprendimento automatico al volo.
L'interfaccia del microcontrollore viene utilizzata per raccogliere dati da sensori (come microfoni, fotocamere o sensori incorporati).
Prima di essere inviati al microcontrollore, i dati vengono incorporati in un modello di machine learning basato su cloud. L'addestramento in batch in modalità offline viene comunemente impiegato per addestrare questi modelli. I dati del sensore che verranno utilizzati per apprendimento e inferenza è già stato determinato per l'applicazione specifica.
Se il modello viene addestrato per rilevare una parola di riattivazione, ad esempio, è già configurato per gestire un flusso audio continuo da un microfono.
Tutto è già stato fatto con l'aiuto di una piattaforma cloud come Google Colab nel caso di TensorFlow Lite, inclusa la selezione del set di dati, la normalizzazione, l'underfitting o l'overfitting del modello, la regolarizzazione, l'aumento dei dati, la formazione, la convalida e il test.
Un modello completamente addestrato viene infine trasformato e trasferito al microcontrollore, al microcomputer o al processore di segnali digitali dopo l'addestramento batch offline. Il modello non ha formazione aggiuntiva dopo essere stato spostato su un dispositivo incorporato. Al contrario, utilizza esclusivamente i dati in tempo reale provenienti da sensori o dispositivi di input per applicare il modello.
Di conseguenza, un modello di apprendimento automatico TinyML deve essere eccezionalmente durevole e in grado di essere riqualificato dopo anni o non essere mai riqualificato. Tutti i potenziali underfitting e overfitting del modello devono essere studiati in modo che il modello rimanga rilevante per un periodo di tempo esteso, idealmente indefinitamente.
Ma perché usare TinyML?
TinyML è nato come tentativo di eliminare o ridurre la dipendenza dell'IoT dai servizi cloud per servizi di base su piccola scala machine learning operazioni. Ciò ha reso necessario l'uso di modelli di apprendimento automatico sugli stessi dispositivi perimetrali. Fornisce i seguenti vantaggi principali:
- A bassa potenza consumo: Un'applicazione TinyML dovrebbe preferibilmente utilizzare meno di 1 milliWatt di potenza. Con un consumo così basso, un dispositivo può continuare a trarre conclusioni dai dati del sensore per mesi o anni, anche se alimentato da una batteria a bottone.
- Costo inferiore: è progettato per funzionare su microcontrollori o DSP a 32 bit a basso costo. Questi microcontrollori sono in genere a pochi centesimi ciascuno e il sistema integrato totale sviluppato con essi è inferiore a $ 50. Questa è un'opzione molto conveniente per l'esecuzione di piccoli programmi di machine learning su larga scala ed è particolarmente vantaggiosa nelle applicazioni IoT in cui è necessario applicare l'apprendimento automatico.
- Bassa latenza: le sue applicazioni hanno una bassa latenza poiché non hanno bisogno di trasportare o scambiare dati sulla rete. Tutti i dati dei sensori vengono registrati localmente e le conclusioni vengono tratte utilizzando un modello che è già stato addestrato. I risultati delle inferenze possono essere inviati a un server o cloud per la registrazione o l'elaborazione aggiuntiva, sebbene ciò non sia essenziale per il funzionamento del dispositivo. Ciò riduce al minimo la latenza di rete ed elimina la necessità di eseguire operazioni di machine learning su un cloud o un server.
- Privacy: È una delle principali preoccupazioni su Internet e con l'Internet delle cose. Il lavoro di machine learning nelle app TinyML viene eseguito localmente, senza archiviare o inviare dati di sensori/utente a un server/cloud. Di conseguenza, anche se collegate a una rete, queste applicazioni sono sicure da usare e non comportano rischi per la privacy.
Applicazioni
- Agricoltura – Quando gli agricoltori scattano una foto di una pianta, l'applicazione di TensorFlow Lite rileva le malattie al suo interno. Funziona su qualsiasi dispositivo e non richiede una connessione a Internet. La procedura tutela gli interessi agricoli ed è una necessità fondamentale per gli agricoltori rurali.
- Manutenzione meccanica – TinyML, se utilizzato su dispositivi a bassa potenza, può identificare continuamente i difetti in una macchina. Implica una manutenzione basata su previsioni. Ping Services, una start-up australiana, ha introdotto un gadget IoT che monitora le turbine eoliche attaccandosi all'esterno della turbina. Avvisa le autorità ogni volta che rileva un possibile problema o malfunzionamento.
- Ospedali – Il Solar Scare è un progetto. Mosquito usa TinyML per fermare la diffusione di malattie come la dengue e la malaria. È alimentato dall'energia solare e rileva le condizioni di riproduzione delle zanzare prima di segnalare all'acqua di inibire la riproduzione delle zanzare.
- Sorveglianza del traffico – A cura di applicando TinyML ai sensori che raccolgono dati sul traffico in tempo reale, possiamo utilizzarli per indirizzare meglio il traffico e ridurre i tempi di risposta per i veicoli di emergenza. Swim.AI, ad esempio, utilizza questa tecnologia per lo streaming di dati per aumentare la sicurezza dei passeggeri riducendo al contempo la congestione e le emissioni attraverso il routing intelligente.
- Legge: TinyML può essere utilizzato nelle forze dell'ordine per identificare azioni illegali come sommosse e furti utilizzando l'apprendimento automatico e il riconoscimento dei gesti. Un programma simile può essere utilizzato anche per proteggere gli sportelli automatici bancari. Osservando il comportamento degli utenti, un modello TinyML può prevedere se l'utente è un vero consumatore che completa una transazione o un intruso che tenta di hackerare o distruggere l'ATM.
Come iniziare con TinyML?
Per iniziare con TinyML in TensorFlow Lite, avrai bisogno di una scheda microcontroller compatibile. TensorFlow Lite per microcontrollori supporta i microcontrollori elencati di seguito.
- Terminale Wio: ATSAMD51
- Himax WE-I Plus EVB Endpoint Scheda di sviluppo AI
- STM32F746 Kit di scoperta
- Badge Adafruit
- Piattaforma di sviluppo software Synopsys DesignWare ARC EM
- Sony Sprense
- Arduino Nano 33 BLE Senso
- Bordo SparkFun
- Kit Adafruit TensorFlow Lite per microcontrollori
- Parco giochi del circuito Adafruit Bluefruit
- Expressif ESP32-DevKitC
- Espressivo ESP-EYE
Si tratta di microcontrollori a 32 bit con memoria flash, RAM e frequenza di clock sufficienti per eseguire un modello di apprendimento automatico. Le schede hanno anche una serie di sensori integrati in grado di eseguire qualsiasi programma incorporato e applicare modelli di apprendimento automatico all'applicazione mirata. Per costruire un modello di apprendimento automatico, avrai bisogno di un laptop o di un computer oltre a una piattaforma hardware.
Ogni piattaforma hardware dispone dei propri strumenti di programmazione per la creazione, l'addestramento e il porting di modelli di machine learning, che utilizzano il pacchetto TensorFlow Lite per microcontrollori. TensorFlow Lite può essere utilizzato e modificato gratuitamente perché lo è open source.
Per iniziare con TinyML e TensorFlow Lite, tutto ciò di cui hai bisogno è una delle piattaforme hardware integrate sopra menzionate, un computer/laptop, un cavo USB, un convertitore da USB a seriale e il desiderio di esercitarti con l'apprendimento automatico con i sistemi embedded .
Le sfide
Anche se i progressi di TinyML hanno prodotto molti risultati positivi, il settore dell'apprendimento automatico deve ancora affrontare notevoli ostacoli.
- Diversità del software – Codifica manuale, la generazione di codice e gli interpreti ML sono tutte opzioni per la distribuzione di modelli sui dispositivi TinyML e ciascuna richiede una diversa quantità di tempo e impegno. Di conseguenza possono sorgere diverse prestazioni.
- Diversità hardware – Ecco sono disponibili diverse opzioni hardware. Le piattaforme TinyML possono essere qualsiasi cosa, da microcontrollori generici a processori neurali all'avanguardia. Ciò causa problemi con la distribuzione del modello in diverse architetture.
- Risoluzione dei problemi/debug – Quando un modello ML funziona male sul cloud, è semplice guardare i dati e capire cosa non va. Quando un modello viene distribuito su migliaia di dispositivi TinyML, senza che il flusso di dati ritorni nel cloud, il debug diventa difficile e potrebbe richiedere un metodo diverso.
- Vincoli di memoria – Tradizionale piattaforme, come smartphone e laptop, richiedono gigabyte di RAM, mentre i dispositivi TinyML utilizzano kilobyte o megabyte. Di conseguenza, la dimensione del modello che può essere distribuito è limitata.
- Formazione modello – Anche se ci sono diversi vantaggi nell'implementazione di modelli ML sui dispositivi TinyML, la maggior parte dei modelli ML è ancora addestrata sul cloud per iterare e migliorare continuamente la precisione del modello.
Futuro
TinyML, con il suo ingombro ridotto, il basso consumo della batteria e la mancanza o la limitata dipendenza dalla connettività Internet, ha un potenziale enorme in futuro, poiché la maggior parte dei intelligenza artificiale sarà implementato su dispositivi edge o gadget embedded indipendenti.
Renderà le applicazioni IoT più private e sicure sfruttandole. Anche se TensorFlow Lite è attualmente l'unico framework di apprendimento automatico per microcontrollori e microcomputer, altri framework comparabili come sensori e CMSIS-NN di ARM sono in lavorazione.
Sebbene TensorFlow Lite sia un progetto open source in corso che ha avuto un inizio fantastico con il team di Google, ha ancora bisogno del supporto della comunità per entrare nel mainstream.
Conclusione
TinyML è un nuovo approccio che combina i sistemi embedded con l'apprendimento automatico. Poiché l'IA ristretta raggiunge il picco in molti settori verticali e domini, la tecnologia può emergere come un importante sottocampo nell'apprendimento automatico e nell'intelligenza artificiale.
Fornisce una soluzione a numerose sfide che il settore IoT e i professionisti che applicano l'apprendimento automatico a molte discipline specifiche del dominio devono affrontare.
Il concetto di utilizzo dell'apprendimento automatico in dispositivi edge con un piccolo computer ingombro e consumo energetico hanno il potenziale per trasformare in modo significativo il modo in cui vengono costruiti i sistemi embedded e la robotica.
Lascia un Commento