DeepMind可微分神经计算机-论文中文解读

又是一篇deepmind发表在nature上的文章,还记得前面2篇吗?一篇是DQN,一篇讲AlphaGo。发表在nature上的论文格式不太一样,正文只是简单描述一下思路和成果。附录里面才是主要的技术细节。今天只探讨一下正文里面的内容(推荐先了解论文Neural Turing machines,这两篇论文的作者都是一波人)。后续有机会继续看看技术细节。

ANN适合处理感知数据、序列学习和强化学习,但是由于缺少额外的存储空间,在处理长时间的变量和数据结构时候比较受限。本文探讨了一种a differentiable neural computer(DNC),NN网络可以从额外的内存读写数据。就像传统的计算机,可以在内存中存储和操作各种复杂的数据结构,不同的是,它是通过样本来学习这些操作。通过有监督学习,我们示范了DNC可以学会回答必须经过推理推断的复杂问题;DNC可以学会找到图的最短路径,可以应用到交通图和家谱树中。通过强化学习,DNC可以完成a moving blocks puzzle的游戏,总起来讲,DNC可以完成之前没有额外存储的神经网络很难完成的复杂的,结构化的任务。

在ANN中,计算和存储都是通过网络的参数和结构混合在一起的,当随着任务对存储的增长,网络是无法分配新的存储的,也没办法学会独立于数据参数的算法。一个DNC网络就是一个神经网络结合额外的存储矩阵。DNC的架构和其他神经网络的不同在于存储是可以选择性的进行读写,可以通过迭代修改存储内容。而整个系统是可微的,因此可以通过end to end的GD方法进行训练、通过目标导向来学会操作和组织存储。

传统的计算机是通过地址来获取存储内容的,DNC是用可微的attention机制来定义存储空间为N*W的矩阵中的位置的分布,这些分布就是权重参数。代表着每个位置在读或者写中的参与程度。读向量r通过对记忆矩阵M的一个读权值操作wr返回(记忆位置的权值累加和):

类比,写操作符使用一个写权值wW首先擦除向量e,然后加和一个向量v:

系统示意图如下:

a:一个rnn网络控制器收到数据,然后进行输出。b, c:controller也输出参数化的一个写header(图上绿色)和多个读header(图上分别表示蓝色和粉色)。写header定义了一个写和一个擦向量。读header用gate来区分不同的模式,基于内容查找的用关键字'C',或者按照顺序前'F'或者后'B'。d:useage vector记录着那些位置已经被使用了,a temporal link matrix记录着写入的位置的顺序。

head有三种可微的attention模式。第一种是基于内容查找的,controller生成的关键字向量根据相似度和存储空间的内容进行比较,相似度的程度决定了读和写header针对某一存储空间的内容进行相应操作的权重。还有重要的一点,一个关键字部分匹配也可以对这个存储进行操作,这样就有一种机制使得读回来的数据能带着key中没有的信息。这应该就是实现通用的key-value机制吧。

第二种attention模式是用N*N的矩阵L记录连续的写的存储空间的位置,比如如果j写完后下一个位置是i,那么L[i, j]就是接近1,否者就接近0。因此DNC从最底层就可以拥有能力重现原来写的顺序,即使不是相邻的时间step写的。

第三种机制是分配内存的能力。每一块位置都用0和1标示是否使用,权重参数可以挑出没有使用的位置给写header。这个权重每写一次自动增加,每读一次自动减少,这样如果内存不再使用了,controller就重新分配。分配机制独立于大小和内容,这样的话换大的存储空间的时候不需要重新训练。

attention的模式是受计算流程驱动的。基于内容的方式是和数据结构结合在一起的。Temporal link是的对输入顺序的复现。分配机制能利用空闲的空间。有意思的是DNC的存储模式跟哺乳动物的海马体功能的相似。我们人类的记忆模式、联想机制以及按照时间发生的顺序回忆事情都跟DNC的模式很相似。

(更好的神经网络信息存储方式可参考神经网络里的信息存储在哪里?如何更好的存储和提取?可以改进DNC的信息提取存储性能。)

我们首先测试了DNC在问答系统上的表现,为了和NN的效果比较,我们用了bAbI数据集,包括了20类的根据上下文的复合问题。这个数据集包含了一些小故事以及可以根据这些故事来推论回答的问题。比如“John is in the playground. John picked up the football.”然后问“Where is the football?”,答案是“play- ground”,比如“Sheep are afraid of wolves. Gertrude is a sheep. Mice are afraid of cats. What is Gertrude afraid of?” (答案是, “wolves”)。DNC网络在每个问题类型(20个)10000个样本的训练后,平均错误率3.8%和两种类型问题失败(错误率超过5%),之前最好的测试结果是7.5%和6中类型的问题失败。DNC的效果也超过LSTM。

bAbi的问题都是用自然语言表述的,但是很多问题都可以转换成图,所以我们第二个测试是从随机生成的图上进行推理。每个输入的数据包括两个节点标签和一条边的标签,这样我们通过这些随机的标签生成训练的图,定义了三种查询:‘traversal’, ‘shortest path’ and ‘inference’。再用curriculumlearning的方式不断增加复杂性进行训练。最后我们用生活中的两个图进行测试,一个是伦敦地铁图,一个是家谱图。如图:

DNC达到了98.8%的正确率,而LSTM只有37%。

随后我们测试了用DNC来进行逻辑规划的任务,玩a block puzzle game的游戏,如下图:

这是通过强化学习来训练的。DNC利用存储空间保存了迭代过程目标,这样它就能执行任何一个选定的目标,我们发现给定一个目标,经过要经过很多步骤,第一步也会从存储空间中找出来,这意味着DNC在执行之前就把它的决策写入到存储中。意味这DNC学会了规划。

总结一下,这三个任务证明了DNC能够找到复杂数据结构之间的联系,并且把这种联系反馈到存储中。而通过强化学习也能有计划有步骤利用存储反映规划。

这些任务都需要DNC能够找到隐藏的领域知识的规律,而且能够在存储中通过变量反映这些规律。我们想要解决的很多任务都需要这样认知代理。

我们的测试还是集中相对比较小规模的合成任务上,对于这类任务,512条存储空间足够了。如果要应对真实世界的问题,可能需要成千上万的存储空间来保存controller学到的信息,这类系统应该不改变网络参数的情况下通过大量的数据就能学习到知识。我们目标就是把DNC演进成一个单一通用的能够用于场景理解,语言理解和认知图谱的模型。

ps,后续希望继续探讨一下技术细节。

本文由zdx3578推荐。

原文发布于微信公众号 - CreateAMind(createamind)

原文发表时间:2016-11-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器之心

业界 | 微软提出基于程序图简化程序分析,直接从源代码中学习

1743
来自专栏华章科技

你真的懂数据分析吗?一文读懂数据分析的流程、基本方法和实践

导读:无论你的工作内容是什么,掌握一定的数据分析能力,都可以帮你更好的认识世界,更好的提升工作效率。数据分析除了包含传统意义上的统计分析之外,也包含寻找有效特征...

1372
来自专栏深度学习与数据挖掘实战

干货|社区发现算法FastUnfolding的GraphX实现

现实生活中存在各种各样的网络,诸如人际关系网、交易网、运输网等等。对这些网络进行社区发现具有极大的意义,如在人际关系网中,可以发现出具有不同兴趣、背景的社会团体...

3083
来自专栏人工智能头条

百度Deep Image论文被质疑过度使用ImageNet评价服务器【英】

1655
来自专栏AI研习社

告别选择困难症,我来带你剖析这些深度学习框架基本原理

无论你喜欢或不喜欢,深度学习就在这里等着你来学习,伴随着技术淘金热而来的过多的可选项,让新手望而生畏。

1793
来自专栏AI科技大本营的专栏

用JavaScript创建神经网络的有趣教程,一定要让你知道!

【导读】本文中作者为初学者解释了如何使用 JavaScript 来搭建一个神经网络。不用担心,这不是一份深入介绍隐藏输入层、激励函数或如何使用 TensorFl...

1012
来自专栏人工智能头条

饿了么推荐系统:从0到1

2745
来自专栏携程技术中心

个性化推荐沙龙 | 饿了么推荐系统的从0到1(含视频)

本文来自陈一村在携程个性化推荐与人工智能Meetup上的分享。 陈一村 ,饿了么数据运营部资深算法工程师。2016年加入饿了么,现从事大数据挖掘和算法相关工作,...

4208
来自专栏WeTest质量开放平台团队的专栏

游戏人工智能 读书笔记 (四) AI算法简介——Ad-Hoc 行为编程

原文链接:https://wetest.qq.com/lab/view/427.html

1472
来自专栏Android 开发者

Android Smart Linkify 支持机器学习

上半周,我们发布了 Android 9 Pie,这是 Android 的最新版本,它的机器学习应用使您的手机更简单易用。 Android 9 中有一项功能是 S...

1473

扫码关注云+社区

领取腾讯云代金券