Un team di ricercatori del MIT sta lavorando per portare reti neurali di deep learning ai microcontrollori. Il progresso significa che l’intelligenza artificiale (AI) potrebbe essere implementata in minuscoli chip di computer in dispositivi medici indossabili, elettrodomestici e altri 250 miliardi di oggetti che compongono l ‘”Internet delle cose” (IoT). L’IoT è una rete di oggetti fisici incorporati con sensori, software e altre tecnologie, che aiutano a connettere e scambiare dati con altri dispositivi e sistemi.
La ricerca sarà presentata alla Conferenza sui sistemi di elaborazione delle informazioni neurali a dicembre. L’autore principale della ricerca è Ji Lin, un Ph.D. studente nel laboratorio di Song Han presso il Dipartimento di Ingegneria Elettrica e Informatica del MIT. I coautori includono Han e Yujun Lin del MIT, Wei-Ming Chen del MIT e National University Taiwan e John Cohn e Chuan Gan del MIT-IBM Watson Lab.
Il sistema si chiama MCUNet e progetta reti neurali compatte capaci di estrema velocità e precisione sui dispositivi IoT, anche con memoria e potenza di elaborazione limitate. Questo sistema può essere più efficiente dal punto di vista energetico e migliorare la sicurezza dei dati.
Il team ha sviluppato il sistema “tiny deep learning” combinando due componenti: il funzionamento delle reti neurali e dei microcontrollori. Il primo componente è TinyEngine, un motore di interfaccia che funge da sistema operativo dirigendo la gestione delle risorse. TinyEngine è ottimizzato per eseguire una specifica struttura di rete neurale selezionata da TinyNAS, che è l’altro componente. TinyNAS è un algoritmo di ricerca dell’architettura neurale.
Lin ha sviluppato TinyNAS a causa della difficoltà di applicare le tecniche di ricerca dell’architettura neurale esistenti a minuscoli microcontrollori. Queste tecniche esistenti alla fine trovano la struttura di rete più accurata ed economica dopo aver iniziato con molte possibili basate su un modello predefinito.
“Può funzionare abbastanza bene per GPU o smartphone”, afferma Lin. “Ma è stato difficile applicare direttamente queste tecniche a microcontrollori minuscoli, perché sono troppo piccoli”.
TinyNAS può creare reti di dimensioni personalizzate.
“Abbiamo molti microcontrollori dotati di diverse capacità di alimentazione e diverse dimensioni di memoria”, afferma Lin. “Così abbiamo sviluppato l’algoritmo [TinyNAS] per ottimizzare lo spazio di ricerca per diversi microcontrollori.”
Poiché TinyNAS può essere personalizzato, può generare le migliori reti neurali compatte possibili per microcontrollori.
“Quindi consegniamo il modello finale ed efficiente al microcontrollore”, continua Lin.
Un motore di interfaccia pulito e sottile è necessario per un microcontrollore per eseguire la piccola rete neurale. Molti motori di interfaccia hanno istruzioni per attività eseguite raramente, che potrebbero ostacolare un microcontrollore.
“Non ha memoria off-chip e non dispone di un disco”, afferma Han. “Tutto messo insieme è solo un megabyte di flash, quindi dobbiamo gestire con molta attenzione una risorsa così piccola.”
TinyEngine genera il codice necessario per eseguire la rete neurale personalizzata sviluppata da TinyNAS. Il tempo di compilazione viene ridotto scartando il codice deadweight.
“Teniamo solo ciò di cui abbiamo bisogno”, dice Han. “E poiché abbiamo progettato la rete neurale, sappiamo esattamente di cosa abbiamo bisogno. Questo è il vantaggio del codice dell’algoritmo di sistema “.
I test hanno dimostrato che il codice binario compilato di TinyEngine era da 1,9 a cinque volte più piccolo di motori di microcontrollori simili, compresi quelli di Google e ARM. Anche il picco di utilizzo della memoria è stato ridotto quasi della metà.
Abilità di MCUNet
I primi test per MCUNet ruotavano attorno alla classificazione delle immagini. Il database ImageNet è stato utilizzato per addestrare il sistema con immagini etichettate e la sua capacità è stata quindi testata su nuove immagini.
Quando MCUNet è stato testato su un microcontrollore commerciale, ha classificato con successo il 70,7% delle nuove immagini. Questo è di gran lunga migliore del precedente miglior accoppiamento di rete neurale e motore di interferenza, che era accurato al 54%.
“Anche un miglioramento dell’1% è considerato significativo”, afferma Lin. “Quindi questo è un passo da gigante per le impostazioni del microcontrollore.”
Secondo Kurt Keutzer, uno scienziato informatico presso l’Università della California a Berkeley, questo “estende ulteriormente la frontiera della progettazione di reti neurali profonde nel dominio computazionale di piccoli microcontrollori ad alta efficienza energetica”. MCUNet potrebbe “portare capacità di visione artificiale intelligente anche agli elettrodomestici da cucina più semplici, o abilitare sensori di movimento più intelligenti”.
MCUNet migliora anche la sicurezza dei dati.
“Un vantaggio fondamentale è preservare la privacy”, afferma Han. “Non è necessario trasmettere i dati al cloud.”
Analizzando i dati a livello locale, c’è una minore possibilità che le informazioni personali vengano compromesse.
Oltre a ciò, MCUNet potrebbe analizzare e fornire informazioni su informazioni come battito cardiaco, pressione sanguigna e letture del livello di ossigeno, portare l’apprendimento profondo ai dispositivi IoT nei veicoli e in altri luoghi con accesso limitato a Internet e ridurre l’impronta di carbonio utilizzando solo una piccola frazione di l’energia necessaria per grandi reti neurali.