-
Notifications
You must be signed in to change notification settings - Fork 4
Description
If anyone wants to do this, the STDP implementation can be simplified.
The idea is similar to what is described in Synaptic plasticity: taming the beast (review article in nature neuroscience). Also similar to the approach to splitting off the R/D variables
Basically, rather than using the lagstorage.c class, we store one new number per neuron.
On each timestep this is multiplied by a constant
On each spike, it is incremented by
Then when another neuron spikes, we just use this value to change the synaptic strengths.
This approach will remove a pretty significant part of the complexity of the calculation.
What can be easily removed/simplified if this is done:
src/lagstorage.*
stdp_change_calc (simplified)
DoSTDP also probably becomes simpler.
The other changes are that STDP_data uses the lags member and gets a different, simpler array instead.
Also, this will use less memory than before - (we go from a lagstorage/neuron to a float/neuron) so is faster because of that
also, the updates in lagstorage.c branch quite unpredictably so it should be faster to change to this new method