Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

STDP implementation can be simpler #10

Open
jpalmer opened this issue Jul 26, 2016 · 0 comments
Open

STDP implementation can be simpler #10

jpalmer opened this issue Jul 26, 2016 · 0 comments

Comments

@jpalmer
Copy link
Collaborator

jpalmer commented Jul 26, 2016

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 $C<1$. this depends on the tau in STDP.

On each spike, it is incremented by $A$ which is the same A as in the STDP window function.

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant