NEAILGMay 21, 2016

Programming with a Differentiable Forth Interpreter

arXiv:1605.06640v3155 citations
Originality Highly original
AI Analysis

This addresses the challenge of data scarcity for neural networks by enabling integration of programmatic knowledge, though it is incremental as it builds on existing differentiable programming concepts.

The paper tackles the problem of incorporating prior procedural knowledge into neural networks when training data is scarce, by introducing a differentiable Forth interpreter that allows training program behavior from input-output data, achieving state-of-the-art accuracy in natural language reasoning tasks.

Given that in practice training data is scarce for all but a small set of problems, a core question is how to incorporate prior knowledge into a model. In this paper, we consider the case of prior procedural knowledge for neural networks, such as knowing how a program should traverse a sequence, but not what local actions should be performed at each step. To this end, we present an end-to-end differentiable interpreter for the programming language Forth which enables programmers to write program sketches with slots that can be filled with behaviour trained from program input-output data. We can optimise this behaviour directly through gradient descent techniques on user-specified objectives, and also integrate the program into any larger neural computation graph. We show empirically that our interpreter is able to effectively leverage different levels of prior program structure and learn complex behaviours such as sequence sorting and addition. When connected to outputs of an LSTM and trained jointly, our interpreter achieves state-of-the-art accuracy for end-to-end reasoning about quantities expressed in natural language stories.

Code Implementations1 repo
Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes