河南梦之网网络科技有限公司
河南梦之网科技出品
扫描关注梦之网科技微信公众账号

扫小程序码联系客服

最前沿:图文结合详解深度学习Memory & Attention

梦之网科技2016-12-13经验之谈

本文由北邮@爱可可-爱生活 老师推荐,阿里云云栖社区组织翻译。

以下为译文:

 13f3a6549dc4230c911e71bf3419780d760f523d

深度学习中的记忆和注意力前沿

作者 Stephen Merity

0529af532dd46b350bf54c5b81c29e11d7940015 

当你有好的数据集时候,深度学习在图像和文字分类方面可以给出高的精度,这是由于大数据可以很好的训练自己的分类器,而且几乎没有用到经验知识。

0cb015edb81a07a51c0d2d8f1d4f53bfb3b92640 

对于低年级学生而言,也可以很容易获得好的分类器,图中显示的是给TrashCam创建的一个定制视觉分类器[Trash,Recycle,Compost],精度能够达到90%

dff437e8f73684de911c6bf43bb303d20b22b8be 

图中是颅内出血的检测,该分类器是由MM大学的 Caiming Xiong,Kai Sheng Tai等人创建,能够很好的识别颅内出血的情况

a0dac6fd2de045e1c12520602278840aa1df8f3c 

深度学习和ImageNet挑战,在2012年的挑战中,AlexNet网络实现了16.4%的错误率,而最好的第二名网络模型(non CNN)错误率为26.2%,领先第二名接近10%。

54b5496ebe32ac98462286311904aaaf85dea012

特别注意到,人的识别错误率为5.1%

0fd096079eeffe3849d66639d94793630b32cf19  

取得这么好的原因很大一部分归功于硬件的发展,从图可以看出,AlexNet网络训练了20个迭代,是通过GPU联合Cudnn加速训练的。

a556056a85f7112e86e12fcc0757fc945388bb30 

但也不要将深度学习应用到任何地方,在深度学习中,结构工程师是未来新的工程师;这是机器学习,不是魔法。

5298105482c26ddd85df42cbd4f6c38374e91a0b

除了分类之外,可以进行图片内容识别,常用的数据库有VAQ数据库;从图中看到,识别的是一个人在雪地里穿着背着双肩包;

4839b7d147ee3bfd49c975e0f6b6d8e4f663b554 

比如识别口味,上传一张照片,然后分析该饮料是哪种口味。如图所示,分析出来的口味有五种,Smoothie、Lassi、Milkshake、Cocktail以及Yogurt。其中为Smoothie口味的可能性为75%,Lassi口味的可能性为21%,Milkshake口味的可能性为1%,其它两种口味的概率低于1%;    

9401bfa8c245544533647e645bc2155889963c19 

自动回答相关问题:图片中有人吗,回答是没有;图片是什么时候拍摄,回答是白天;图片中饮料类型,回答是smoothie等

b31b450eebf11789a8e73dbc4ff0aa9532e0232a 

自动识别:从图中看出,Visual Gennome模型可以识别图中的物体与活动并针对不同问题的回答,比如河流在哪里,回答是在桥下;这座拱桥有几个拱,回答是两个等。

336da9daea7c8f18e166adc1b28d6a8e171b31d8 

Facebook的 bAbl 数据集是将几种问题回答任务放在一起,该数据集中提取出来的片段如图所示,可以根据句子回答相应的问题。

d396362c548c115379fa3d9715260f56f19646e0 

人类问答过程

想象下我给你一篇文章或一幅图片,并要求你记住它,之后将其拿走并问你一些问题,及时你再聪明,你也将会获得一个糟糕的分数。这是因为你不能在工作的记忆中存储任何东西;没有一个问题是针对你的关注点的,你关注在一些不重要的细节上是一种浪费

最佳情况:给你一个输入数据,然后问你一个问题,你回答的时候允许尽可能多的扫视数据。

b770c67204c51a47a106ee257bf58cabe7952d7b 

考虑信息瓶颈

你的模型是在哪里被强制使用压缩表示?更重要的是,使用后效果是不是很好?

7b3dc581d7626dad531af6b16aff22f3f707f842 

神经网络,压缩,这些术语我们之前有没有听到过?

98a27a9c9660f7754e9728e5b3b590a6b9ef40af 

发誓没有引出争议或者是要求风险投资;数字资源的边缘信息送入流水线服务中,中央数据存储与神经网络中的机器学习相互交换数据,后端提供相应的服务。

d4be13029d4a8eba7d613991bf77f2904ba04c29e2a7ea2a8c8fcde5875cb7d261bdf16ea8a39661 

图中是一个真实的世界,没有人正在做CNN压缩。

93f27f6def430f109c39544ccba6e595a036e2de 

除了Magic Pony在做CNN压缩外。MagicPony由帝国理工学院(Imperial College London)几位研究生创立,主要业务是通过大规模神经网络处理视觉信息,特别的地方在于,通过部分无监督学习的方式,基于以前的训练来自行产生图像。简单的说,就在处理过大量碎片化的视频片段之后,算法能够自动生成视频来进行补充,或者增强像素化视频游戏图像的解析度。

acfdffac1b21085d464c07d712e72fae6809a2d2 

两幅图片来自视频流,左右图像是相同的比特率,而右图比左图稍微清晰些。

92288b31390924dfdcb5a6878de3e0886b238660 

现在是bird+Magic Pony,原因是Twitter收购了Magic Pony。这是鉴于Twitter在视频直播方面的巨大资金投入,以及处理这些视频所需的海量储存与计算设备投入

91e8f2fe564ae19b5db393e77d0085d972721876 

从压缩的角度考虑神经网络

e9c1800810b31bb8eb2ff15437df4f6b49e37cb3 

比如文本向量,将“dog”转化为100维向量;

6d4e779629f74dea082568a5e77ce077f112601914a80586608e85675f6b4716d30776f714a913a8

8781c17d49eff172a0becf92b6da11860de8cf75

 

转化为100维向量的效果如图所示

b6159eff762d5e0161b97532a7acfcbe36d92fa6 

Word2vec 是 Google 在 2013 年年中开源的一款将词表征为实数值向量的高效工具其利用深度学习的思想,可以通过训练把对文本内容的处理简化为 维向量空间中的向量运算,而向量空间上的相似度可以用来表示文本语义上的相似度。Word2vec输出的词向量可以被用来做很多 NLP 相关的工作,比如聚类、找同义词、词性分析等等。如果换个思路,把词当做特征,那么Word2vec就可以把特征映射到 K 维向量空间,可以为文本数据寻求更加深层次的特征表示文本向量通过word2vec模型,可以识别句子中含“dog”的位置。

c927d9212c4f0c39d993ddeed57b5f8007847490

  a723e0fa4c14a9473f1173d630bc17b91e870fe1

CBOW与skipgram是word2vec中的核心概率之一,两个模型都是以Huffman树作为基础的。前者是给出句子,来猜测句子中空的内容;而skip-gram的输入是当前词的词向量,而输出是周围词的词向量。也就是说,通过当前词来预测周围的词。

888462e0c74235131015cc2510ba91d238c87c57

9e1cda45ba27523daa1bb37d0f0075df6dd7a19b 

文本N维向量在神经网络中可以看作是隐层之间的连接权重值;

38b32c35a480570722d53ec2d54bc9c46945a47a 

在这里压缩是有意义的(通用化)

英国和澳大利亚的颜色是用color表示,而美国则是使用colour表示;

069edbbd77607c0dd155a5b065b848a1ed7ee86f 

动词、单复数等问题

6ac16b0d33606ea18dc55edc01f02ba3bf96ef25 

通过它周围的单词意思,你可以知道这个单词,

fca7abd36f20e2c55f1b4c58979b789243351dd56d6424a8a129227e776353148754ece9154f9c25 

 

上面两幅图均来自GloVe的示例图片,GloVe与word2vec不同,但是基本概念相似,是一种无监督学习算法获取向量表示的单词

ead938826ae3c0e1b9ab7b54c4ecc9824ba0449a44548897a89a4b9ff042aba7267e9351dbf48de7

 

fdf795c1599848284d7320993334ed59514104273961f9c902a1e3a5d6a4c9693ec7193d599d9ef2 

 

循环神经网络(RNN

RNNs之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐藏层之间的节点不再无连接而是有连接的,并且隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出。

因此有 25fd45c5e69680987f1069275c33710f8af559d4

一次RNN消耗会生成一个序列字母、文本等

RNN是根据现存的R隐层状态h和循环输入x更新内在状态的;

3af544a4a42e4b8df5b2368e282b50172c7ee2b8

如果你听过GRU网络或者LSTM,这两种网络较RNN而言设计得更加精密,但只需要考虑RNN更新公式

25fd45c5e69680987f1069275c33710f8af559d4 

d6331f9945817d6abb4eba7bdb0afedcaf544db6

神经元机器翻译通过联合学习以便进行调整和翻译。从图中可以看到,随着句子长度的增加,刚开始时候BLEU分数是逐渐上升的,但超过一定长度后下降得很快,这说明,神经元机器翻译所适合的句子长度不宜较长。

b46d6026672059b00a13f51f0e69730eff9901b9 

神经元机器翻译

Quora是一个问答SNS网站,由Facebook前雇员查理·切沃(Charlie Cheever)和亚当·安捷罗(Adam D' Angelo)于2009年6月创办。该网站需要用户使用真实名字注册,而不是一个网名(账户名);并且游客不愿意登陆或使用小型文本文件的话必须绕路才能使用该网址。

def227382d2cc3c4a095e583f791cf5e44c36cd2 

2c727ae37397b284ed68e7c720dccc87312a9a71 

注意力与记忆

在每一时间步都会保存隐藏状态(比如,读了“I”、“think”、“...”);在之后查询相关事情的时候,可以通过之前我们所关注的内容得到。当想到合适部分时,注意力允许我们概括感兴趣的区域。

98a1e7010e8a4e187ccb163ab721f19fc6d16e97 

European Economic Area与zone economique europeenne意思等价 

5ec2df1a822730732a74b7e9fbd850f4c76c8e22 

针对动态记忆网络的问答模型

1. 针对QA模块化和弹性的深度学习框架;

2. 能够处理宽范围的任务以及输入格式的能力;

3. 甚至能够针对一般的自然语言处理任务使用(比如非问答、感情、翻译等);

0fab8c6ff82ebfffaaa58dc073c1bec6dd430d42

相关的注意力/记忆工作

1. 序列到序列模型是由谷歌研究员Sutskever等人在2014年提出,该模型是将目标序列排列成源序列顺序形式那样;

2. 神经图灵机模型是由Graves等人在2014年提出,该模型主要包含两个基本组成部分:神经网络控制器和记忆库;

3  学习无限的转换模型是由Grefenstette在2015年提出,该模型的性能优于深度RNN模型;

4. 结构记忆感知图灵机模型是由WeiZhang在2015年提出,该模型提出了几种不同结构的NTM内存,其中的两种结构能够导致更好的收敛;

5. 记忆网络模型是由Weston等人在2015年提出,该模型能够实现长期记忆,并且实现如何从长期记忆中读取和写入,此外还加入了推理功能;

6. 端到端的记忆网络模型是由Sukhbaater等人在2015年提出,该模型让记忆网络端到端地进行训练,不考虑任何中间过程。

5447c9787ab4b032e92103a2d1b00904f2783688 

针对动态记忆网络的问答模型

1. 模块化以及灵活的深度学习框架;

2. 有能力处理宽范围的任务和输入格式;

3. 甚至能用来处理一般的NLP任务;

e17dabcfbb0f5ddc78392c757d16cb75e3f4993d

输入模块:该模块根据输入产生有序列表的事实,并且可以增加这些事实的数量或者维数,输入融合层(双向GRU)注入潜在信息并允许事实之间相互作用。

68d9149ea228ae493206e4797d92521562fa1026 

情景记忆模块是由潜在多个通道的三部分组成,分别为注意力门的计算、注意力机制以及记忆更新;

a52736f13cebcf105131ce734f2f74d507b603c6 

软注意力机制

给定注意力门限,现在想要从输入事实中提取出上下文向量,如果门限值是通过softmax,上下文向量是输入事实的权重总和;

问题:潜在的求和损失以及顺序信息

65edc7412699e72cf1ca339de38c90a9c847a26a 

计算注意力门限

每个事实接受一个大小为[0,1]之间的注意力门限值,该值是通过分析[事实、疑问以及情景记忆]得到,通过在注意力值上使用softmax强制性执行稀疏。

10edb3dffe313d68c7f5546efba2d1dc68b4d5bf6b01d6b2eb60a7ba14ecd1abe1d1cdaa6c322a0d 

注意力GRU机制

如果修改GRU,我们能够通过图中式子将信息从注意力门限中注入,通过激活门限g代替更新门限u,更新门限能够利用好问题和记忆。

fd35d1ea43a6fcab1fb3f80c026fd4dd70c762fe 

结果

关注三个实验,分别为文本、视觉以及注意力可视化;

3d41adfc6b32c263eb618a0eff5662c2ac38fa57 

动态记忆网络概览

该框架由Semantic memory模块、Input模块、Episode memory模块、以及Answer模块和question模块组成,首先从Input模块接受未加工的输入,之后生成问题的表示,再将问题以及显性基础知识一起传送给Episode memory模块,该模块会推理得到一个回答。

36f5a9d234d2a2fd65762865201f43a023fe9c95 

在上下文问答中的准确率(bAbI 10k数据集),可以从表格中看到,DMN+模型的平均错误率为2.8%,远小于E2E模型的4.2%;任务失败(错误率大于5%)次数为1,而E2E模型的次数为3。

c5de4d8b50d39df6e2e62bea93ab65b00ce92a8f 

视觉问题回答的精确度

如图所示,可以根据图片中的内容回答相关问题,比如图中公交车的主要颜色,回答是蓝色等。

61eb675ae4db97fe655aeaf296ace965dc4a8cd5 

VQA test-dev和test-standard有如下几人提出的标准:

2015年有Antol、ACK Wu、iBOWIMG -Zhou、DPPnet-Noh以及SAN-Yang等人;2016年有D-NMN-Andress。

测试结果表明,DMN+模型对于所有的测试标准结果最高,为60.4%,领先第二名1.5%;对于所有的测试-dev而言,DMN+模型的结果也是最高,为60.3%,领先第二名1.6%。

c66d056f1861cb1d9a5deb03cc8032ba19646095 

当知道被问的问题时,我们能够提取的只是相关信息,这意味着我们不计算或存储不必要的信息,更加有效并能帮助我们避免信息瓶颈。

a8ec3791143e2e105d8a23f9b8f24445cfc39dfb

指针网络

如果你是在外国并且你正在点餐,你可以在菜单上看见你想要的,但是你不会发音,这种情况下指针网络能够帮助你解决词汇问题。(大多数的模型仅限于预先建好的词汇表)

e59dbdf94056c11bdde2ec59e433925de81d45a6 

挑战:我们没有词汇去指向指针,需要重现准确的指针。

740413165440c1d71447bd95c5b533d3f959e8b2 

上图a蓝色部分是RNN处理输入序列,{(x1,y1), (x2,y2),(x3,y3),(x4,y4)},右面紫色是输出序列,表示解的序列顺序{1,4,2,1}上图(b)输出则直接是调整顺序后的序列{(x1,y1), (x4,y4),(x2,y2),(x1,y1)}(序列顺序同样是(1,4,2,1))

7a6cedf1bf58a0542f730151440f040e9979de4e 

从图中可以看到,Ptr-net比LSTM的预测巡回线长。

c5ec306609ea20883b117f16532430d80b8a024b 

首先通过Embedding层将documentquery中的word分别映射成向量;之后对其编码得到文本表示;每个word vectorquery vector作点积后归一化的结果作为attention weights最后做一次相同词概率的合并,得到每个词的概率,最大概率的那个词即为answer

4e04d6e4b64bc778a2a42b9b76bb2246aab13a7b 

指针网络避免存储冗余的数据,这是很重要的,因为在许多任务中,名字是一个占位符,文档占位相当的长。

 

edbc627ccc846d45c3308ec6e75caf4218c79806469030e045343cc177fd5e8134db1605acf8dca6 

决定是否使用RNN或者指针网络,这是取决于指针“存储”包含的内容。

cd9718d586b75cbba1afd49620ff16426eac109a 

Pointer Sentinel-LSTM模型在语言建模上最先进的结果

afab05563943e5ce1994e9ae41246781dc9dbb2dd2332e35bfee44baffb1ebeca9deb2cf8abe819a89bf607805d22f0f13fe92e20f1f0d6b80e1a0f9

Hierarchical Attentive Memory模型是基于二叉树与记忆细胞。该模型的复杂度为O(log n),学会排序n个数字所需要的时间为O(nlogn)

7736bb8b0956da2f4251e7a0ae4bf168c27b41a9 

深度学习发展非常迅速,如果你停止不前或者左顾右盼的话,你可能会错过它;

b083ccef815700392a517fb91d837e20d370f31d 

对于深度学习感兴趣的话,我强烈推荐Kears模型,该模型是一个极度简化、高度模块化的神经网络第三方库。基于python+Theano开发,充分发挥了GPUCPU操作。其开发目的是为了更快的做神经网络实验。适合前期的网络原型设计、支持卷积网络和反复性网络以及两者的结果、支持人工设计的其他网络、在GPUCPU上运行能够无缝连接。

d9150a0e9a6bd3246c7be5a057393452f2585153 

总结

1. 意力以及记忆能够避免信息瓶颈;

2. 注意力可视化能够有助于模型上的可解释性;

3. 这些仍然处于初期阶段;

 

文章原标题《The Frontiers of Memory and Attention in Deep Learning》,作者:Stephen Merity

文章为简译,更为详细的内容,请查看原文

文章关键词
深度学习
模块
问答
序列
memory
神经网络
图片识别
语音文字处理
Attention