Computer Neuromorfici: ispirarsi alla biologia può aiutare a superare i limiti delle architetture dei computer moderni.

Avevamo già accennato ai computer neuromorfici nell’articolo sull’hardware specializzato per AI. Il concetto di computer neuromorfici non è esattamente nuovo, infatti fu coniato negli anni ’80 da C. Mead, poi “ufficializzato” in un articolo poi divenuto famoso: Neuromorphic Electronic Systems.
Detto in parole povere, un computer neuromorfico è un computer costruito con un’architettura in grado di simulare il funzionamento del cervello. La ragione per cui si è avvertita la necessità di intraprendere questa strada, oltre che per motivi di simulazione scientifica, è per superare i limiti intrinseci delle architetture moderne, che stiamo velocemente raggiungendo.
Limiti delle architetture moderne

Oggi la quasi totalità dei computer funziona a grandi linee secondo l’architettura di Von Neumann: una CPU, uno o più dispositivi di memoria (RAM, Hard Disk etc.), e un bus con vari canali.
In questo genere di architettura i dati vengono costantemente trasferiti avanti e indietro dalla CPU alla memoria e viceversa tramite il bus. Il flusso di dati è pressoché costante, e temporizzato da un “clock” di sistema, che al giorno d’oggi è dell’ordine dei GHz, ovvero dei miliardi di cicli per secondo1.
Questo tipo di architettura, per quanto di grande successo nei computer odierni, ha un punto debole, ovvero il collo di bottiglia che si crea tra la CPU e i dispositivi di memorizzazione, dal momento che operano a velocità drasticamente differenti. Questo tipo di problema è attenuato in qualche modo, ma non superato, con l’implementazione di meccanismi di caching a vario livello, e massimizzando la velocità di trasferimento del bus. Un altro problema è che la progressiva miniaturizzazione, che ha seguito fino ad oggi la legge di Moore, sta raggiungendo oramai i limiti fisici2, ragion per cui andranno trovate strade differenti per continuare aumentare la capacità di calcolo. Aumento di capacità che diventa sempre più necessario per addestrare le reti neurali odierne.
I computer neuromorfici in soccorso
Il tipo di problematiche elencate si stanno facendo sempre più pressanti nell’era dei Big Data, e del Deep Learning con reti neurali sempre più estese e complesse. Quindi che fare? Una possibile via da percorrere è quella dei computer quantistici (ne abbiamo già parlato nella Guida galattica all’uso), che è promettente, ma ancora agli inizi e troppo acerba per soluzioni general-purpose.
La soluzione a questi problemi potrebbe essere per l’appunto quella di ispirarsi alla biologia, e costruire sistemi artificiali che funzionino come il cervello umano: i computer neuromorfici3 per l’appunto. L’elaborazione neuromorfica si basa su alcuni punti chiave:
- Memoria e calcolo nello stesso punto: non più due sistemi separati come nell’architettura Von Neumann, ma moltissimi “processori” semplici (ispirati ai neuroni).
- Parallelismo: reti neurali costruite su questo principio sono pensate per essere intrinsecamente capaci di parallelismo spinto.
- Estesa connettività: come nel cervello umano, i vadi nodi sono densamente connessi localmente (nella stessa struttura), ma anche tramite connessioni “lunghe” con nodi di altre strutture.
- Elaborazione per spike: i vari nodi comunicano per “spike”, ispirandosi ai potenziali d’azione biologici.

Reti Neurali “Spiking”
Una caratteristica cruciale delle elaborazioni neuromorfiche è l’uso di reti neurali “spiking”, più simili nel funzionamento ai loro corrispettivi biologici. Nelle reti neurali “tradizionali”, come ad esempio il perceptron o le reti convoluzionali, tutti i neuroni di un determinato layer “sparano” un valore reale tutti assieme a ogni ciclo di propagazione, ciascun neurone a seconda dei valori ricevuti in ingresso e della funzione di attivazione.
Nelle reti di tipo spiking invece, i neuroni invece di sparare a ogni ciclo di propagazione, spara solo quando la sua attivazione supera una determinata soglia. In altre parole segue la stessa legge del “tutto o nulla” dei potenziali d’azione biologici.


Per via di questa legge, i segnali possono essere considerati alla stregua di segnali digitali, ma con la possibilità di poter modulare la frequenza con cui questi vengono inviati, e l’arco di tempo. Inoltre l’innesco dello spike dipende anche dalla natura delle sinapsi (connessioni tra neuroni), che può essere eccitatoria o inibitoria. Il vantaggio di questo tipo di reti sta nella semplicità computazionale (i neuroni si limitano ad effettuare semplici somme algebriche). Se il tipo di calcolo in queste reti è teoricamente semplice, il problema è che può diventare complesso implementarlo in architetture tradizionali, visto che per rappresentare correttamente l’andamento dei segnali nel tempo (frequenza) occorrerebbe implementare equazioni differenziali, la cui complessità inficerebbe il vantaggio iniziale.
Tuttavia, utilizzando architetture apposite, basate sull’impiego di memristor (una sorta di resistenza dotata di memoria) si possono implementare circuiti in grado di simulare efficacemente le sinapsi biologiche. Queste architetture possono essere implementate con componenti relativamente economici, e consumerebbero una frazione dell’energia necessaria alle loro controparti tradizionali.
Implementazioni di nota

Lo sviluppo dei computer neuromorfici sta lentamente prendendo piede, anche se la tecnologia non è ancora matura, e già due anni fa gli investimenti superavano i 400 milioni di dollari in Nordamerica e nell’Unione Europea (vedi sotto). Qui di seguito alcune tra le implementazioni più conosciute.
Human Brain Project
Il progetto Human Brain è un enorme progetto di ricerca che ha per obiettivo l’accelerazione nella ricerca nell’ambito delle neuroscienze. Una delle aree del progetto è “Silicon Brain“, in cui sono confluiti SpiNNaker (vedi sotto), e BrainScaleS, un’architettura volta a simulare la plasticità delle connessioni neurali.
SpiNNaker
Basato su processori ARM, su ciascun chip di SpiNNaker è implementato un processore, una memoria SDRAM, e un router in grado di convogliare i messaggi “spikes” agli altri chip. Da un punto di vista software, il paradigma di programmazione di SpiNNaker è un semplice modello event-driven, e il progetto mette a disposizione tool appositi. Le applicazioni non controllano il flusso di esecuzione, ma possono solo indicare le funzioni da eseguire quando uno specifico evento accade, come l’arrivo di un pacchetto, o un tempo trascorso. Il kernel applicativo di SpiNNaker SARK (SpiNNaker Application Runtime Kernel) controlla il flusso di esecuzione e schedula/indirizza le chiamate alle funzioni. Lo stato dell’arte è rappresentato dalla SpiNNaker Machine, con più di 500k processori.

TrueNorth
Questa architettura è stata sviluppata nel 2014 da IBM, nell’ambito del programma SyNAPSE. TrueNorth, come altre architetture di questo genere, funziona con reti neurali di tipo spiking. TrueNorth si è dimostrato particolarmente versato nel campo della computer vision, e proprio lo scorso anno IBM ha annunciato una collaborazione con AirForce Research Lab per la costruzione di un array di 64 chip. L’idea è quella di portare valore aggiunto nel campo di applicazioni come le automobili autonome, i satelliti e i droni.
Mobile
L’impiego di tecnologie particolarmente versate nella computer vision non poteva mancare negli smartphone, e ci sono diversi telefoni top gamma che dispongono già oggi di processori NPU (Neural Processing Unit). Gli utilizzi sono ancora limitati, ma lo scenario potrebbe cambiare rapidamente dal momento che la tecnologia è li.
A partire da Android 8.1, saranno disponibili le NN-API, con cui gli sviluppatori potranno accedere alla NPU senza conoscerne i dettagli architetturali. Google ha inoltre rilasciato TensorFlow Lite, che le supporta pienamente.


Google Pixel 2XL monta a bordo Pixel Visual Core, sbloccato solo con Android 8.1, anche se al momento viene utilizzato solo per le applicazioni per HDR+. Qualcomm lato suo ha implementato AI nei suoi Snapdragon 835 e 845, e lavorerà assieme a Baidu per migliorare il riconoscimento vocale. Non mancano all’appello neanche Apple col suo A11, e Huawei con Kyrin.
Come già detto, al momento gli utilizzi di queste NPU sono piuttosto limitati, ma siamo agli inizi, e il settore è in forte espansione.
Note
1. Un clock rate di 1 GHz equivale a una frequenza di circa 10 cicli per nanosecondo.
2. Questo nonostante la ricerca stia continuando a spingere questo limite fisico più avanti, ad esempio tramite nuovi induttori in grafene, o lo sfruttamento di effetti quantistici nei transistor.
3. La ragione per cui questo genere di architetture non sia ancora diffuso nonostante l’idea abbia oltre 40 anni, è dovuto alla stessa ragione per cui il progresso dell’Intelligenza artificiale si fermò per più di 20 anni, dopo le promesse iniziali, ovvero la tecnologia non era ancora pronta. Oggi con il rinnovato interesse per l’Intelligenza artificiale e per le neuroscienze, unito alla maturazione tecnologica, i computer neuromorfici stanno tornando in auge.
Links
Spiking Neural Networks, the Next Generation of Machine Learning
Neuromorphic Chips Are Destined for Deep Learning—or Obscurity
Qualcomm-backed startup announces AI processor family
Researchers create organic nanowire synaptic transistors that emulate the working principles of biological synapses
Introduction to Neuromorphic Computing Insights and Challenges (pdf)
What do made-for-AI processors really do?
Neuromorphic Computing Could Build Human-Like Machine Brains
Machine learning and AI: How smartphones get even smarter
Neuromorphic Chips: a Path Towards Human-level AI
NEUROMORPHIC COMPUTING CHIP – THE NEXT EVOLUTION IN ARTIFICIAL INTELLIGENCE
Artificial synapse for neuromorphic chips
A Memristor based Unsupervised Neuromorphic System Towards Fast and Energy-Efficient GAN (pdf)
Classifying neuromorphic data using a deep learning framework for image classification (pdf)
Large-Scale Neuromorphic Spiking Array Processors: A quest to mimic the brain (pdf)
Convolutional networks for fast, energy-efficient neuromorphic computing (pdf)
Projects
The Human Brain Project
THE BLUE BRAIN PROJECT – A SWISS BRAIN INITIATIVE
NEST Initiative – The Neural Simulation Technology Initiative
Gromacs Gromacs
STEPS – STochastic Engine for Pathway Simulation
Project NEURON – Novel Education for Understanding Research on Neuroscience
Neuromem Smart – Hardware neurons inspired by biology
Andrea lavora nel campo dell’IT da quasi 20 anni coprendo un po’ tutto, da sviluppo a business analysis, alla gestione di progetti.
Oggi possiamo dire che è uno gnomo spensierato, appassionato di Neuroscienze, Intelligenza Artificiale e fotografia.