Neural Programmer: Inducing Latent Programs with Gradient Descent
Deep neural networks have achieved impressive supervised classification performance in many tasks including image recognition, speech recognition, and sequence to sequence learning. However, this success has not been translated to applications like question answering that may involve complex arithmetic and logic reasoning. A major limitation of these models is in their inability to learn even simple arithmetic and logic operations. For example, it has been shown that neural networks fail to learn to add two binary numbers reliably. In this work, we propose Neural Programmer, an end-to-end differentiable neural network augmented with a small set of basic arithmetic and logic operations. Neural Programmer can call these augmented operations over several steps, thereby inducing compositional programs that are more complex than the built-in operations. The model learns from a weak supervision signal which is the result of execution of the correct program, hence it does not require expensive annotation of the correct program itself. The decisions of what operations to call, and what data segments to apply to are inferred by Neural Programmer. Such decisions, during training, are done in a differentiable fashion so that the entire network can be trained jointly by gradient descent. We find that training the model is difficult, but it can be greatly improved by adding random noise to the gradient. On a fairly complex synthetic table-comprehension dataset, traditional recurrent networks and attentional models perform poorly while Neural Programmer typically obtains nearly perfect accuracy.
Code (0)
등록된 구현이 없습니다.
Tasks
Question Answeringspeech-recognitionSpeech RecognitionSimilar Papers 제목 키워드 기반
Automatic Post-Editing of Machine Translation: A Neural Programmer-Interpreter Approach
Automated Post-Editing (PE) is the task of automatically correct common and repetitive errors found in machine translation (MT) output. In this paper, we present a neural programmer-interpreter approach to this task, res…
Automatic Post-EditingMachine TranslationTranslationNeurogenetic Programming Framework for Explainable Reinforcement Learning
Automatic programming, the task of generating computer programs compliant with a specification without a human developer, is usually tackled either via genetic programming methods based on mutation and recombination of p…
OpenAI Gymreinforcement-learningReinforcement LearningReinforcement Learning (RL)Latent Programmer: Discrete Latent Codes for Program Synthesis
In many sequence learning tasks, such as program synthesis and document summarization, a key problem is searching over a large space of possible output sequences. We propose to learn representations of the outputs that a…
Document SummarizationProgram SynthesisSelf-Supervised LearningNon-Programmers Can Label Programs Indirectly via Active Examples: A Case Study with Text-to-SQL
Can non-programmers annotate natural language utterances with complex programs that represent their meaning? We introduce APEL, a framework in which non-programmers select among candidate programs generated by a seed sem…
Bayesian InferenceText to SQLText-To-SQLImproving the Universality and Learnability of Neural Programmer-Interpreters with Combinator Abstraction
To overcome the limitations of Neural Programmer-Interpreters (NPI) in its universality and learnability, we propose the incorporation of combinator abstraction into neural programing and a new NPI architecture to suppor…
Reinforcement Learning