[ICLR2017] Deepcoder: Learning to write programs
作者:Matej Balog, Alexander L.Gaunt, Marc Brockschmidt, Sebastian Nowozin, Daniel Tarlow
任务描述
IPS 归纳程序综合,给定含有多个输入输出对的集合,生成满足这些输入输出的最短的程序。
主要思想
- 用神经网络预测程序中可能使用到的函数
- 用这些函数穷举搜索程序
方法流程
1. 定义特定领域语言(DSL)
相当于定义一个语法规则
在上面的例子中,程序一共有五条语句,k为输入int整数,b为输入int型数组,c为对b排序的结果,d为取c的前k个值,e为对d求和。
论文中定义的DSL包含的函数如下:
Overall, our DSL contains the first-order functions HEAD , LAST , TAKE , DROP , ACCESS , MINIMUM , MAXIMUM , REVERSE , SORT , SUM , and the higher-order functions MAP , FILTER , COUNT, ZIPWITH , SCANL1. Higher-