Attualmente esistono numerose soluzioni software per il machine learning, ma di norma sono disponibili solo per PC e si basano sul linguaggio di programmazione Python. Non esiste ancora una soluzione che permetta di eseguire e addestrare reti neurali su sistemi embedded come i microcontrollori.
Tuttavia, svolgere l’apprendimento direttamente nel sistema embedded può essere utile, ad esempio per la calibrazione di un sensore impiantato.
Un team di ricercatori del Fraunhofer IMS ha sviluppato AIfES (Artificial Intelligence for Embedded Systems), una libreria di machine learning programmata in C che può funzionare su microcontrollori, ma anche su altre piattaforme come PC, Raspberry PI e Android.
La libreria contiene attualmente una rete neurale artificiale (ANN, Artificial Neural Network) completamente configurabile, che può anche generare reti profonde per il deep learning laddove necessario. Una ANN è un tentativo di simulare matematicamente il cervello umano utilizzando algoritmi per rendere i contesti funzionali comprensibili agli algoritmi. AIfES è stato ottimizzato specificamente per i sistemi embedded.
“Abbiamo ridotto al minimo il codice sorgente, il che significa che la ANN può essere addestrata direttamente sul microcontrollore o sul sensore, cioè sul sistema embedded. Inoltre il codice sorgente è universalmente valido e può essere compilato per quasi tutte le piattaforme. Poiché vengono utilizzati sempre gli stessi algoritmi, una ANN generata ad esempio su un PC può essere facilmente trasferita ad un microcontrollore. Finora questo è stato impossibile in questa forma con le soluzioni software disponibili in commercio”, spiega Pierre Gembaczka, ricercatore associato presso il Fraunhofer IMS.
Indice degli argomenti
Protezione della privacy
Un’altra caratteristica unica di questa soluzione è la tutela della privacy. Fino ad ora l’intelligenza artificiale e le reti neurali sono state utilizzate principalmente per l’elaborazione delle immagini e il riconoscimento vocale, spesso con dati che uscivano dai sistemi locali. Ad esempio, i profili vocali vengono elaborati nel cloud su server esterni, poiché la potenza di calcolo del sistema locale non è sempre adeguata.
“E’ difficile proteggere la privacy in questo processo e vengono trasmessi enormi quantità di dati. Ecco perché abbiamo scelto un approccio diverso e ci stiamo allontanando dai processi di apprendimento automatico nel cloud a favore dell’apprendimento automatico direttamente nel sistema embedded. Poiché nessun dato sensibile lascia il sistema, la protezione dei dati può essere garantita e la quantità di dati da trasferire è notevolmente ridotta”, afferma Burkhard Heidemann, responsabile del gruppo “Embedded Systems” del Fraunhofer IMS.
“Naturalmente non è possibile implementare grossi modelli di deep learning su un sistema embedded, quindi stiamo aumentando i nostri sforzi per realizzare una estrazione di caratteristiche per ridurre i segnali di ingresso”. Incorporando l’IA direttamente nel microcontrollore, i ricercatori rendono possibile dotare un dispositivo di funzioni aggiuntive senza la necessità di costose modifiche hardware.
Riduzione dei dati
AIfES non si concentra sull’elaborazione di grandi quantità di dati, ma trasferisce solo i dati necessari per costruire reti neurali molto piccole. “Non stiamo seguendo la tendenza verso l’elaborazione di grandi dati; ci atteniamo ai dati assolutamente necessari e stiamo creando una sorta di micro-intelligence nel sistema embedded che può risolvere il task in questione. Sviluppiamo nuove estrazioni di funzionalità e nuove strategie di pre-elaborazione dei dati per ogni problema in modo da poter realizzare reti neurali più piccole. Ciò consente di apprendere successivamente sul controllore stesso”, spiega Gembaczka.
L’approccio è già stato messo in pratica sotto forma di diversi dimostratori. Ad esempio, il team di ricerca ha implementato il riconoscimento di numeri scritti a mano su un economico microcontrollore a 8 bit (Arduino Uno). Ciò è stato reso tecnicamente possibile grazie allo sviluppo di un metodo innovativo di estrazione di caratteristiche.
Un altro dimostratore è in grado di riconoscere i gesti complessi compiuti muovendo la mano in aria. Qui gli scienziati dell’IMS hanno sviluppato un sistema costituito da un microcontrollore e da un sensore di orientamento assoluto che riconosce i numeri scritti in questo modo.
“Una possibile applicazione potrebbe essere il funzionamento di un sistema indossabile”, sottolineano i ricercatori. “Affinché questo tipo di comunicazione possa funzionare, diverse persone scrivono più volte i numeri da uno a nove. La rete neurale riceve questi dati, impara e nel passo successivo identifica i numeri in modo indipendente. E quasi tutte le forme possono essere insegnate, non solo i numeri”. In questo modo si elimina la necessità di controllare il dispositivo tramite riconoscimento vocale: l’indossabile può essere controllato con gesti e la privacy dell’utente rimane protetta.
Non ci sono praticamente limiti alle potenziali applicazioni di AIfES: ad esempio, un braccialetto con riconoscimento integrato dei gesti potrebbe essere utilizzato per controllare l’illuminazione interna. E non solo AIfES è in grado di riconoscere i gesti, ma anche di monitorarne la qualità. Esercizi e movimenti di fisioterapia e fitness possono essere valutati senza bisogno di un allenatore o terapeuta. La privacy è mantenuta poiché non vengono utilizzate telecamere o cloud. AIfES può essere utilizzato in tantissimi settori come l’automotive, la medicina, Smart Home e Industria 4.0.
AI decentrata
Ci sono anche altri vantaggi della soluzione AIfES: la libreria consente di decentralizzare la potenza di calcolo, ad esempio consentendo a piccoli sistemi embedded di ricevere i dati prima dell’elaborazione e trasmettere i risultati a un sistema sovraordinato. Questo riduce drasticamente la quantità di dati da trasferire. Inoltre, è possibile implementare una rete di piccoli sistemi con capacità di apprendimento che si distribuiscono i compiti tra di loro.
Deep learning
AIfES contiene attualmente una rete neurale con una struttura feedforward che supporta anche le reti neurali profonde. “Abbiamo programmato la nostra soluzione in modo da poter descrivere una rete completa con un’unica funzione”, afferma Gembaczka.
L’integrazione di forme e strutture di rete aggiuntive è attualmente in fase di sviluppo. Inoltre, il ricercatore e i suoi colleghi stanno sviluppando componenti hardware per le reti neurali, oltre ad altri algoritmi di apprendimento e dimostratori. Fraunhofer IMS sta attualmente lavorando ad un microprocessore RISC-V che avrà un acceleratore hardware specifico per le reti neurali. Una versione speciale di AIfES viene ottimizzata per questo hardware al fine di sfruttare al meglio la risorsa.
Il team di ricerca presenterà un sensore embedded con AI integrata alla fiera Sensor & Test di Norimberga dal 25 al 27 giugno 2019.