Una rete neurale spiking o rete neurale a impulso, in sigla SNN (dall'inglese spiking neural network), è una rete neurale artificiale che tenta di mimare più precisamente le reti neurali naturali.

Oltre allo stato sinaptico e neuronale una rete di questo tipo incorpora anche il concetto di tempo nel suo modello operativo. L'idea è che i neuroni artificiali non attivino in automatico ognuno un ciclo di propagazione come nelle reti multistrato con percettrone, ma piuttosto quando un potenziale di membrana - una intrinseca qualità del neurone correlata alla carica della sua membrana elettrica - raggiunge uno specifico valore. Quando un neurone si attiva genera un segnale che viaggia verso altri neuroni, che a turno incrementano o decrementano i loro potenziali in accordo a questo segnale.

Per le SNN, l'attuale livello di attivazione (modellato come una equazione differenziale) è normalmente considerato uno stato del neurone, che con impulsi in arrivo spinge questo valore più in alto e poi si attiva o decade nel tempo. Esistono vari "metodi di codifica" per interpretare l'uscita del "treno di impulsi" come numero reale, facendo affidamento sulla frequenza dei picchi o sul tempo tra i picchi, per codificare le informazioni.

Programmi

Una vasta gamma di software applicativi può simulare SNN sia per CPU Intel, AMD, ARM, che per GPU con supporto CUDA e OpenCL.

Simulatori SNN

Questi simulano modelli neurali complessi con un alto livello di dettaglio e precisione. Le grandi reti di solito richiedono un'elaborazione lunga. I candidati includono:

BindsNET – sviluppato dal laboratorio sui sistemi dinamici e neurali biologicamente ispirati (BINDS) dell'Università del Massachusetts - Amherst. NeuralLead – è un kit di sviluppo grafico gratuito scritto completamente dalla società SJRiddix, è il più biologicamente plausibile poiché è possibile emulare i neurotrasmettitori e quindi eseguire simulazioni che coinvolgono le emozioni, inoltre vengono simulati diversi modelli neurali tra cui LIF, Izhikevich, Hodgkin Huxley, con la capacità di creare script con i seguenti linguaggi Python, C# o C++ come è possibile fare su Unity o Unreal Engine. CARLsim libreria aperta per lo sviluppo di SNN per CPU e GPU scritta in C++. Brian – sviluppato da Romain Brette and Dan Goodman alla Scuola normale di Parigi; GENESIS (the GEneral NEural SImulation System) – sviluppato nel laboratorio di James Bower alla Caltech; NEST – sviluppato dall'iniziativa NEST NEURON – principalmente sviluppato da Michael Hines, John W. Moore and Ted Carnevale presso l'Università Yale e l'Università Duke; Norse – una libreria di apprendimento profondo per neuroni biologici costruita su PyTorch che si integra con hardware neuromorfico. Norse è sviluppato all'Università di Heidelberg e al KTH Royal Institute of Technology; snnTorch - libreria basata su PyTorch sviluppata da Jason K. Eshraghian all'Università della California, Santa Cruz; SpykeTorch - un framework basato sulla libreria PyTorch ottimizzata specificatamente per SNN convoluzionali con almeno uno spike per neurone. Può essere eseguita su GPU. SpikingJelly: un framework libero di apprendimento profondo per reti SNN basato su PyTorch. Multimedia Learning Group, Institute of Digital Media (NELVT), Università di Pechino e Peng Cheng Laboratory sono i principali sviluppatori.

Note

Voci correlate Ingegneria neuromorfica

Altri progetti

Collegamenti esterni

Categoria:Reti neurali artificiali