Neural Program Synthesis By Self-Learning
  Neural inductive program synthesis is a task generating instructions that can
produce desired outputs from given inputs. In this paper, we focus on the
generation of a chunk of assembly code that can be executed to match a state
change inside the CPU and RAM. We develop a neural program synthesis algorithm,
AutoAssemblet, learned via self-learning reinforcement learning that explores
the large code space efficiently. Policy networks and value networks are
learned to reduce the breadth and depth of the Monte Carlo Tree Search,
resulting in better synthesis performance. We also propose an effective
multi-entropy policy sampling technique to alleviate online update
correlations. We apply AutoAssemblet to basic programming tasks and show
significant higher success rates compared to several competing baselines.
