E’ possibile simulare il funzionamento del cervello umano?

Un team di ricercatori della Manchester University sta lavorando a un progetto che si prefigge l'ambizioso obiettivo di simulare il funzionamento del cervello umano attraverso un'architettura massiva di processori ARM. Riusciranno in questo intento?

Il titolo di questo articolo è volutamente provocatorio, nel senso che il cervello umano ed i calcolatori elettronici appartengono a due categorie ben distinte. Un aspetto però li accomuna: entrambi forniscono dei validi esempi di sistemi in grado di elaborare grandi quantità di informazioni, anche di complessità molto elevata. A parte questo aspetto, le differenze sovrastano ampiamente i punti in comune. Il cervello umano è infatti estremamente flessibile, relativamente lento, incline all'errore, ed impreciso. Per contro, un calcolatore elettronico è rigido (non flessibile), veloce, deterministico, e preciso.

Nonostante l'esistenza di questi tipi di considerazioni, varie categorie di studiosi, ingegneri e scienziati hanno cercato di realizzare, sin dagli albori dell'elettronica e dell'informatica, una "macchina" che fosse in grado di riprodurre il comportamento del cervello umano. Per quale motivo essi si sono incaponiti in quest'impresa? La risposta è che il nostro cervello è caratterizzato da livelli molto elevati di concorrenza e di tolleranza agli errori, proprietà tipiche degli elaboratori elettronici. Non solo, riuscire a capire come il cervello riesca ad attuare queste caratteristiche può servire a trasferire questi meccanismi su un sistema hardware.

Il progetto SpiNNaker

La Manchester University ha lanciato il progetto SpiNNaker (Spiking Neural Network Architecture), basato su un'architettura di reti neurali con l'obiettivo di (letteralmente) "mimare" non solo il funzionamento, ma anche la struttura biologica del cervello umano. Nel nostro cervello, i componenti basilari che elaborano le informazioni sono i neuroni, i quali comunicano tra di loro attraverso la trasmissione di impulsi elettrici (gli spike) lungo gli assoni (si veda al proposito l'immagine seguente).

Il funzionamento a livello biologico del neurone può essere modellato da un sistema digitale (tipicamente basato su microprocessori), in cui la connettività attuata dagli assoni può essre simulata attraverso lo scambio di messaggi (in pratica pacchetti opportuni di informazioni) tra un grande numero di microprocessori che di fatto simulano le operazioni eseguite in parallelo dai miliardi di neuroni presenti nel cervello umano.

L'architettura ideata per SpiNNaker è abbastanza complessa, ma il livello superiore della stessa è ben rappresentato dall'immagine seguente.

Possiamo constatare la presenza di una rete di forma toroidale con una moltitudine di nodi interconnessi (le reti di nodi interconnessi vengono dette anche "mesh" in inglese). Nella sua implementazione iniziale, la rete puà comprendere fino a 65536 nodi (detti anche SpiNNaker CMP), e ciascun nodo è rappresentato da un processore multi-core (20 core in totale) basato sull'architettura ARM968. Si tenga presente che ciascun nodo possiede una capacità di elaborazione in grado di simulare l'attività di circa 1000 neuroni. Ciascun nodo costituisce inoltre un sottosistema di elaborazione completo, dotato di una propria memoria locale SDRAM e funzionalità DMA. I collegamenti con gli altri nodi avvengono tramite Network-on-Chip (NoC), in grado di assicurare una comunicazione locale a banda larga. In questo modo è possibile estendere il parallelismo massivo anche a migliaia o milioni di processori.

Nel cervello umano, il bagaglio di conoscenze e la capacità di apprendimento sono incarnate nel particolare "pattern" di interconnessioni esistente tra i neuroni, diverso da individuo a individuo e con la capacità di evolversi. Lo spike generato da un neurone viene istradato ad altri neuroni, interconnessi con il primo attraverso gli assoni, e l'insieme di queste interconnessioni può essere modificato ed esteso come conseguenza dell'apprendimento. La rete SpiNNaker simula a livello hardware questo comportamento del cervello. Ciascun processore multi-core della rete SpiNNaker è infatti dotato di un router di pacchetti, che agisce nel modo seguente: ogni pacchetto trasmesso, equivalente a uno spike, contiene delle informazioni che identificano il neurone sorgente (un pò come il source mac address del protocollo Ethernet); in questo modo, il router, conoscendo la topologia della rete, puà determinare se quel pacchetto è destinato ad uno dei suoi core, oppure deve essere inoltrato ad uno dei nodi adiacenti.

SpiNNaker è un progetto congiunto delle università di Manchester, Southampton, Cambridge e Sheffield, ed è stato finanziato con 5 milioni di sterline dal governo inglese. Il Professore Steve Furber dell'Università di Manchester e pilastro del progetto, ha iniziato a studiare l'architettura ed il funzionamento del cervello umano diversi anni or sono, ma è anche e soprattutto conosciuto come uno dei progettisti della macchina RISC Acorn, il microprocessore considerato come il precursore dell'attuale ARM.
Il cervello umano comprende all'incirca 100 miliardi di neuroni, collegati tra loro con circa 1.000 trilioni di connessioni. Date queste cifre, i ricercatori hanno stimato che una macchina anche dotata di 1 milione di processori ARM del tipo customizzato dall'Università di Manchester potrà simulare al più l'1% del cervello umano.
Il chip utilizzato nel progetto SpiNNaker è un ASIC fabbricato dall'azienda UMC (Hsinchu, Taiwan) in tecnologia CMOS da 130-nm. Contiene milioni di transistor, la maggiorparte dei quali allocati in 55 blocchi di memoria SRAM da 32-kbyte SRAM distribuita sul die. La memoria è una DDR SDRAM da 1.Gbit che opera fino a 166-MHz.

Sito web del progetto SpiNNaker

Scarica subito una copia gratis
Tags:

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend