
I modelli di machine learning hanno un ruolo di primo piano nella nostra vita quotidiana – che lo sappiamo o meno. Nell'arco di una giornata tipo, è molto probabile che tu interagisca con qualche modello di machine learning, visto che hanno permeato quasi tutti i prodotti digitali con cui entriamo in contatto; ad esempio, i social media, gli assistenti virtuali personali, i motori di ricerca e il filtro antispam del tuo servizio di posta elettronica.
Nonostante le numerose istanze di machine learning nella vita di tutti i giorni, ci sono ancora diversi ambiti in cui la tecnologia non è arrivata. Il motivo? Molti modelli di machine learning, in particolare le architetture all'avanguardia (SOTA), richiedono risorse significative. Questa richiesta di potenza di calcolo ad alte prestazioni ha confinato diverse applicazioni di machine learning al cloud – un fornitore di risorse informatiche on-demand.
Oltre a essere costosi dal punto di vista computazionale da addestrare, spesso è piuttosto oneroso anche eseguire l'inferenza su questi modelli. Se il machine learning vuole ampliare la propria portata e penetrare in altri domini, serve una soluzione che consenta ai modelli di eseguire inferenza su dispositivi più piccoli e con risorse limitate. La ricerca di questa soluzione ha portato al sottocampo del machine learning chiamato Tiny Machine Learning (TinyML).
In questo articolo:
- Definiremo TinyML e i suoi vantaggi
- Vedremo alcune applicazioni di TinyML
- Discuteremo i requisiti del workflow per le applicazioni TinyML.
Che cos'è TinyML?
“Le reti neurali sono chiamate anche reti neurali artificiali (ANN). L'architettura costituisce la base del deep learning, che è semplicemente un sottoinsieme del machine learning incentrato su algoritmi che si ispirano alla struttura e alla funzione del cervello umano. In poche parole, le reti neurali sono alla base di architetture che imitano il modo in cui i neuroni biologici si segnalano a vicenda.”
Fonte: PyTorch Tutorial: Building a Simple Neural Network
Il machine learning è un sottocampo dell'intelligenza artificiale che fornisce un insieme di algoritmi. Questi algoritmi permettono alle macchine di apprendere schemi e tendenze dai dati storici disponibili per prevedere risultati già noti sugli stessi dati. Tuttavia, l'obiettivo principale è usare i modelli addestrati per generalizzare le loro inferenze oltre il set di addestramento, migliorando l'accuratezza delle previsioni senza essere programmati in modo esplicito.
Uno degli algoritmi usati per questi compiti sono le reti neurali. Le reti neurali appartengono a un sottocampo del machine learning noto come deep learning, che comprende modelli in genere più costosi da addestrare rispetto ai modelli di machine learning. Puoi saperne di più sulla creazione di modelli di reti neurali in R in un tutorial dedicato.

Figura 1. Visualizzazione di una rete neurale a tre strati
Secondo tinyml.org, “Tiny machine learning è ampiamente definito come un campo in rapida crescita di tecnologie e applicazioni di machine learning, comprendente hardware, algoritmi e software in grado di eseguire analisi dei dati dei sensori on-device con consumi estremamente bassi, tipicamente nell'ordine dei mW e inferiori, abilitando così una varietà di casi d'uso always-on e puntando a dispositivi alimentati a batteria.”
La crescita di TinyML negli ultimi anni è stata in gran parte attribuita allo sviluppo degli ecosistemi hardware e software che lo supportano. Poiché le tecniche possono essere implementate in sistemi a bassa energia (cioè sensori, microcontrollori, ecc.), il machine learning può essere portato all'edge in modo estremo, consentendo a tali applicazioni di rispondere in tempo reale. In sostanza, l'idea è permettere ai professionisti del machine learning di fare di più con meno.
Ma perché è così importante? Vediamo perché TinyML è così interessante.
I vantaggi di TinyML
- Latenza: I dati non devono essere trasferiti a un server per l'inferenza perché il modello opera su dispositivi edge. I trasferimenti di dati richiedono in genere tempo, causando un leggero ritardo. Eliminare questo requisito riduce la latenza.
- Risparmio energetico: I microcontrollori necessitano di pochissima energia, il che consente loro di funzionare a lungo senza dover essere ricaricati. Inoltre, non è necessaria un'infrastruttura server estesa, poiché non avviene alcun trasferimento di informazioni: il risultato è un risparmio di energia, risorse e costi.
- Riduzione della larghezza di banda: Per l'inferenza è richiesta poca o nessuna connettività a Internet. Ci sono sensori on-device che acquisiscono i dati e li elaborano sul dispositivo. Ciò significa che non vengono inviati costantemente al server dati grezzi dei sensori.
- Privacy dei dati: I tuoi dati non vengono conservati sui server perché il modello gira all'edge. L'assenza di trasferimento di informazioni ai server aumenta la garanzia di privacy dei dati.
Casi d'uso: come viene utilizzato TinyML?
Le applicazioni di TinyML si estendono a un'ampia gamma di settori, in particolare quelli che dipendono dalle reti e dai dati dell'internet delle cose (IoT) – l'Internet of Things (IoT) è sostanzialmente una rete di oggetti fisici dotati di sensori, software e altre tecnologie che si connettono e scambiano dati con altri dispositivi e sistemi tramite Internet.
Computer vision, visual wake words, keyword spotting, manutenzione predittiva, riconoscimento dei gesti, manutenzione di macchinari industriali, ecc., sono tutti casi d'uso comuni di TinyML. Vediamo anche alcuni settori in cui TinyML è stato impiegato per alimentare applicazioni:
Agricoltura
I dati in tempo reale su agricoltura e allevamento possono essere monitorati e raccolti utilizzando dispositivi TinyML. L'azienda svedese di edge AI Imagimob ha creato una piattaforma di sviluppo per il machine learning su dispositivi edge. Cinquantacinque organizzazioni di tutta l'Unione Europea hanno collaborato con Imagimob per capire come TinyML possa offrire una gestione efficiente di colture e bestiame.
Manutenzione predittiva industriale
TinyML può essere distribuito su dispositivi a bassa potenza per monitorare continuamente i macchinari alla ricerca di malfunzionamenti e prevedere i problemi prima che si verifichino; questo tipo di applicazione vanta il potenziale di aiutare le aziende a ridurre i costi che spesso derivano da guasti delle macchine.
Un esempio emblematico di manutenzione predittiva è Ping Services. Hanno sviluppato un dispositivo per monitorare continuamente la firma acustica delle pale delle turbine eoliche per rilevare e segnalare eventuali cambiamenti o danni. Secondo il sito di Ping, “il monitoraggio continuo consente agli operatori di rispondere tempestivamente ai danni alle pale, riducendo i costi di manutenzione, i rischi di guasto e i tempi di inattività, oltre a migliorare le prestazioni e l'efficienza delle turbine eoliche.”
Customer Experience
La personalizzazione è uno strumento di marketing chiave che i clienti richiedono man mano che le loro aspettative aumentano. L'idea è che le aziende comprendano meglio i propri clienti e li raggiungano con annunci e messaggi in linea con i loro comportamenti. Distribuire applicazioni TinyML all'edge consente alle aziende di comprendere i contesti degli utenti, incluso il loro comportamento.
Requisiti del workflow
Molti strumenti e architetture adottati nei workflow tradizionali di machine learning vengono utilizzati anche nella creazione di applicazioni per dispositivi edge. La differenza principale è che TinyML consente a questi modelli di svolgere varie funzioni su dispositivi più piccoli.
Tensorflow Lite per microcontrollori (TF Lite Micro) è uno dei framework più popolari per il machine learning su dispositivi edge; è stato progettato specificamente per implementare il machine learning su sistemi embedded con solo pochi kilobyte di memoria.
Python è spesso il linguaggio preferito per costruire modelli di machine learning. Tuttavia, TensorFlow Lite rende possibile sviluppare facilmente modelli in C, C++ o Java e distribuirli senza connettersi a Internet.
Dal punto di vista hardware, per iniziare con TinyML in TF Lite è richiesta una scheda a microcontrollore supportata; attualmente la libreria supporta i seguenti microcontrollori:
- Arduino Nano 33 BLE Sense
- SparkFun Edge
- STM32F746 Discovery kit
- Adafruit EdgeBadge
- Adafruit TensorFlow Lite for Microcontrollers Kit
- Adafruit Circuit Playground Bluefruit
- Espressif ESP32-DevKitC
- Espressif ESP-EYE
- Wio Terminal: ATSAMD51
- Himax WE-I Plus EVB Endpoint AI Development Board
- Synopsys DesignWare ARC EM Software Development Platform
- Sony Spresense
Con il supporto di TinyML è possibile aumentare l'intelligenza di miliardi di dispositivi che usiamo ogni giorno, come elettrodomestici e gadget IoT, senza spendere una fortuna in hardware costoso o connessioni Internet affidabili, che sono spesso limitate da larghezza di banda e alimentazione e introducono una latenza significativa.
Risorse per imparare
- TinyML Foundation
- Tiny ML: Machine Learning with Tensorflow Lite on Arduino and Ultra-Low-Power Microcontrollers (Libro)
- Embedded Machine Learning on Edge Devices (Podcast)
- Understanding Machine Learning
- Introduction to Deep Learning in Python
- Deep Learning Tutorial
Conclusioni
Negli ultimi anni TinyML ha guadagnato terreno in vari settori grazie allo sviluppo di ecosistemi hardware e software che lo supportano. Questo strumento ha reso possibile implementare modelli di machine learning in sistemi a bassa energia, come i microcontrollori, aprendo la strada a numerose nuove opportunità. Bassa latenza, risparmio energetico, privacy dei dati e assenza di dipendenze dalla connessione sono alcuni dei fattori che rendono TinyML così interessante per gli sviluppatori che vogliono creare applicazioni per dispositivi dell'internet delle cose (IoT).
FAQ
Che cos'è il Tiny Machine Learning (TinyML)?
TinyML è un tipo di machine learning che permette ai modelli di girare su dispositivi più piccoli e meno potenti. Coinvolge hardware, algoritmi e software in grado di analizzare i dati dei sensori su questi dispositivi con un consumo energetico molto basso, rendendolo ideale per casi d'uso always-on e dispositivi alimentati a batteria.
Quali sono i vantaggi di TinyML?
I vantaggi di TinyML includono riduzione della latenza, risparmio energetico, riduzione della larghezza di banda e maggiore privacy dei dati. TinyML consente di elaborare i dati sui dispositivi edge, eliminando la necessità di trasferirli a un server, che può causare ritardi. TinyML richiede anche molta meno energia rispetto ai modelli di machine learning tradizionali, permettendogli di funzionare per lunghi periodi senza dover essere ricaricato.
A cosa serve TinyML?
TinyML può essere utilizzato in un'ampia gamma di settori, tra cui agricoltura, manutenzione predittiva industriale e customer experience. Può essere impiegato anche per computer vision, visual wake words, keyword spotting, riconoscimento dei gesti e altro ancora.
Quali sono i requisiti del workflow per le applicazioni TinyML?
I requisiti del workflow per le applicazioni TinyML sono simili a quelli dei workflow tradizionali di machine learning. Tuttavia, TinyML consente a questi modelli di svolgere varie funzioni su dispositivi più piccoli. TensorFlow Lite per microcontrollori (TF Lite Micro) è uno dei framework più popolari per il machine learning su dispositivi edge, ed è stato progettato specificamente per implementare il machine learning su sistemi embedded con solo pochi kilobyte di memoria.
Quali sono alcune risorse per imparare TinyML?
Alcune risorse per imparare TinyML includono la TinyML Foundation, il libro "Tiny ML: Machine Learning with TensorFlow Lite on Arduino and Ultra-Low-Power Microcontrollers" e il podcast "Embedded Machine Learning on Edge Devices". DataCamp offre anche molte risorse, come questo tutorial sul deep learning, questo corso per capire il machine learning e molto altro nell'hub Learn AI.

