I ricercatori del MIT hanno sviluppato un sistema che potrebbe portare le reti neurali di apprendimento profondo in nuovi ambiti, e in dimensioni molto più ridotte, come i minuscoli chip presenti nei dispositivi medici indossabili, negli elettrodomestici e negli altri 250 miliardi di oggetti che compongono l'"Internet delle cose" (IoT).

Il sistema, denominato MCUNEt, progetta reti neurali compatte che offrono velocità e precisione senza precedenti per il deep learning nei dispositivi IoT, nonostante la memoria e la potenza di elaborazione limitate. Questa tecnologia potrebbe facilitare l'espansione dell'ecosistema IoT, consentendo al contempo un risparmio energetico e migliorando la sicurezza dei dati.

La ricerca verrà presentata il mese prossimo alla Neural Information Processing Systems Conference. L'autore principale è Ji Lin, dottorando presso il laboratorio di Song Han al Dipartimento di Ingegneria Elettrica e Informatica del MIT. Tra i coautori figurano Han e Yujun Lin del MIT, Wei-Ming Chen del MIT e della National Taiwan University, e John Cohn e Chuang Gan del MIT-IBM Watson Artificial Intelligence Lab.

L'Internet delle cose

L'Internet delle cose (IoT) è nato all'inizio degli anni '80. Alcuni studenti laureandi della Carnegie Mellon University, tra cui Mike Kazar nel '78, collegarono un distributore automatico di Coca-Cola a Internet. La motivazione del gruppo era semplice: la pigrizia. Volevano usare i loro computer per verificare che il distributore fosse rifornito prima di uscire dall'ufficio per fare un acquisto. Fu il primo dispositivo connesso a Internet al mondo. "Fu più o meno considerato come la battuta finale di una barzelletta", dice Kazar, ora ingegnere Microsoft. "Nessuno si aspettava miliardi di dispositivi connessi a Internet"

A partire dal distributore automatico di Coca-Cola, gli oggetti di uso quotidiano stanno diventando sempre più connessi nel fiorente settore dell'IoT. Questo include di tutto, dai cardiofrequenzimetri indossabili ai frigoriferi intelligenti che ti avvisano quando il latte sta per finire. I dispositivi IoT spesso funzionano con microcontrollori: semplici chip per computer senza sistema operativo, con una potenza di elaborazione minima e meno di un millesimo della memoria di un tipico smartphone. Pertanto, attività di riconoscimento di pattern come il deep learning sono difficili da eseguire localmente sui dispositivi IoT. Per analisi complesse, i dati raccolti dall'IoT vengono spesso inviati al cloud, rendendoli vulnerabili agli attacchi informatici.

"Come possiamo implementare le reti neurali direttamente in questi piccoli dispositivi? È un nuovo campo di ricerca che sta riscuotendo molto successo", afferma Han. "Aziende come Google e ARM stanno lavorando in questa direzione.".

Con MCUNet, il gruppo di Han ha sviluppato due componenti necessari per il "deep learning su piccola scala", ovvero il funzionamento delle reti neurali sui microcontrollori. Uno di questi componenti è TinyEngine, un motore di inferenza che gestisce le risorse, in modo simile a un sistema operativo. TinyEngine è ottimizzato per eseguire una specifica architettura di rete neurale, selezionata dall'altro componente di MCUNet: TinyNAS, un algoritmo di ricerca dell'architettura neurale.

Codifica dell'algoritmo di sistema

Progettare una rete neurale profonda per i microcontrollori non è semplice. Le tecniche di ricerca di architetture neurali esistenti partono da un ampio insieme di possibili strutture di rete basate su un modello predefinito, per poi individuare gradualmente quella con elevata precisione e basso costo. "Può funzionare piuttosto bene per GPU o smartphone", afferma Lin. "Ma è stato difficile applicare direttamente queste tecniche ai minuscoli microcontrollori perché sono troppo piccoli."

Lin ha quindi sviluppato TinyNAS, un metodo di ricerca di architetture neurali che crea reti di dimensioni personalizzate. "Abbiamo molti microcontrollori con diverse capacità di alimentazione e diverse quantità di memoria", afferma Lin. "Pertanto, abbiamo sviluppato l'algoritmo [TinyNAS] per ottimizzare lo spazio di ricerca per i diversi microcontrollori". La natura personalizzata di TinyNAS consente di generare reti neurali compatte con le migliori prestazioni possibili per un dato microcontrollore, senza parametri superflui. "Infine, forniamo al microcontrollore il modello finale ed efficiente", conclude Lin.

Per far funzionare quella minuscola rete neurale, un microcontrollore ha bisogno anche di un motore di inferenza poco potente. Un tipico motore di inferenza ha una certa quantità di codice superfluo, ovvero istruzioni per attività che raramente può eseguire. Questo codice aggiuntivo non è un problema per un laptop o uno smartphone, ma potrebbe facilmente sovraccaricare un microcontrollore. "Non ha memoria esterna e non ha un disco", afferma Han. "In totale si tratta di un solo megabyte di memoria flash, quindi dobbiamo gestire una risorsa così piccola con molta attenzione." Ed ecco che entra in gioco TinyEngine.

I ricercatori hanno sviluppato il loro motore di inferenza in collaborazione con TinyNAS. TinyEngine genera il codice essenziale necessario per eseguire la rete neurale personalizzata di TinyNAS. Qualsiasi codice superfluo viene scartato, riducendo i tempi di compilazione. "Manteniamo solo ciò di cui abbiamo bisogno", afferma Han. "E poiché abbiamo progettato la rete neurale, sappiamo esattamente di cosa abbiamo bisogno. Questo è il vantaggio del codice algoritmico di sistema." Nei test condotti dal gruppo TinyEngine, la dimensione del codice binario compilato era da 1,9 a 5 volte inferiore rispetto a motori di inferenza per microcontrollori comparabili di Google e ARM. TinyEngine contiene anche innovazioni che riducono i tempi di esecuzione, tra cui la convoluzione di profondità in loco, che riduce di quasi la metà il picco di utilizzo della memoria. Dopo aver programmato TinyNAS e TinyEngine, il team di Han ha testato MCUNEt.

La prima sfida di MCUNet è stata la classificazione delle immagini. I ricercatori hanno utilizzato il database ImageNet per addestrare il sistema con immagini etichettate e poi per testarne la capacità di classificare nuove immagini. Su un microcontrollore commerciale testato, MCUNet ha classificato con successo il 70,7% delle nuove immagini, mentre la precedente combinazione di rete neurale e motore di inferenza all'avanguardia aveva raggiunto solo il 54% di accuratezza. "Anche un miglioramento dell'1% è considerato significativo", afferma Lin. "Quindi si tratta di un grande passo avanti per l'ottimizzazione dei microcontrollori."

Il team ha riscontrato risultati simili nei test ImageNet su altri tre microcontrollori. Inoltre, sia in termini di velocità che di precisione, MCUNet ha superato la concorrenza nelle attività di "attivazione" audio e visiva, in cui un utente avvia l'interazione con un computer tramite comandi vocali (ad esempio: "Ehi Siri") o semplicemente entrando in una stanza. Gli esperimenti evidenziano l'adattabilità di MCUNet a numerose applicazioni.

"Enorme potenziale"
I promettenti risultati dei test danno a Han la speranza che diventi il ​​nuovo standard industriale per i microcontrollori. "Ha un potenziale enorme", afferma.

Questo progresso "spinge ulteriormente i confini della progettazione di reti neurali profonde nel dominio computazionale dei microcontrollori piccoli ed efficienti dal punto di vista energetico", afferma Kurt Keutzer, informatico dell'Università della California, Berkeley, che non ha partecipato al lavoro. Aggiunge che MCUNEt potrebbe "portare capacità di visione artificiale intelligenti anche ai più semplici elettrodomestici da cucina, o consentire l'utilizzo di sensori di movimento più intelligenti".

MCUNet potrebbe anche rendere più sicuri i dispositivi IoT. "Un vantaggio fondamentale è la tutela della privacy", afferma Han. "Non è necessario trasmettere i dati al cloud.".

L'analisi locale dei dati riduce il rischio di furto di informazioni personali, inclusi i dati sanitari. Han immagina smartwatch con MCUNet in grado non solo di rilevare la frequenza cardiaca, la pressione sanguigna e i livelli di ossigeno degli utenti, ma anche di analizzare e interpretare tali informazioni. MCUNet potrebbe inoltre portare funzionalità di apprendimento profondo ai dispositivi IoT nei veicoli e nelle aree rurali con accesso limitato a Internet.

Inoltre, il ridotto consumo energetico di MCUNet si traduce in una ridotta impronta di carbonio. "Il nostro grande sogno è un IoT ecologico", afferma Han, aggiungendo che l'addestramento di una grande rete neurale può consumare una quantità di carbonio equivalente alle emissioni totali di cinque automobili durante l'intero ciclo di vita. MCUNet su un microcontrollore richiederebbe una minima parte di quell'energia. "Il nostro obiettivo finale è quello di rendere possibile un'intelligenza artificiale miniaturizzata ed efficiente con meno potenza di calcolo, meno personale e meno dati", conclude Han.

Autore: Daniel Ackerman, MIT