# Ingegneria neuromorfica

L'Ingegneria neuromorfica è un concetto sviluppato da Carver Mead, alla fine degli anni '80 del secolo scorso, che descrive l'uso di sistemi Very large scale integration (VLSI) contenenti circuiti elettronici analogici per imitare architetture biologico-neurali del sistema nervoso umano
In tempi recenti il termine neuromorfico viene usato per descrivere l'analogo digitale o un sistema VLSI misto digitale e analogico, e sistemi software che implementano modelli di sistemi neurali per la percezione, il controllo motorio, e l'integrazione multisensoriale.
Un dispositivo neuromorfico a livello hardware può essere realizzato con memristori memorie spintroniche, switch con valore soglia, e transistor..

## Obiettivi e vantaggi

L’obiettivo dell’ingegneria neuromorfica è quello di ispirarsi a un cervello umano, traducendo ciò che è noto del suo funzionamento e della sua architettura in un sistema informatico, senza necessariamente riprodurre tutti i dettagli biologici. Il motivo è che il cervello umano è paragonabile a un computer estremamente efficiente, dotato di una capacità computazionale di gran lunga superiore ai supercomputer moderni e un consumo energetico minimo, corrispondente a circa 12-20 watt.
Costruire un sistema informatico di questo tipo porterebbe i seguenti vantaggi:
* efficienza energetica;
* velocità di esecuzione dei calcoli;
* robustezza contro i guasti;
* capacità di apprendimento.

## Architettura

Nell’ingegneria neuromorfica viene abbandonata l’architettura di Von Neumann, poiché la necessità di spostare i dati da una componente all’altra comporta due svantaggi:
* limita le prestazioni, a causa della latenza;
* aumenta il consumo energetico, soprattutto nei computer moderni dove le informazioni da trasportare sono maggiori.
L’architettura neuromorfica si divide invece in nodi computazionali, ciascuno dei quali è composto da un’unità di calcolo e una memoria, in modo da distribuire in maniera più uniforme la gestione del calcolo e delle informazioni nelle zone del chip.
Cambia anche il sistema di rappresentazione dei dati, che abbandona il linguaggio digitale binario per adottarne uno analogico non binario, basato su un sistema pesato delle informazioni: viene assegnato un livello di importanza a ciascuna informazione e questo sistema è necessario per eseguire correttamente i calcoli. Alcuni sistemi moderni simulano questo funzionamento ma sono inefficienti a causa della loro natura digitale, cioè della necessità di creare sovrastrutture con relazioni gerarchiche, che porta a un peggioramento dell’efficienza.

## Esempi sperimentali

Intel ha presentato un suo chip neuromorfico sperimentale, denominato Loihi, nel novembre 2017, composto da 130.000 neuroni e 128 core. Il chip utilizza una rete neurale spiking dotata di auto apprendimento ad alta efficienza energetica. Il 15 luglio 2019 l’azienda ha presentato un sistema neuromorfico con 8 milioni di neuroni e 64 core, denominato Pohoiki Beach, progettato per l’implementazione di nuovi algoritmi di reti neurali. Il sistema comprende 64 chip sperimentali Loihi. Il 30 settembre 2021 è stata annunciata da Intel la seconda generazione del chip Loihi, insieme a un framework open-source per lo sviluppo di applicazioni di sistemi neurali.
IBM ha presentato nel 2014 TrueNorth, un chip neuromorfico sperimentale utilizzato anche da DARPA per lo sviluppo del programma SyNAPSE.
Human Brain Project ha sviluppato tre sistemi neuromorfici sperimentali:
* SpiNNaker, basato su architettura ARM digitale e capace di simulare 16.000 neuroni e 8 milioni di sinapsi su un singolo chip;
* BrainScaleS-1, che emula fisicamente, per via analogica o mista, il funzionamento di neuroni e sinapsi. Non esegue codice pre programmato ma si perfeziona in base alle proprietà dei dispositivi elettronici;
* BrainScaleS-2, versione aggiornata del primo modello che introduce un’unità di plasticità programmabile (PPU) e capace di combinare più neuroni così da formare neuroni strutturati.
Nei sistemi neuromorfici si stanno sperimentando anche alcune periferiche, tra cui le telecamere neuromorfiche, utili per il riconoscimento di oggetti e classificabili in base al tipo di sensore utilizzato. Un esempio di sensore è il DVS progettato da iniVation, che emula il funzionamento della retina umana. Dall’attività di questi sensori è possibile costruire dei dataset, come per esempio il CIFAR10-DVS, costruito convertendo 10.000 immagini basate su fotogrammi in un dataset di flusso di eventi, utile per la classificazione di oggetti orientata a eventi.

## Difficoltà principali

Lo sviluppo di sistemi neuromorfici artificiali incontra varie difficoltà, riconducibili alla complessità dell’oggetto di studio, il cervello umano. Nello specifico:
* capire come le conformazioni di neuroni e sinapsi permettano di eseguire correttamente i calcoli;
* riprodurre la plasticità del cervello;
* riprodurre il concetto di tempo, che influenza il processo di conferimento dell’importanza alle informazioni.
Per tempo s’intende la cronologia e la frequenza temporale dello scambio di informazioni tra neuroni riguardo a un determinato evento.