Simulator of Spiking Neural Network for time series related tasks
Snn_sim is multithreaded simulator of recurrent neural networks dynamics written in C++. It is consist of various components which can be connected with each other in different combination:
- Neurons:
- AdExNeuron - Adaptive Exponential Integrate-and-fire
- SRMNeuron - Spike-Response Model
- Synapses:
- SimpleSynapse - static synapse, can be described by simple exponential decay
- DynamicSynapse - synapse with short-term memory (Tsodyks et al)
- Activation functions:
- Determ - Determinate threshold, neuron is firing if membrane reached threshold
- ExpHennequin - Exponential version of activation function, it has specific increase near threshold value (Hennequin et al)
- Learning rules:
- OptimalStdp - Supposed to maximize pre-post information (Toyoizumi et al)
- Stdp - Simple spike-timing dependent plasticity
- TripleStdp - Complicated version of Stdp with long range dynamics (Pfister et al)
- MaxLikelihood - Only works with SRM neuron. It is just maximizing of likelikelhood of spikes, it is makes no sense in unsupervised way, so it needs to be supported by some reward mechanism
- Weight normalizations:
- MeanActivityHomeostasis - Weight derivative is became bounded by neuron activity (Carlson 2013 et al)
- MinMax - link
- SoftMinMax - link
- NonLinearMinMax - Nonlinear power-like factor on ltp and ltd (Gutig et al. 2003)
- Reward modulations:
- Likelihood - it is simple SRM related term: p * log(p) + (1-p) * log(1-p)
- InputClassification - modulate a reward if neuron is related to some class, firing of that neuron means voting for that class. LTP generated when neuron is successfully predicted class, and LTD in the opposite case
- Likelihood - it is simple SRM related term: