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

Add association matrix learning rule (AML). #72

Merged
merged 1 commit into from May 24, 2018

Conversation

Projects
None yet
3 participants
@jgosmann
Member

jgosmann commented Apr 18, 2018

Adds the association matrix learning rule (AML). This learning rule allows to learn associations from cue vectors to target vectors in a one-shot fashion without catastrophic forgetting. An implementation is provided for the reference simulator and Nengo OCL. As far as I can tell, Nengo OCL does not provide a possibility to register custom plan_* functions. Thus, the OCL implementation adds a new AmlSimulator class inheriting nengo_ocl.Simulator.

I added a test. To run it with the OCL implemenation:

pytest nengo_extras/tests/test_learning_rules.py -k aml --plots --simulator nengo_extras.ocl.AmlSimulator --slow

Demonstration:
aml

More details on the learning rule will be in my forthcoming PhD thesis.

@Seanny123

This comment has been minimized.

Contributor

Seanny123 commented Apr 18, 2018

FYI, static tests are failing due to flake8 errors.

@jgosmann

This comment has been minimized.

Member

jgosmann commented May 22, 2018

It'd be nice to get this merge and a release. I am planning a tutorial on the learning rule during the summer school.

@tbekolay

This comment has been minimized.

Member

tbekolay commented May 22, 2018

I'll do this tomorrow 👍

@tbekolay

Test runs successfully for me, so looks good! I'll add the learning rule to the learning_rules.rst file in the docs as part of the merge.

I did have a small issue with the test taking forever, but it turned out it was because of how the plt fixture works when not actually doing plotting. The iteration over fig.axes would never stop, so I changed it to explicitly iterating over a list of the three axes.

@jgosmann

This comment has been minimized.

Member

jgosmann commented May 24, 2018

The iteration over fig.axes would never stop, so I changed it to explicitly iterating over a list of the three axes.

Maybe we also should fix the fixture? (But I'm fine with explicitly iterating over the axes here to have backwards compatibility.)

@tbekolay

This comment has been minimized.

Member

tbekolay commented May 24, 2018

Maybe we also should fix the fixture? (But I'm fine with explicitly iterating over the axes here to have backwards compatibility.)

Yeah, I'll make an issue for it in Nengo.

@tbekolay

This comment has been minimized.

Member

tbekolay commented May 24, 2018

nengo/nengo#1441 made, merging!

@tbekolay tbekolay merged commit 118a5ba into master May 24, 2018

1 check was pending

continuous-integration/travis-ci/push The Travis CI build is in progress
Details

@tbekolay tbekolay deleted the aml branch May 24, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment