Missione 6 – Tiny Machine Learning, l’IA su Arduino
L’obiettivo di questa missione è quello di comprendere come le tecniche di machine learning possano ampliare le opportunità di impiego delle schede Arduino, consentendo la realizzazione di applicazioni non possibili con la programmazione tradizionale, e supportare più efficacemente le architetture basate sull’Edge Computing.
L’Intelligenza Artificiale è una tecnologia che sta cambiando il mercato, e in questo corso hai potuto vedere quali sono le potenzialità in termini di assistenza alla progettazione e sviluppo.
I Large Language Model che sono alla base di servizi come ChatGPT di OpenAI richiedono enormi quantità di risorse in termini di memoria e potenza di elaborazione e i relativi algoritmi sono eseguiti sui server delle grandi aziende che li ospitano in una logica di Cloud Computing.
Tuttavia, le tecnologie di base sulle quali sono costruiti questi sistemi, cioè le Reti Neurali e il Deep Learning, possono essere utilizzate per realizzare applicazioni di classificazione, previsione e analisi dei dati, che non richiedono risorse di elaborazione in quantità eccessive e, se progettate correttamente, possono essere eseguite all’interno di un microcontrollore.
Completando il percorso previsto in questa missione, imparerai a realizzare applicazioni per Arduino, basate sul Deep Learning.
Imparerai come sia possibile utilizzare opportune soluzioni progettuali per ottimizzare le Reti Neurali e consentirne l’esecuzione in un ambiente a risorse limitate come un microcontrollore.
Questo tipo di applicazioni sono oggetto di un importante e innovativo filone di ricerca e sviluppo chiamato Tiny Machine Learning.
Nel primo tutorial di questa missione comprenderai quali sono i vantaggi delle architetture Edge Computing e cos’è il Tiny Machine Learning (TinyML).
Nel secondo tutorial approfondirai il tema generale dell’Intelligenza Artificiale per comprendere il significato di Machine Learning e Deep Learning, e come si correlano al più ampio settore dell’IA.
Comprenderai anche quali sono i vantaggi che queste tecnologie possono offrire al progettista Arduino e comprenderai come funziona una Rete Neurale.
Nel terzo tutorial imparerai a configurare ed utilizzare la scheda Arduino che ti accompagnerà in questa missione: l’Arduino Nano 33 BLE Sense.
Nel quarto tutorial sperimenterai la lettura del sensore Inerziale (IMU) che equipaggia questa scheda e ti confronterai con un problema che non è possibile risolvere con le tecniche di sviluppo del firmware viste finora.
Nel quinto tutorial realizzerai uno sketch per raccogliere i dati che serviranno ad addestrare una rete neurale che ti permetterà di risolvere il problema citato nel precedente tutorial.
Nel sesto tutorial analizzerai la struttura di una rete neurale che potrebbe essere idonea a risolvere il problema assegnato.
Nel settimo tutorial vedrai come sia possibile realizzare con facilità la rete neurale, sfruttando le tecnologie messe a disposizione da Google attraverso la sua piattaforma TensorFlow e nell’ottavo tutorial procederai alla sua realizzazione e al suo addestramento.
Nel nono tutorial, vedrai come sfruttare la piattaforma TensorFlow Lite per programmare uno sketch Arduino che implementa la versione TinyML della rete neurale appena addestrata.
Infine, nel decimo tutorial, sperimenterai il funzionamento della tua applicazione TinyML.
Buona sperimentazione!
