Rete neurale spiking
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.[1]
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
modificaUna vasta gamma di software applicativi può simulare SNN sia per CPU Intel, AMD, ARM, che per GPU con supporto CUDA e OpenCL.
Simulatori SNN
modificaQuesti simulano modelli neurali complessi con un alto livello di dettaglio e precisione. Le grandi reti di solito richiedono un'elaborazione lunga. I candidati includono:[2]
- BindsNET – sviluppato dal laboratorio sui sistemi dinamici e neurali biologicamente ispirati (BINDS) dell'Università del Massachusetts - Amherst.[3]
- 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[4]) – 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;[5]
- SpykeTorch - un framework basato sulla libreria PyTorch ottimizzata specificatamente per SNN convoluzionali con almeno uno spike per neurone. Può essere eseguita su GPU.[6]
- 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
modifica- ^ Wolfgang Maass, Networks of spiking neurons: The third generation of neural network models, in Neural Networks, vol. 10, n. 9, 1997, pp. 1659–1671, DOI:10.1016/S0893-6080(97)00011-7, ISSN 0893-6080 .
- ^ L. F. Abbott e Sacha B. Nelson, Synaptic plasticity: taming the beast, in Nature Neuroscience, vol. 3, S11, novembre 2000, pp. 1178–1183, DOI:10.1038/81453, PMID 11127835.
- ^ Hananel-Hazan/bindsnet: Simulation of spiking neural networks (SNNs) using PyTorch., su GitHub, 31 marzo 2020.
- ^ A.F. Atiya e A.G. Parlos, New results on recurrent network training: unifying the algorithms and accelerating convergence, in IEEE Transactions on Neural Networks, vol. 11, n. 3, maggio 2000, pp. 697–709, DOI:10.1109/72.846741, PMID 18249797.
- ^ Jason Eshraghian et al., Training Spiking Neural Networks Using Lessons from Deep Learning, 1º ottobre 2021, arXiv:2109.12894.
- ^ Milad Mozafari, Mohammad Ganjtabesh, Abbas Nowzari-Dalini e Timothée Masquelier, SpykeTorch: Efficient Simulation of Convolutional Spiking Neural Networks With at Most One Spike per Neuron, in Frontiers in Neuroscience, vol. 13, 12 luglio 2019, pp. 625, DOI:10.3389/fnins.2019.00625, PMC 6640212, PMID 31354403, arXiv:1903.02440.
Voci correlate
modificaAltri progetti
modifica- Wikimedia Commons contiene immagini o altri file sulle reti neurali spiking
Collegamenti esterni
modifica- reti neurali, unibo.it Archiviato l'11 novembre 2018 in Internet Archive.
- Reti neurali breve introduzione