nhrlmodel icon indicating copy to clipboard operation
nhrlmodel copied to clipboard

Neural model of hierarchical reinforcement learning

################################################## Neural model of hierarchical reinforcement learning ##################################################

This code instantiates the model described in

Rasmussen, D., Voelker, A., & Eliasmith, C. (2017). A neural model of hierarchical reinforcement learning. PLoS ONE

Rasmussen, D. (2014). Hierarchical reinforcement learning in a biologically plausible neural architecture. University of Waterloo.

Rasmussen, D., & Eliasmith, C. (2014). A neural model of hierarchical reinforcement learning. Proceedings of the 36th Annual Conference of the Cognitive Science Society

Rasmussen, D., & Eliasmith, C. (2013). A neural reinforcement learning model for tasks with unknown time delays. Proceedings of the 35th Annual Conference of the Cognitive Science Society

Setup

This code relies on Nengo version 1.4, which can be downloaded here <http://ctnsrv.uwaterloo.ca:8080/jenkins/job/Nengo/lastSuccessfulBuild/artifact/nengo-latest.zip>_. Extract Nengo into a location of your choice, which we will call <nengo>.

Then check out this repository into a different folder <nhrl> via

.. code-block:: bash

cd nhrl
git clone https://github.com/drasmuss/nhrlmodel.git

The model can then be run through Nengo:

.. code-block:: bash

<nengo>/nengo-cl <nhrl>/hrlproject/misc/run.py delivery

where delivery can be swapped for various keywords to run the model in different environments (see run.py).

Note

The model is written in Python, and uses Jython to interact with the Java-based Nengo 1.4. Hence the code style is a bit of a mix of Java and Python conventions depending on where the code originated, which the reader will have to pardon.