Come funzionano i nuovi neuroni artificiali di IBM

Abbiamo parlato di recente di una delle più grandi imprese di IBM, e cioè quella di rendere accessibile a tutti un computer quantistico!
In questi giorni però IBM fa parlare ancora di sè con un’altra grande impresa: è riuscita a creare dei neuroni artificiali utilizzando materiali con cambiamento di fase (phase-change material), neuroni artificiali che potranno imitare il comportamento dei neuroni umani in molte delle funzioni conosciute.

Materiali a cambiamento di fase

IBM ha utilizzato molti materiali per questi neuroni, tra cui il germanio tellururo di antimonio (GeSbTe).
La caratteristica di questo tipo di materiali è quella di presentare due stati: uno amorfo e uno cristallino. Sorge una questione: ma i neuroni registrano dati analogici, non digitali.
Il fatto è che questi materiali non passano da uno stato all’altro con un’operazione, ma ad ogni operazione su di essi, si cristallizzano sempre più, dando quindi la possibilità di essere utilizzati per memorizzare grandi quantità di dati analogici, proprio come i neuroni veri.
Ogni operazione è eseguita tramite la stimolazione elettrica, che conduce sempre di più il materiale a cristallizzarsi.

Chip con cui si stimolano i neuroni artificiali (non visibili), ogni chip può stimolare 100 neuroni. Ph: https://www.ibm.com

Questi neuroni artificiali sono molto simili a quelli umani anche nella loro imprecisione:
infatti ad ogni stimolazione, ciò che è sicuro è che lo stato di cristallizzazione del neurone cambierà, ma con una certa imprecisione; lo stesso avviene nei nostri neuroni, che infatti sono soggetti a condizioni esterne quali ad esempio la temperatura: sì, i nostri ricordi dipendono anche dalla nostra temperatura corporea al momento dell’esperienza.
In questo senso il neurone artificiale è molto simile ad un accumulatore: più viene stimolato e più accumula, ma dissipando un certo potenziale energetico che dipende dalle condizioni ambientali.

Tutti i sistemi neuronali creati fin’ora si basavano su circuiti CMOS (a transistor, come i nosti computer) e questo limitava di molto la somiglianza con i neuroni umani. L’utilizzare finalmente circuiti non-CMOS con neuroni artificiali permetterà alla ricerca di avvicinarsi sempre più al neurone umano e quindi al cervello umano. 

Differenza con il computing tradizionale

La più grande differenza tra il cosiddetto neuromorphic computing e il classical computing è che nel computing tradizionale i dati e il controller logico sono separati; quando si vuole eseguire un’operazione, bisogna inanzi tutto leggere i dati, poi eseguire l’operazione e poi salvarli di nuovo.
Con il neuromorphic computing invece dati e controller logico (CPU, insomma) sono localizzati nello stesso sistema, e ogni operazione in automatico utilizza i dati vecchi per crearne di nuovi: l’operazione stessa contiene intrinsecamente i nuovi dati e si somma ai dati vecchi, creando quindi un risultato diverso in base all’operazione.
Su una grande quantità di dati da elaborare, questa piccola differenza diventa un enorme divario in termini temporali e di risorse computazionali.

Immaginiamo ad esempio di avere un sistema computazionale per modificare dei colori, basato su RGB. Se vogliamo unire un colore ad un altro, dobbiamo leggere il colore, sommargli il nuovo colore tramite algoritmo, e poi memorizzare il dato di nuovo.
Un sistema a neuroni funzionerebbe proprio come funziona in realtà quest’operazione:
C’è un secchiello di vernice, prendo un altro secchiello di vernice e ce lo verso dentro. Non importa il vedere (operazione di lettura) cosa c’è nei secchielli, e poi eseguire delle operazioni su di essi per arrivare al risultato, so già che versando una vernice nell’altra si otterrà il risultato giusto. Lo stesso per i neuroni artificiali e per i neuroni umani: ad ogni operazione (che sia essa la vista, il tatto, l’olfatto, ecc..) il solo memorizzare i dati sopra i vecchi crea l’esperienza.

Applicazioni

IBM nel suo studio ha facilmente dimostrato come il loro nuovo sistema sia già pronto per essere applicato nel riconoscere “categorie” di elementi, e riconoscere similarità tra più elementi.
Ad esempio, se prendiamo delle stringhe di bit (1 e 0) molto diverse, il sistema a neuroni artificiali può man mano iniziare a suddividerle in stringhe con molti 1 o stringhe con molti 0, in una sola operazione, cioè la visualizzazione della stringa.
Insomma, quando noi percepiamo tramite la vista un oggetto, lo riconosciamo subito in base alla sua similarità con altri oggetti nella nostra esperienza, in una singola operazione di “visione”.
Con un normale computer, per riconoscere una stringa con molti 1, bisogna contarli e confrontarne il risultato con un limite secondo cui stabiliamo se ce ne sono tanti o pochi.
Con i neuroni artificiali, alla sola ricezione della stringa e con un solo neurone connesso a più sinapsi, viene automaticamente riconosciuto se ci sono molti 1 o pochi 1.

Le applicazioni quindi potranno spaziare dal riconoscimento facciale (analizzando il file jpg del volto, si potrebbe capire se c’è una stringa che corrisponde ad un viso o no, in poche operazioni!) all’analisi di dati dall’Internet Of Things, o dati provenienti da Twitter per l’analisi di nuove mode o eventi sociali, o per riconoscere finalmente il sarcasmo nel linguaggio umano!
Insomma, tutto ciò che richieda il riconoscimento di pattern, similarità, andamenti o anche singolarità e anomalie.

Immaginiamo di avere un sistema composto da un milioni di sensori diversi, atto a rilevare un’anomalia in una città. Il sistema a neuroni inizierebbe a raccogliere ogni secondo lo stato dell città e a memorizzarlo nei neuroni che sempre più acquisiscono una data struttura che rappresenta lo stato di normalità della città, proprio come fa il nostro cervello. Ogni nuovo stato del sistema viene confrontato in automatico con lo stato del sistema memorizzato e quindi viene riconosciuto in automatico come coerente o anomalo!

Published by
Manuel Occorso