Dear all, I´m writing a master thesis on spiking neural networks and how transparent they are. For that I need to implement a SNN network and train it. So I started with Brian but that is much to complex and I don´t need something special. So I decided to use PyNest. I did all the tutorials but I´m missing a tutorial how to train the network. I don´t know how to put in a dataset to train the model. I haven´t found anything to this topic. So my questions are: 1. Can PyNest train set up a SNN and train it trough data and if not is there another simulator who can do this? 2. How do I do it? Is there anything I missed to read or can someone send me an example? This would be very helpful. Thanks for your help.
Best, Sonja
Dear Sonja,
If you're doing deep/machine learning, it could make sense to look at different simulators like Norse (https://github.com/norse/norse/, disclaimer: I'm a maintainer), or BindsNET (https://github.com/BindsNET/bindsnet).
Both have explicit examples on how to build and train spiking models based on the PyTorch framework (https://pytorch.org/), cf. https://github.com/norse/notebooks/tree/master/notebooks.
Sincerely,
Jens Egholm Pedersen jensegholm@protonmail.com
‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐ On Monday, 15. June 2020 14:24, s.kraemer96@gmx.net wrote:
Dear all, I´m writing a master thesis on spiking neural networks and how transparent they are. For that I need to implement a SNN network and train it. So I started with Brian but that is much to complex and I don´t need something special. So I decided to use PyNest. I did all the tutorials but I´m missing a tutorial how to train the network. I don´t know how to put in a dataset to train the model. I haven´t found anything to this topic. So my questions are:
- Can PyNest train set up a SNN and train it trough data and if not is there another simulator who can do this?
- How do I do it? Is there anything I missed to read or can someone send me an example? This would be very helpful. Thanks for your help.
Best, Sonja
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
Dear Sonja,
nest is a spiking neural network simulator and not a machine learning library. My current knowledge on SNN is that there is no established learning algorithm as there are best-practices for ANNs. Here is a brief overview over some methods: There ist STDP for correlation learning, reward based STDP is a reinforcement learning algorithm still being researched. Another option is to train a ANN and then convert it to a SNN. SNN don’t have derivative of the activation function, therefore backprop is not transferable easily to SNN. There are methods like BPTT and e-prop to make backprop work. There might be more methods in the area of backprop adaptions. I am not an expert on this. SNNs can also be used for reservoir computing which is yet another thing (https://gitlab.com/aiCTX/rockpool). I am not sure which learning algorithm norse uses, they mention Policy gradient.
Kind regards, Benedikt S. Vogler
Am 15.06.2020 um 14:24 schrieb s.kraemer96@gmx.net:
Dear all, I´m writing a master thesis on spiking neural networks and how transparent they are. For that I need to implement a SNN network and train it. So I started with Brian but that is much to complex and I don´t need something special. So I decided to use PyNest. I did all the tutorials but I´m missing a tutorial how to train the network. I don´t know how to put in a dataset to train the model. I haven´t found anything to this topic. So my questions are:
- Can PyNest train set up a SNN and train it trough data and if not is there another simulator who can do this?
- How do I do it? Is there anything I missed to read or can someone send me an example? This would be very helpful.
Thanks for your help.
Best, Sonja _______________________________________________ NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
I recently read a potentially relevant review on this subject from earlier this year: A review of learning in biologically plausible spiking neural networks https://www.sciencedirect.com/science/article/abs/pii/S0893608019303181?fbclid=IwAR3Zu4aj38sb4pchp-jtzaizsIYvYao-QAZpFC2Ay8Nb672fipM-TDGE9eY .
Does anyone have thoughts on how to think about the differences (esp. in terms of learning) between BindsNet, Norse, and Rockpool?
Best wishes, Josh
On Mon, Jun 15, 2020 at 11:18 AM Benedikt S. Vogler < benedikt.s.vogler@tum.de> wrote:
Dear Sonja,
nest is a spiking neural network simulator and not a machine learning library. My current knowledge on SNN is that there is no established learning algorithm as there are best-practices for ANNs. Here is a brief overview over some methods: There ist STDP for correlation learning, reward based STDP is a reinforcement learning algorithm still being researched. Another option is to train a ANN and then convert it to a SNN. SNN don’t have derivative of the activation function, therefore backprop is not transferable easily to SNN. There are methods like BPTT and e-prop to make backprop work. There might be more methods in the area of backprop adaptions. I am not an expert on this. SNNs can also be used for reservoir computing which is yet another thing ( https://gitlab.com/aiCTX/rockpool). I am not sure which learning algorithm norse uses, they mention Policy gradient.
Kind regards, Benedikt S. Vogler
Am 15.06.2020 um 14:24 schrieb s.kraemer96@gmx.net:
Dear all, I´m writing a master thesis on spiking neural networks and how
transparent they are. For that I need to implement a SNN network and train it. So I started with Brian but that is much to complex and I don´t need something special. So I decided to use PyNest. I did all the tutorials but I´m missing a tutorial how to train the network. I don´t know how to put in a dataset to train the model. I haven´t found anything to this topic. So my questions are:
- Can PyNest train set up a SNN and train it trough data and if not
is there another simulator who can do this?
- How do I do it? Is there anything I missed to read or can someone
send me an example? This would be very helpful.
Thanks for your help.
Best, Sonja _______________________________________________ NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
Dear Josh,
it looks like both Norse and Rockpool support stochastic-gradient-descent-based learning using automatic differentiation provided by the supported libraries (e.g., pytorch, jax), i guess augmented with various tricks to make this work with the temporal and spiking nature of LIF-like models. bindsnet in contrast seems to be focused on implementing more traditional learning paradigms that do not necessarily rely on (back)propagating errors, such as reward-modulated STDP.
Best, Jakob
On 6/15/20 5:36 PM, Joshua Stern wrote:
I recently read a potentially relevant review on this subject from earlier this year: A review of learning in biologically plausible spiking neural networks https://www.sciencedirect.com/science/article/abs/pii/S0893608019303181?fbclid=IwAR3Zu4aj38sb4pchp-jtzaizsIYvYao-QAZpFC2Ay8Nb672fipM-TDGE9eY.
Does anyone have thoughts on how to think about the differences (esp. in terms of learning) between BindsNet, Norse, and Rockpool?
Best wishes, Josh
On Mon, Jun 15, 2020 at 11:18 AM Benedikt S. Vogler <benedikt.s.vogler@tum.de mailto:benedikt.s.vogler@tum.de> wrote:
Dear Sonja, nest is a spiking neural network simulator and not a machine learning library. My current knowledge on SNN is that there is no established learning algorithm as there are best-practices for ANNs. Here is a brief overview over some methods: There ist STDP for correlation learning, reward based STDP is a reinforcement learning algorithm still being researched. Another option is to train a ANN and then convert it to a SNN. SNN don’t have derivative of the activation function, therefore backprop is not transferable easily to SNN. There are methods like BPTT and e-prop to make backprop work. There might be more methods in the area of backprop adaptions. I am not an expert on this. SNNs can also be used for reservoir computing which is yet another thing (https://gitlab.com/aiCTX/rockpool). I am not sure which learning algorithm norse uses, they mention Policy gradient. Kind regards, Benedikt S. Vogler > Am 15.06.2020 um 14:24 schrieb s.kraemer96@gmx.net <mailto:s.kraemer96@gmx.net>: > > Dear all, > I´m writing a master thesis on spiking neural networks and how transparent they are. For that I need to implement a SNN network and train it. So I started with Brian but that is much to complex and I don´t need something special. So I decided to use PyNest. I did all the tutorials but I´m missing a tutorial how to train the network. I don´t know how to put in a dataset to train the model. I haven´t found anything to this topic. So my questions are: > 1. Can PyNest train set up a SNN and train it trough data and if not is there another simulator who can do this? > 2. How do I do it? Is there anything I missed to read or can someone send me an example? This would be very helpful. > Thanks for your help. > > Best, > Sonja > _______________________________________________ > NEST Users mailing list -- users@nest-simulator.org <mailto:users@nest-simulator.org> > To unsubscribe send an email to users-leave@nest-simulator.org <mailto:users-leave@nest-simulator.org> _______________________________________________ NEST Users mailing list -- users@nest-simulator.org <mailto:users@nest-simulator.org> To unsubscribe send an email to users-leave@nest-simulator.org <mailto:users-leave@nest-simulator.org>
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
Dear Josh,
it looks like both Norse and Rockpool support stochastic-gradient-descent-based learning using automatic differentiation provided by the supported libraries (e.g., pytorch, jax), i guess augmented with various tricks to make this work with the temporal and spiking nature of LIF-like models. bindsnet in contrast seems to be focused on implementing more traditional learning paradigms that do not necessarily rely on (back)propagating errors, such as reward-modulated STDP.
Best, Jakob
On 6/15/20 5:36 PM, Joshua Stern wrote:
I recently read a potentially relevant review on this subject from earlier this year: A review of learning in biologically plausible spiking neural networks https://www.sciencedirect.com/science/article/abs/pii/S0893608019303181?fbclid=IwAR3Zu4aj38sb4pchp-jtzaizsIYvYao-QAZpFC2Ay8Nb672fipM-TDGE9eY.
Does anyone have thoughts on how to think about the differences (esp. in terms of learning) between BindsNet, Norse, and Rockpool?
Best wishes, Josh
On Mon, Jun 15, 2020 at 11:18 AM Benedikt S. Vogler <benedikt.s.vogler@tum.de mailto:benedikt.s.vogler@tum.de> wrote:
Dear Sonja, nest is a spiking neural network simulator and not a machine learning library. My current knowledge on SNN is that there is no established learning algorithm as there are best-practices for ANNs. Here is a brief overview over some methods: There ist STDP for correlation learning, reward based STDP is a reinforcement learning algorithm still being researched. Another option is to train a ANN and then convert it to a SNN. SNN don’t have derivative of the activation function, therefore backprop is not transferable easily to SNN. There are methods like BPTT and e-prop to make backprop work. There might be more methods in the area of backprop adaptions. I am not an expert on this. SNNs can also be used for reservoir computing which is yet another thing (https://gitlab.com/aiCTX/rockpool). I am not sure which learning algorithm norse uses, they mention Policy gradient. Kind regards, Benedikt S. Vogler > Am 15.06.2020 um 14:24 schrieb s.kraemer96@gmx.net <mailto:s.kraemer96@gmx.net>: > > Dear all, > I´m writing a master thesis on spiking neural networks and how transparent they are. For that I need to implement a SNN network and train it. So I started with Brian but that is much to complex and I don´t need something special. So I decided to use PyNest. I did all the tutorials but I´m missing a tutorial how to train the network. I don´t know how to put in a dataset to train the model. I haven´t found anything to this topic. So my questions are: > 1. Can PyNest train set up a SNN and train it trough data and if not is there another simulator who can do this? > 2. How do I do it? Is there anything I missed to read or can someone send me an example? This would be very helpful. > Thanks for your help. > > Best, > Sonja > _______________________________________________ > NEST Users mailing list -- users@nest-simulator.org <mailto:users@nest-simulator.org> > To unsubscribe send an email to users-leave@nest-simulator.org <mailto:users-leave@nest-simulator.org> _______________________________________________ NEST Users mailing list -- users@nest-simulator.org <mailto:users@nest-simulator.org> To unsubscribe send an email to users-leave@nest-simulator.org <mailto:users-leave@nest-simulator.org>
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
Dear Sonja,
Some work that sits on the border between spiking neural network and deeplearning:
https://arxiv.org/abs/1901.09049
Biologically inspired alternatives to backpropagation through time for learning in recurrent neural nets Guillaume Bellec, Franz Scherr, Elias Hajek, Darjan Salaj, Robert Legenstein, Wolfgang Maass
The way how recurrently connected networks of spiking neurons in the brain acquire powerful information processing capabilities through learning has remained a mystery. This lack of understanding is linked to a lack of learning algorithms for recurrent networks of spiking neurons (RSNNs) that are both functionally powerful and can be implemented by known biological mechanisms. Since RSNNs are simultaneously a primary target for implementations of brain-inspired circuits in neuromorphic hardware, this lack of algorithmic insight also hinders technological progress in that area. The gold standard for learning in recurrent neural networks in machine learning is back-propagation through time (BPTT), which implements stochastic gradient descent with regard to a given loss function. But BPTT is unrealistic from a biological perspective, since it requires a transmission of error signals backwards in time and in space, i.e., from post- to presynaptic neurons. We show that an online merging of locally available information during a computation with suitable top-down learning signals in real-time provides highly capable approximations to BPTT. For tasks where information on errors arises only late during a network computation, we enrich locally available information through feedforward eligibility traces of synapses that can easily be computed in an online manner. The resulting new generation of learning algorithms for recurrent neural networks provides a new understanding of network learning in the brain that can be tested experimentally. In addition, these algorithms provide efficient methods for on-chip training of RSNNs in neuromorphic hardware.
It is my understanding that work is going on to implement this method in NEST also.
Greets,
Wouter
On 15-Jun-20 14:24, s.kraemer96@gmx.net wrote:
Dear all, I´m writing a master thesis on spiking neural networks and how transparent they are. For that I need to implement a SNN network and train it. So I started with Brian but that is much to complex and I don´t need something special. So I decided to use PyNest. I did all the tutorials but I´m missing a tutorial how to train the network. I don´t know how to put in a dataset to train the model. I haven´t found anything to this topic. So my questions are:
- Can PyNest train set up a SNN and train it trough data and if not is there another simulator who can do this?
- How do I do it? Is there anything I missed to read or can someone send me an example? This would be very helpful.
Thanks for your help.
Best, Sonja _______________________________________________ NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
-- Wouter Klijn w.klijn@fz-juelich.de
Team Leader Multiscale simulation and design SimLab Neuroscience Jülich Supercomputing Centre Institute for Advanced Simulation Forschungszentrum Jülich http://www.fz-juelich.de/ias/jsc/slns
Office: +49 2461 61-3523 Fax # : +49 2461 61-6656
------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------ Forschungszentrum Juelich GmbH 52425 Juelich Sitz der Gesellschaft: Juelich Eingetragen im Handelsregister des Amtsgerichts Dueren Nr. HR B 3498 Vorsitzender des Aufsichtsrats: MinDir Volker Rieke Geschaeftsfuehrung: Prof. Dr.-Ing. Wolfgang Marquardt (Vorsitzender), Karsten Beneke (stellv. Vorsitzender), Prof. Dr.-Ing. Harald Bolt ------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------