LearningSimpleAlgorithms
We present an approach for learning simple algorithms such as copying, multi-digit addition and single digit multiplication directly from examples. Our framework consists of a set of interfaces, accessed by a controller. Typical interfaces are 1-D tapes or 2-D grids that hold the input and output data. For the controller, we explore a range of neural network-based models which vary in their ability to abstract the underlying algorithm from training instances and generalize to test examples with many thousands of digits. The controller is trained using Q-learning with several enhancements and we show that the bottleneck is in the capabilities of the controller rather than in the search incurred by Q-learning.
Install / Use
/learn @facebookarchive/LearningSimpleAlgorithmsREADME
Learning Simple Algorithms from Examples
This is a framework to learn simple algorithms such as copying, multi-digit addition and single digit multiplication directly from examples. Our framework consists of a set of interfaces, accessed by a controller. Typical interfaces are 1-D tapes or 2-D grids that hold the input and output data. The paper can be found at: http://arxiv.org/abs/1511.07275 . <br /> Moreover, the accompanying video https://www.youtube.com/watch?v=GVe6kfJnRAw gives a concise overview of our approach.
This software runs in Torch. Type <br />
th main.lua
to train the model for the addition task.
The model generates traces of the intermediate solutions while training (in directory ./movie/). They can be displayed by calling:
python play.py
