作者:Scott Reed & Nando de Freitas

原文链接

神经网络程序解释器 (NPI;按字面意思应该翻译成神经程序员口译):学习表达和执行程序的循环复合神经网络。三个可学习组件:任务无关的循环内核,持续存在的键值对存储,以及一个领域相关的编码器,可以让单个 NPI 在多种不同的感知环境下运作并具有不同的承担特质。通过学习把低级程序组合起来表达高级程序,NPI 降低了样本复杂度,相比序列到序列的 LSTM 提高了泛化能力。程序的存储允许基于已有程序学习新的任务。NPI 也能利用环境 (比如带有读写指针的画写板) 来暂存计算的中间结果,降低了循环隐含单元长期记忆的负担。本工作中我们使用完全监督的执行踪迹来训练 NPI;每个程序有基于输入来调用中间子程序的示例序列。与其使用大量弱标签来训练,NPI 从少数丰富例子学习。我们展示这模型可以学习几种组合程序:加法,排序,3D 模型正则化。并且,单个 NPI 学会了执行这些程序以及所有 21 个附属子程序。