Rete neurale spiking

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca

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[modifica | modifica wikitesto]

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[modifica | modifica wikitesto]

Apprendimento non supervisionato con sinapsi ferroelettriche

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:[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 | modifica wikitesto]

  1. ^ 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 (WC · ACNP).
  2. ^ 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.
  3. ^ Hananel-Hazan/bindsnet: Simulation of spiking neural networks (SNNs) using PyTorch., su GitHub, 31 marzo 2020.
  4. ^ 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.
  5. ^ Jason Eshraghian et al., Training Spiking Neural Networks Using Lessons from Deep Learning, 1º ottobre 2021, arXiv:2109.12894.
  6. ^ 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[modifica | modifica wikitesto]

Altri progetti[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]