前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【ICLR 2016最佳论文】DeepMind 开发 NPI,有望取代初级程序员(附下载)

【ICLR 2016最佳论文】DeepMind 开发 NPI,有望取代初级程序员(附下载)

作者头像
新智元
发布2018-03-22 11:29:38
9540
发布2018-03-22 11:29:38
举报
文章被收录于专栏:新智元

【新智元导读】特征学习和深度学习重要会议 ICLR 2016 最佳论文,DeepMind 团队开发了一个“神经编程解释器”(NPI),能自己学习并且编辑简单的程序,排序的泛化能力也比序列到序列的 LSTM 更高。机器,已经可以取代部分初级程序员的工作了。

  • 题目:神经程序解释器(Neural Programmer-Interpreters)
  • 作者:Scott Reed & Nando de Freitas,Google DeepMind

摘要

我们提出了一种神经编程解释器(Neural Programmer-Interpreter,NPI):它是一种递归性的合成神经网络,能学习对程序进行表征和执行。NPI 有3个拥有学习能力的部件:一是任务未知的递归内核,二是持续键值程序内存,三是基于特定领域的编码器,这个编码器能在多个感知上有差异的环境中让单一的 NPI 提供截然不同的功能。通过合成低层程序表达高层程序,NPI 减少了样本复杂性,同时比序列到序列的 LSTM 更容易泛化。通过在既有程序的基础上进行建构,程序内存能高效学习额外的任务。NPI 也可以利用环境(如具有读写指针的暂时存储器)缓存计算的中间结果,从而减轻递归隐藏单元的长期存储负担。研究中我们通过完全监督的执行追踪训练 NPI。每个程序都拥有受输入影响的直接子程序调用的实例序列。我们用少量但信息丰富的样本而非大量但信息含量低的标签训练 NPI。我们展示了我们的模型学习若干种合成程序的能力,这些程序包括加法、排序和对 3D 模型进行规范化转换。此外,单一 NPI 能学会执行这些程序以及所有 21 个关联子程序。

引言

人工智能的核心挑战之一是教会机器学习新的程序、从既有程序中快速地编写新程序,并自动在一定条件下执行这些程序以解决广泛种类的任务。在各种人工智能问题中,程序以不同的面貌出现,包括运动行为、图像转换、强化学习策略、经典算法和符号关系等。

我们开发了一种合成架构,它能学习如何表征和解释程序。我们把这个构架称为神经程序解释器(NPI)。核心模块是一个基于 LSTM 的序列模型,这个模型的输入包括一个可学习的程序嵌入、由调用程序传递的程序参数和对环境的特征表征。这个核心模块的输出包括,一个能指示接下来将调用哪个程序的键、一个经典算法程序的参数,以及一个能指示该程序是否该停止的标记。除了递归性内核外,NPI 构架还包括一个关于程序嵌入的可学习的键值内存。对于对程序的持续学习和重用来说,这种程序-内存是根本性的。图 1 和图 2 揭示了 NPI 在两个不同任务中的表现。

图 1:汽车 3D 模型的规范化转换的实例执行。这里的任务是移动摄像机以达到目标角度和高度。一个只读的暂时存储器中存放着目标状态(即角度 1,高度 2)。图像编码器是一个深层卷积网络(convnet),它通过便笺使用像素进行训练。【点击查看大图】

图 2:单数字加法的实例执行追踪。这里的任务是为前两行的指针位置的数字执行单数字加法。进位(第3行)和输出(第4行)随时被更新以反映加法过程。在每个时间步骤中(从便笺中的每个指针的角度)对环境的观察都被编码进了一个固定长度的向量。【点击查看大图】

我们在实验中表明,NPI 构架能够学习 21 个程序,包括加法、排序和对图像像素的轨迹规划等。重要的是,用一个在所有任务间共享相同参数的单一核心模型就能实现这些。不同的环境(例如图像、文本和便笺)可能要求特定的知觉模型或编码器来产生能被共同内核处理的特征,它们可能也要求环境专属的执行器。知觉模型和执行器都可以在训练 NPI 构架时从数据中学习到。

为了训练 NPI,我们使用了课程学习和基于实例执行追踪的监督。每个程序都拥有受输入影响的直接子程序调用的实例序列。

通过使用神经网络来表征子程序,并从数据中学习,该方法可以适用于那些涉及丰富知觉输入和不确定性的任务。我们可以设想两种提供监督的方法。按照第1种方法,像在对象识别、语音和机器翻译中那样,我们提供大量的标签实例。按照第2种方法,也就是本文中的方法,我们的目标是只提供很少的标签样本,但这些标签却包含丰富的信息,使模型能学到合成结构。虽然无监督学习和强化学习在知觉和运动控制中起着重要作用;但同时大量监督学习和课程学习,也能形成其他认知能力。这也是我们送孩子去上学的原因。

我们建造和训练模型的方法的优点是,学到的程序展现了较强的泛化能力。特别是训练程序对长达 20 个数字的序列进行排序之后,测试时程序能够对更长的序列进行排序。与此相对比,我们的实验表明,更标准的序列到序列 LSTM 只展现出了较弱的泛化能力(参见图6)。一个具有固定参数和学到的程序库,并且经过训练过的 NPI,既能够充当解释器,也能够充当编程器。作为解释器,它以程序嵌入和数据输入的方式获得输入,随后执行程序。作为编程器,它利用从新任务中获得的样本来产生新的程序嵌入,而这个新的程序嵌入可以被添加到程序库中。

图 6:NPI 与 序列到序列 LSTM 对不同长度的序列进行排序的准确率对比,最长序列含有20个数组。

  • 相关研究(略)
  • 模型建立(略)
  • 试验过程(略)

结论

我们证明了 NPI 能在差异巨大且功能不同的环境中学习编程。排序任务中我们证明 NPI 比序列到序列的 LSTM 泛化能力更高。我们也展示了一个拥有固定内核、经过训练的 NPI 能够在不遗忘已学到的程序的情况下,继续学习新的程序。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-05-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 新智元 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
机器翻译
机器翻译(Tencent Machine Translation,TMT)结合了神经机器翻译和统计机器翻译的优点,从大规模双语语料库自动学习翻译知识,实现从源语言文本到目标语言文本的自动翻译,目前可支持十余种语言的互译。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档