Answers.Body: <p>There is a book <a href="http://web.archive.org/web/20171110040115/icwww.epfl.ch/%7Egerstner/BUCH.html" rel="nofollow noreferrer">Spiking Neuron Models: Single Neurons, Populations, Plasticity</a> (2002) by Wulfram Gerstner and Werner M. Kistler.</p>
  <p>I also found <a href="http://web.archive.org/web/20171023113436/http://www.mjrlab.org/2014/05/08/tutorial-how-to-write-a-spiking-neural-network-simulation-from-scratch-in-python/" rel="nofollow noreferrer">these slides</a> that could be useful.</p>
  <p>(Additional resources would be appreciated.)</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2017-10-27T17:12:52.557Z
Answers.LastActivityDate: 2021-01-15T11:11:01.873Z
Answers.LastEditDate: 2021-01-15T11:11:01.873Z
Answers.UserDisplayName: Erin Loy
Answers.Body: <p>There are so many different versions of spiking neural networks out there. I think it is mainly due to the fact that there has been no dominant successful SNN model with proper learning algorithm like CNN with BP. However, there have been several recent papers(e.g. <a href="https://arxiv.org/abs/1705.11146" rel="nofollow noreferrer">SuperSpike</a>, <a href="https://papers.nips.cc/paper/7415-slayer-spike-layer-error-reassignment-in-time" rel="nofollow noreferrer">SLAYER</a>) on SNN that may lead to the standard framework for SNN. It happened within about 2 years, so it is one of the reasons why there have been no friendly introductions on SNN so far. I found some blogposts on SNN in general sense, but it didn't cover recent important trends in SNN.</p>
  
  <p>Currently, the best way to learn about SNN is by reading papers. One paper that I would recommend is <a href="https://arxiv.org/abs/1901.09948" rel="nofollow noreferrer">"Surrogate Gradient Learning in Spiking Neural Networks"</a> which comprehensively reviews recent works on supervised learning in SNN with back-propagation.</p>
  
  <p>If you want to implement the SNN from scratch, I would recommend you to checkout BindsNET(<a href="https://github.com/BindsNET/bindsnet" rel="nofollow noreferrer">github</a>, <a href="https://www.frontiersin.org/articles/10.3389/fninf.2018.00089/full" rel="nofollow noreferrer">paper</a>) which is an SNN framework based on PyTorch. To me, it was most intuitive to use and understand compared to other existing SNN libraries. It covers various neuron models and learning rules. But I'm not sure whether it also covers learning rules described in <a href="https://arxiv.org/abs/1901.09948" rel="nofollow noreferrer">"Surrogate Gradient Learning in Spiking Neural Networks"</a></p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-11-23T08:46:49.760Z
Answers.LastActivityDate: 2019-11-23T08:46:49.760Z
Answers.UserDisplayName: Kyungsu Stanley Kim
Body: <p>I'm very interested in writing a <strong>Spiking Neural Network</strong> engine (SNN) from scratch, but I can't find the basic information I need to get started.</p>
  <p>For example, I've seen pictures of the individual signals that combine to form a neuron pulse in several research papers, with no information on the equations in use.  It's not the focus of the papers, and the authors assume the readers have that knowledge already.  Some papers reference software that provides this foundation (<a href="https://www.nest-simulator.org/" rel="nofollow noreferrer">NEST</a>, <a href="https://neuralensemble.org/PyNN/" rel="nofollow noreferrer">pyNN</a>, etc.), but the documentation for the software is similarly light on details.</p>
  <p>There is a ton of information out there on the more common network types, but SNNs have not yet made it into the mainstream.</p>
  <p>So, where do I get this basic information? Has someone pulled together any recipes/examples/tutorials for an SNN, as has been done with all the other network types?</p>
  
Tags: <neural-networks><reference-request><resource-request><spiking-neural-networks>
Title: What are examples of resources that describe the basics of Spiking Neural Networks in detail?
UserDisplayName: Erin Loy
ThreadText: # What are examples of resources that describe the basics of Spiking Neural Networks in detail?
  
  (Asked by: username_0 on 2017-10-27)
  
  I'm very interested in writing a **Spiking Neural Network** engine (SNN) from scratch, but I can't find the basic information I need to get started.
  
  For example, I've seen pictures of the individual signals that combine to form a neuron pulse in several research papers, with no information on the equations in use. It's not the focus of the papers, and the authors assume the readers have that knowledge already. Some papers reference software that provides this foundation ([NEST](https://www.nest-simulator.org/), [pyNN](https://neuralensemble.org/PyNN/), etc.), but the documentation for the software is similarly light on details.
  
  There is a ton of information out there on the more common network types, but SNNs have not yet made it into the mainstream.
  
  So, where do I get this basic information? Has someone pulled together any recipes/examples/tutorials for an SNN, as has been done with all the other network types?
  
  **Tags:** neural-networks, reference-request, resource-request, spiking-neural-networks
  
  
  ---
  
  ## 2 answers
  
  ### Answer by username_0 on 2017-10-27. Score: 2
  
  There is a book [Spiking Neuron Models: Single Neurons, Populations, Plasticity](http://web.archive.org/web/20171110040115/icwww.epfl.ch/%7Egerstner/BUCH.html) (2002) by Wulfram Gerstner and Werner M. Kistler.
  
  I also found [these slides](http://web.archive.org/web/20171023113436/http://www.mjrlab.org/2014/05/08/tutorial-how-to-write-a-spiking-neural-network-simulation-from-scratch-in-python/) that could be useful.
  
  (Additional resources would be appreciated.)
  
  
  ---
  
  ### Answer by username_1 on 2019-11-23. Score: 2
  
  There are so many different versions of spiking neural networks out there. I think it is mainly due to the fact that there has been no dominant successful SNN model with proper learning algorithm like CNN with BP. However, there have been several recent papers(e.g. [SuperSpike](https://arxiv.org/abs/1705.11146), [SLAYER](https://papers.nips.cc/paper/7415-slayer-spike-layer-error-reassignment-in-time)) on SNN that may lead to the standard framework for SNN. It happened within about 2 years, so it is one of the reasons why there have been no friendly introductions on SNN so far. I found some blogposts on SNN in general sense, but it didn't cover recent important trends in SNN.
  
  Currently, the best way to learn about SNN is by reading papers. One paper that I would recommend is ["Surrogate Gradient Learning in Spiking Neural Networks"](https://arxiv.org/abs/1901.09948) which comprehensively reviews recent works on supervised learning in SNN with back-propagation.
  
  If you want to implement the SNN from scratch, I would recommend you to checkout BindsNET([github](https://github.com/BindsNET/bindsnet), [paper](https://www.frontiersin.org/articles/10.3389/fninf.2018.00089/full)) which is an SNN framework based on PyTorch. To me, it was most intuitive to use and understand compared to other existing SNN libraries. It covers various neuron models and learning rules. But I'm not sure whether it also covers learning rules described in ["Surrogate Gradient Learning in Spiking Neural Networks"](https://arxiv.org/abs/1901.09948)
  
  
  ---
  
  