I più recenti progressi nei sistemi di intelligenza artificiale, come i programmi di riconoscimento vocale e facciale, sono stati resi possibili dalle reti neurali: maglie fittamente interconnesse di semplici processori di informazioni che imparano a svolgere compiti analizzando grandi insiemi di dati.
Tuttavia, le reti neurali sono complesse e i loro calcoli consumano molta energia, il che le rende impraticabili per i dispositivi portatili. La maggior parte delle app per smartphone che si basano sulle reti neurali si limita a caricare i dati su server internet, che li elaborano e inviano i risultati al telefono.
Ora, i ricercatori del MIT hanno sviluppato un chip specifico che aumenta la velocità di calcolo delle reti neurali da tre a sette volte rispetto ai suoi predecessori, riducendo al contempo il consumo energetico del 94-95%. Ciò potrebbe rendere possibile l'esecuzione locale delle reti neurali sugli smartphone o persino la loro integrazione negli elettrodomestici.
"Il modello generale di un processore prevede una memoria da qualche parte sul chip e un processore da un'altra parte, e i dati vengono trasferiti avanti e indietro durante l'esecuzione dei calcoli", afferma Avishek Biswas, studente laureato in ingegneria elettrica e informatica del MIT che ha guidato lo sviluppo del nuovo chip.
“Dato che questi algoritmi di apprendimento automatico richiedono così tanti calcoli, questo continuo trasferimento di dati avanti e indietro rappresenta la parte dominante del consumo energetico. Ma il calcolo eseguito da questi algoritmi può essere semplificato in un'unica operazione, chiamata prodotto scalare. Il nostro approccio è stato: possiamo implementare questa funzionalità di prodotto scalare all'interno della memoria in modo da non dover trasferire continuamente i dati?”
Biswas e il suo relatore di tesi, Anantha Chandrakasan, preside della Facoltà di Ingegneria del MIT e professore di Ingegneria Elettrica e Informatica titolare della cattedra Vannevar Bush, descrivono il nuovo chip in un articolo presentato da Biswas alla International Solid State Circuits Conference.
Tornando all'analogico:
le reti neurali sono generalmente organizzate in strati. Un singolo nodo di elaborazione in uno strato della rete riceve tipicamente dati da più nodi nello strato successivo e li trasmette a più nodi nello strato superiore. Ogni connessione tra i nodi ha un proprio "peso", che indica quale dimensione avrà l'output di un nodo nel calcolo eseguito dal successivo. L'addestramento della rete consiste nello stabilire questi pesi.
Un nodo che riceve dati da più nodi nello strato successivo moltiplicherà ciascun input per il peso della connessione corrispondente e sommerà i risultati. Questa operazione, la somma delle moltiplicazioni, è la definizione di prodotto scalare. Se il prodotto scalare supera un certo valore di soglia, il nodo lo trasmetterà ai nodi dello strato successivo, attraverso connessioni con i propri pesi.
Una rete neurale è un'astrazione: i "nodi" sono semplicemente pesi memorizzati nella memoria di un computer. Il calcolo del prodotto scalare in genere prevede il recupero di un peso dalla memoria, il recupero dell'elemento dati associato, la moltiplicazione dei due, la memorizzazione del risultato e la ripetizione dell'operazione per ogni input del nodo. Poiché una rete neurale può avere migliaia o addirittura milioni di nodi, si tratta di un'enorme quantità di dati da trasferire.
Tuttavia, questa sequenza di operazioni è solo un'approssimazione digitale di ciò che accade nel cervello, dove i segnali che viaggiano lungo più neuroni si incontrano in una "sinapsi", ovvero uno spazio tra gruppi di neuroni. La frequenza di attivazione dei neuroni e i segnali elettrochimici che attraversano la sinapsi corrispondono ai valori dei dati e ai pesi. Il nuovo chip sviluppato dai ricercatori del MIT migliora l'efficienza replicando il cervello in modo più fedele.
Sul chip, i valori di input di un nodo vengono convertiti in tensioni elettriche e quindi moltiplicati per i pesi appropriati. Solo le tensioni risultanti vengono poi riconvertite in una rappresentazione digitale e memorizzate per l'elaborazione successiva.
In questo modo, il chip può calcolare i prodotti scalari per più nodi, 16 alla volta nel prototipo, in un unico passaggio, invece di passare da un processore all'altro e dalla memoria per ogni calcolo.
Tutto o niente:
una delle chiavi del sistema è che tutti i pesi sono 1 o -1. Ciò significa che possono essere implementati in memoria come semplici interruttori che chiudono un circuito o lo lasciano aperto. Recenti studi teorici suggeriscono che le reti neurali addestrate con soli due pesi dovrebbero perdere poca precisione, tra l'1 e il 2%.
La ricerca di Biswas e Chandrakasan conferma questa previsione. Negli esperimenti, hanno eseguito l'implementazione completa di una rete neurale su un computer convenzionale e l'equivalente binario dei pesi sul loro chip. I risultati del loro chip erano generalmente entro il 2-3% rispetto alla rete convenzionale.
###
Scritto da Larry Hardesty, MIT News Office
