raaka1 / 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.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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 .
Moreover, the accompanying video https://www.youtube.com/watch?v=GVe6kfJnRAw gives a concise overview of our approach.

This software runs in Torch. Type

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

About

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.

License:Other


Languages

Language:Lua 98.4%Language:Python 1.6%