Strong Generalization and Efficiency in Neural Programs
This addresses the challenge of creating neural models that generalize to arbitrary input sizes and optimize for efficiency, setting a milestone in neural program induction, though it is incremental in combining imitation and reinforcement learning.
The paper tackles the problem of learning efficient algorithms that strongly generalize in neural program induction, achieving perfect sorting with O(n log n) complexity and outperforming hand-coded algorithms like quick sort in operations for unseen list sizes.
We study the problem of learning efficient algorithms that strongly generalize in the framework of neural program induction. By carefully designing the input / output interfaces of the neural model and through imitation, we are able to learn models that produce correct results for arbitrary input sizes, achieving strong generalization. Moreover, by using reinforcement learning, we optimize for program efficiency metrics, and discover new algorithms that surpass the teacher used in imitation. With this, our approach can learn to outperform custom-written solutions for a variety of problems, as we tested it on sorting, searching in ordered lists and the NP-complete 0/1 knapsack problem, which sets a notable milestone in the field of Neural Program Induction. As highlights, our learned model can perform sorting perfectly on any input data size we tested on, with $O(n log n)$ complexity, whilst outperforming hand-coded algorithms, including quick sort, in number of operations even for list sizes far beyond those seen during training.