-
Notifications
You must be signed in to change notification settings - Fork 391
Implement e-prop plasticity #2867
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
Conversation
|
@akorgor @JesusEV @jstapmanns FYI Here is the build output of the documentation from Read the docs for the PR. I've also created a PR against the eprop_feature branch in jstapmanns fork. |
jessica-mitchell
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks just a few minor typos and formatting
pynest/examples/eprop_plasticity/eprop_supervised_regression.py
Outdated
Show resolved
Hide resolved
pynest/examples/eprop_plasticity/eprop_supervised_regression.py
Outdated
Show resolved
Hide resolved
heplesser
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks a lot for this PR! @akorgor, @JesusEV and @heplesser reviewed most of this code today, except the new neuron models. It looks already pretty good, some cleanup to do.
akorgor
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Processed part of the requested changes.
jessica-mitchell
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks really good, just have a few minor changes :)
jessica-mitchell
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for all your work on this; still have a one typo but I will approve
|
Small hint: You can type |
heplesser
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a preliminary review of the files surrounding the actual neuron and synapse models. I will get back to those soon, but want to provide some feedback already now.
heplesser
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@akorgor @JesusEV I have now reviewed everything in nestkernel, with a number of suggestions for further improving EpropArchivingNode. I will work on the material in models tomorrow. Some of my comments are just in a single place, but apply generally.
One more general aspect: You use long throughout, but I think in almost all places you could never have negative values. Our practice now is to use size_t in those cases.
Co-authored-by: JesusEV <espinozavalverd@uni-wuppertal.de>
Co-authored-by: JesusEV <espinozavalverd@uni-wuppertal.de>
Co-authored-by: JesusEV <espinozavalverd@uni-wuppertal.de>
Co-authored-by: JesusEV <espinozavalverd@uni-wuppertal.de>
Co-authored-by: JesusEV <espinozavalverd@uni-wuppertal.de>
Co-authored-by: JesusEV <espinozavalverd@uni-wuppertal.de>
heplesser
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@akorgor @JesusEV I went though the code again and it looks almost fine to me now. Most suggestions I added fix just typos and empty lines.
There is one more complex change left after our discussion about the "alpha_complement" recently. I added a suggestion for a cleaner and simpler solution, see the adapt model variant. I applies to both recurrent neuron models. I'd much appreciate if you could still integrate this change so that the user interface can stay fixed afterwards.
Co-authored-by: Hans Ekkehard Plesser <hans.ekkehard.plesser@nmbu.no>
Co-authored-by: Hans Ekkehard Plesser <hans.ekkehard.plesser@nmbu.no>
Co-authored-by: Hans Ekkehard Plesser <hans.ekkehard.plesser@nmbu.no>
Co-authored-by: Hans Ekkehard Plesser <hans.ekkehard.plesser@nmbu.no>
Co-authored-by: Hans Ekkehard Plesser <hans.ekkehard.plesser@nmbu.no>
Co-authored-by: Hans Ekkehard Plesser <hans.ekkehard.plesser@nmbu.no>
Co-authored-by: Hans Ekkehard Plesser <hans.ekkehard.plesser@nmbu.no>
Co-authored-by: Hans Ekkehard Plesser <hans.ekkehard.plesser@nmbu.no>
Co-authored-by: Hans Ekkehard Plesser <hans.ekkehard.plesser@nmbu.no>
Co-authored-by: Hans Ekkehard Plesser <hans.ekkehard.plesser@nmbu.no>
Co-authored-by: Hans Ekkehard Plesser <hans.ekkehard.plesser@nmbu.no>
heplesser
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
|
@akorgor All reviewers have approved now, but the pylint test fails because Github recently started using a newer pylint version. We just merged a fix for this into master, so if you could merge master into your branch once more, this PR should be ready to be merged :). |
This PR ports the eligibility propagation (e-prop) plasticity mechanism in supervised tasks published by Bellec et al. (2020) from TensorFlow to NEST.
The PR includes:
eprop_iaf_psc_delta,eprop_iaf_psc_delta_adapt, andeprop_readouteprop_synapseeprop_learning_signal_connectioneprop_archiving_nodeto archive the history of variables required for computing the weight updatetest_eprop_plasticity.pyeprop_supervised_regression.pyandeprop_supervised_classification.pyA manuscript on the details of this implementation, Korcsak-Gorzo, Stapmanns, and Espinoza Valverde et al., is in preparation.
Bellec, G., Scherr, F., Subramoney, A., Hajek, E., Salaj, D., Legenstein, R., & Maass, W. (2020). A solution to the learning dilemma for recurrent networks of spiking neurons. Nature communications, 11(1), 3625.
Korcsak-Gorzo A, Stapmanns J, Espinoza Valverde JA, Dahmen D, van Albada SJ, Bolten M, Diesmann M. Event-based implementation of eligibility propagation (in preparation)
Co-authored-by: Jonas Stapmanns jonas.stapmanns@rwth-aachen.de
Co-authored-by: JesusEV espinozavalverd@uni-wuppertal.de