Neural Programmer-Interpreters
arXiv:1511.06279
Abstract
We propose the neural programmer-interpreter (NPI): a recurrent and compositional neural network that learns to represent and execute programs. NPI has three learnable components: a task-agnostic recurrent core, a persistent key-value program memory, and domain-specific encoders that enable a single NPI to operate in multiple perceptually diverse environments with distinct affordances. By learning to compose lower-level programs to express higher-level programs, NPI reduces sample complexity and increases generalization ability compared to sequence-to-sequence LSTMs. The program memory allows efficient learning of additional tasks by building on existing programs. NPI can also harness the environment (e.g. a scratch pad with read-write pointers) to cache intermediate results of computation, lessening the long-term memory burden on recurrent hidden units. In this work we train the NPI with fully-supervised execution traces; each program has example sequences of calls to the immediate subprograms conditioned on the input. Rather than training on a huge number of relatively weak labels, NPI learns from a small number of rich examples. We demonstrate the capability of our model to learn several types of compositional programs: addition, sorting, and canonicalizing 3D models. Furthermore, a single NPI learns to execute these programs and all 21 associated subprograms.
ICLR 2016 conference submission
References in corpus (7)
- Sequence to Sequence Learning with Neural Networks
- Learning to Execute
- Neural GPUs Learn Algorithms
- Reinforcement Learning Neural Turing Machines - Revised
- Neural Programmer: Inducing Latent Programs with Gradient Descent
- Learning Simple Algorithms from Examples
- Building Program Vector Representations for Deep Learning
Cited by in corpus (89)
- Deep Reinforcement Learning: An Overview
- CodeXGLUE: A Machine Learning Benchmark Dataset for Code Understanding and Generation
- Adaptive Computation Time for Recurrent Neural Networks
- Modular Multitask Reinforcement Learning with Policy Sketches
- Learning to Optimize
- Relational Neural Expectation Maximization: Unsupervised Discovery of Objects and their Interactions
- Born to Learn: the Inspiration, Progress, and Future of Evolved Plastic Artificial Neural Networks
- Programming with a Differentiable Forth Interpreter
- Learning to Infer and Execute 3D Shape Programs
- A Semantic Loss Function for Deep Learning with Symbolic Knowledge
- Neural Programmer: Inducing Latent Programs with Gradient Descent
- Dynamic Neural Program Embedding for Program Repair
- Learning Continuous Semantic Representations of Symbolic Expressions
- Compositional generalization through meta sequence-to-sequence learning
- Learn&Fuzz: Machine Learning for Input Fuzzing
- Neural Symbolic Machines: Learning Semantic Parsers on Freebase with Weak Supervision
- Generative Temporal Models with Memory
- Automated Curriculum Learning for Neural Networks
- A Neural Transducer
- Online Continual Learning on Sequences
- Meta-learning of Sequential Strategies
- AMPNet: Asynchronous Model-Parallel Training for Dynamic Neural Networks
- Learning Efficient Algorithms with Hierarchical Attentive Memory
- Improving the Neural GPU Architecture for Algorithm Learning
- A Comprehensive Review of State-of-The-Art Methods for Java Code Generation from Natural Language Text
- Learning Compositional Neural Programs with Recursive Tree Search and Planning
- Learning compositionally through attentive guidance
- Strong Generalization and Efficiency in Neural Programs
- Neural Machine Translation for Query Construction and Composition
- An Introduction to Deep Learning for the Physical Layer
- Coordination Among Neural Modules Through a Shared Global Workspace
- Estimate and Replace: A Novel Approach to Integrating Deep Neural Networks with Existing Applications
- Neural Program Search: Solving Programming Tasks from Description and Examples
- Learning Scalable and Precise Representation of Program Semantics
- Show Your Work: Scratchpads for Intermediate Computation with Language Models
- Neural Shuffle-Exchange Networks -- Sequence Processing in O(n log n) Time
- Fact-based Text Editing
- Object Files and Schemata: Factorizing Declarative and Procedural Knowledge in Dynamical Systems
- Transforming task representations to perform novel tasks
- Learning abstract structure for drawing by efficient motor program induction
- Discrete-Valued Neural Communication
- Inferring Logical Forms From Denotations
- Neural network gradient-based learning of black-box function interfaces
- Why Build an Assistant in Minecraft?
- Learning to Synthesize Programs as Interpretable and Generalizable Policies
- Can Neural Networks Understand Logical Entailment?
- Learning to Execute Programs with Instruction Pointer Attention Graph Neural Networks
- Robot Program Parameter Inference via Differentiable Shadow Program Inversion
- Transformers with Competitive Ensembles of Independent Mechanisms
- Disentangled Representations in Neural Models
- Compositional Generalization via Neural-Symbolic Stack Machines
- Neutaint: Efficient Dynamic Taint Analysis with Neural Networks
- AutoCorrect: Deep Inductive Alignment of Noisy Geometric Annotations
- Controllable Text Simplification with Explicit Paraphrasing
- A Multi-Type Multi-Span Network for Reading Comprehension that Requires Discrete Reasoning
- Synthesizing Action Sequences for Modifying Model Decisions
- REAS: Combining Numerical Optimization with SAT Solving
- Learning Differentiable Programs with Admissible Neural Heuristics
- Compositional Generalization with Tree Stack Memory Units
- Learning Task-General Representations with Generative Neuro-Symbolic Modeling
- Genetic algorithms with DNN-based trainable crossover as an example of partial specialization of general search
- NEUZZ: Efficient Fuzzing with Neural Program Smoothing
- Neural CRF Model for Sentence Alignment in Text Simplification
- Predicting Missing Information of Key Aspects in Vulnerability Reports
- REALab: An Embedded Perspective on Tampering
- Learning Fitness Functions for Machine Programming
- Modeling Past and Future for Neural Machine Translation
- Learning an Executable Neural Semantic Parser
- Learning Compositional Neural Programs for Continuous Control
- Avoiding Tampering Incentives in Deep RL via Decoupled Approval
- Operational Calculus for Differentiable Programming
- Applications of Probabilistic Programming (Master's thesis, 2015)
- Neural Program Synthesis By Self-Learning
- Explaining Transition Systems through Program Induction
- Using Program Induction to Interpret Transition System Dynamics
- Amanuensis: The Programmer's Apprentice
- Hierarchical Variational Imitation Learning of Control Programs
- pix2rule: End-to-end Neuro-symbolic Rule Learning
- Understanding in Artificial Intelligence
- Meta-Learning an Inference Algorithm for Probabilistic Programs
- An Empirical Comparison of Syllabuses for Curriculum Learning
- Learning Solving Procedure for Artificial Neural Network
- Progress Extrapolating Algorithmic Learning to Arbitrary Sequence Lengths
- Neural Programming by Example
- Neural Architecture for Question Answering Using a Knowledge Graph and Web Corpus
- Type-driven Neural Programming by Example
- Reinforcement Learning of Implicit and Explicit Control Flow in Instructions
- Sequential Coordination of Deep Models for Learning Visual Arithmetic
- Exploiting Deep Learning for Secure Transmission in an Underlay Cognitive Radio Network