我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:多盈娱乐注册 > 多带图灵机 >

注意力机制的诞生、方法及几种常见模型

归档日期:05-20       文本归类:多带图灵机      文章编辑:爱尚语录

  必学内容之一,无论是计算机视觉还是自然语言处理都可以看到各种各样注意力机制的方法。之前我们曾在一篇干货文章《关于深度学习中的注意力机制,这篇文章从实例到原理都帮你参透了》中,从实例到原理帮助大家参透注意力机制的工作原理。今天,我们将再度为大家梳理全部理论要点,是大家学习的必备资料之一,并为后续掌握最新流行的注意力机制保驾护航。

  在本篇博客中,作者不仅概述了注意力机制是如何被创造出来的,也详细探讨了时下最流行的注意力机制相关的方法和模型,比如Transformer、SNAIL、神经图灵机(Neural Turing Machines)以及自注意力生成对抗网络(SAGAN),一度成为不少学习者的参考资料。

  在某种程度上,注意力取决于我们如何对图像的不同区域进行视觉注意或将一个句子中的单词关联起来。

  图1 一只可爱的柴犬穿着一件人类的外套。该图片来自于InstagRam@mensweardog

  人类的视觉注意力机制使我们能够以一种“高分辨率”的形式关注到图像的某个区域(例如当你观察图中黄色框标注的狗耳朵的时候),而同时以一种“低分辨率”的形式感知着周围的图像(例如这个时候你的余光中雪的背景,还有柴犬所穿的外套的样子),然后调整眼睛所关注的焦点或者相应地进行推断。

  如果将图像扣掉一小块,我们也可以根据图像中其余的内容线索推测出被扣掉的内容究竟是什么。比如可以推测出被黄色框扣掉的内容是一个尖尖的耳朵,因为我们看到了一个狗的鼻子,右边另一个尖尖的耳朵以及柴犬的神秘眼神(图中红色框所示的内容)。对于耳朵的预测,底部的毛衣和毯子就不如上述狗的特征有用。

  类似的,我们同样可以解释,一个句子或近似语境中单词之间的关系。在一句话中,当我们看到“吃”这个单词的时候,我们很快就会遇到一个食物词(apple)。虽然颜色术语(green)描述了食物,但可能跟“吃”之间没有直接的关系。

  简而言之,深度学习中的注意力机制可以被广义地定义为一个描述重要性的权重向量:通过这个权重向量为了预测或者推断一个元素,比如图像中的某个像素或句子中的某个单词,我们使用注意力向量定量地估计出目标元素与其他元素之间具有多么强烈的相关性,并由注意力向量的加权和作为目标的近似值。

  seq2seq模型最早是在2014年由Sutskever提出的,他主要针对的是语言模型。从广义上来讲,它的目的是将输入序列(源序列)转换成一个新的序列(目标序列),而且两个序列的长度可以是任意的。转换任务包括文本或者语音上的多语种机器翻译,问答对话的生成或者生成句子的语法树等任务。

  seq2seq模型通常具有一种编码器-解码器(encoder-decoder)结构,由下面两部分构成:

  Encoder:编码器处理输入序列,然后将其中包含的信息压缩成固定长度的上下文向量(context vector),上下文向量也可以叫做句子嵌入(sentence embedding)。这种表示方式可以用来对一整个句子的含义做出一个很好的总结。

  Decoder:利用Encoder产生的上下文向量来初始化解码器以产生变换后的输出序列。早期的工作仅仅使用编码器网络的最后状态作为解码器的初始状态。

  这种固定长度的上下文向量设计的一个关键的和明显的缺点在于,它无法记住很长的句子,对很长的时序信息来说,一旦它完成了对整个序列的处理,它通常会忘记最开始的部分,从而丢失很多有用的信息。因此,在2015年Bahdanau等人为了解决长时依赖问题,提出了注意力机制。

  注意力机制的诞生,最开始是为了帮助神经机器翻译(NMT)记住较长的源句。注意力机制的秘方在于,它建立了一个上下文向量与整个源句之间的快捷方式,而不只是通过编码器最后一步的隐层状态来生成上下文向量。这些快捷方式的连接权重是根据每个输出元素自适应计算出来的。

  既然上下文向量可以访问到整个句子中的每个单词,那我们根本不用担心之前的信息会被遗忘。源序列和目标序列之间的对齐(alignment)就通过这个上下文向量来学习和控制,从本质上讲,要计算上下文向量需要三个必要信息:

  现在让我们以科学的方式来定义神经机器翻译系统中引入的注意力机制。比方说,我们有一个长度为n的源序列x,并尝试输出长度为m的目标序列y:

  这里的编码器是双向LSTM(或者其他你认为合适的递归神经网络),前向的隐含层状态定义为

  。将两种表示简单地串联起来构成编码器的整个隐含层状态表示。这种表示方法意在描述当前单词的时候包含有它之前和之后词的释义。

  的集合衡量了输出关注到多少源序列的隐层状态。在Bahdanau的文章中,对齐分数

  的参数由一个前馈神经网络参数化,其输入仅仅是输入序列和输出序列的隐含层状态,这个模型跟整体模型的其它部分一起参与训练,从而学到所谓的注意力权重。因此对齐分数函数的定义如下面所示,给定tanh作为非线性激活函数:

  对齐分数矩阵是一个很好的副产品,它可以很好的显示出源单词和目标单词之间的相关性。

  点击下面链接可以获得具体的实施方法,这是tensorflow团队提供的一份优秀的教程。

  有了注意力机制,源序列和目标序列的依赖关系再也不需要二者之间的相对距离了!有了机器翻译领域上巨大的进展,注意力机制在包括计算机视觉(Xu et al.2015)在内的其它领域也都随之有了广泛的应用,研究者们也相继探索出各种不同的注意力机制模型以适用于不同的应用场合(Luong, et al., 2015; Britz et al., 2017; Vaswani, et al., 2017)。

  (*)在Luong等人的文章中被称为“concat”,在Vaswani等人的文章中被称为“附加注意”。

  (^)它增加了一个比例因子`$1/\sqrt{n}$`,因为当输入较大时,softmax函数的梯度可能非常小,难以进行有效的学习。

  自注意力机制,又称内注意力机制,是一种将单个序列的不同位置关联起来以计算同一序列的表示的注意机制。它在机器阅读、抽象摘要或图像描述生成中非常有用。

  在“Long short-term memory network”这篇文章中使用自注意力机制去做机器阅读。在下面的例子中,自注意机制使我们能够学习当前单词和句子前一部分之间的相关性。

  图6 当前单词为红色,蓝色阴影的大小表示激活级别也就是相关性的大小。(图片来自于Cheng et al.,2016)

  在“Show,attend and tell”这篇文章中,自注意力机制应用于图像以生成适当的描述。图像首先由卷积神经网络进行编码,具有自注意力机制的递归神经网络利用卷积特征映射逐条生成描述性词语。注意力权重的可视化清晰地展示了模型为了输出某个单词而关注图像的某些区域。

  图7 机器根据图像得到的描述“一个女人正在一个公园里扔飞碟”。(图像来自于Xu et al. 2015)

  soft vs hard 注意力记住是区分注意力定义的另一种方式。最初的想法是在“Show, attend and tell paper”论文中提出的,其主要思想在于:注意力是否可以访问整个图像或只访问图像中的一部分:

  Soft Attention:所学习的对齐权重关注于整个输入图像中的各个部分,关键思想和Bahdanau在2015年的论文如出一辙。

  缺点:模型是不可导的而且需要更加复杂的训练技术,例如强化学习和方差降低(variance reduction)

  “Luong, et al.,2015” 首次提出了“global”和“local”注意力机制。global注意力机制和soft注意力机制类似,然而local是hard和soft的有趣的融合,它是对hard attention的一种改进,使得它变得可导:该模型首先预测一个当前目标词对齐的位置和一个围绕源位置的窗口,然后用于计算上下文向量。

  1936年,阿兰·图灵提出了一个计算机的最小模型。它由一个无限长的磁带和一个与磁带交互的磁头组成。磁带上有无数的单元格,每个单元格都填有一个符号:0,1或空格(“ ”)。操作头可以读取符号、编辑符号,并可以在磁带上左右移动。理论上,图灵机可以模拟任何计算机算法,不管这个过程有多复杂或多耗时。无限内存给图灵机带来了数学上无限的优势。然而,无限内存在真正的现代计算机中是不可行的。

  神经图灵机(NTM,Graves, Wayne & Danihelka, 2014)是一种神经网络与外部存储器耦合的模型结构。存储器模仿图灵机磁带,神经网络控制操作头从磁带读取或者向磁带中写。然而,NTM中的内存是有限的,因此它看起来更像是一台“神经冯诺伊曼机器”。

  NTM包含两个主要部件:一个由神经网络构成的控制器和存储器。控制器:负责对内存执行操作。它可以是任何类型的神经网络(前馈神经网络或递归神经网络)。存储器:保存处理过的信息。它是一个大小为`$N \times M$`的矩阵,其中包含N行向量,每个向量都有M个维度。

  在一次更新迭代的过程中,控制器处理输入信号并相应地与存储器进行交互以生成输出。交互由一组并行读写头处理。读和写操作都是模糊的,因为它们都需要访问所有内存地址。

  在t时刻写入内存时,受LSTM中输入和遗忘门的启发,写入磁头首先根据一个擦除向量

  在神经图灵机中,如何产生注意力分布wt取决于寻址机制:神经图灵机使用基于内容和基于位置的寻址的混合寻址方式。

  基于内容的寻址方式,就是根据控制器从输入行和内存行提取的关键向量kt之间的相似性来创建注意向量。基于内容的注意力机制用余弦相似度来计算相似性,然后用softmax函数进行归一化。此外,神经图灵机增加了放大器βt用来放大或衰减分布的重点。

  然后利用插值门,也就是一个标量gt将新生成的基于内容的注意向量与上一步的注意权值进行混合:

  基于位置的寻址将注意向量中不同位置的值相加,并通过允许的整数移位上的加权分布进行加权。它等价于与核函数st(.)的一维卷积,st(.)是位置偏移的函数。定义这个分布有多种方法。参见图11以获得启发。

  注意向量wt在时间步长t上生成的完整过程如图12所示。控制器产生的每个磁头的所有参数都是唯一的。如果有多个读写头并行,控制器将输出多个集合。

  在排序或旅行推销员(travelling salesman)等问题中,输入和输出都是顺序的数据。不幸的是,传统的seq-2-seq或NMT模型都不能很容易地解决这些问题,因为输出元素的离散类别不是预先确定的,而是取决于可变的输入大小。指针网络(Ptr-Net;(Vinyals, et al. 2015)的提出就是为了解决这类问题:当输出元素对应于输入序列中的位置时。指针网络没有使用注意力机制将编码器的隐藏单元混合到上下文向量中(参见图8),而是使用注意力机制直接作用在编码器上,选择输入序列中某个元素作为解码器的输出。

  。指针网络依然是以编码器-解码器的结构作为基础。其中编码器和解码器的隐含层状态分别表示为

  。指针网络使用addictive attention作为对分数齐函数,然后同样使用softmax进行归一化从而建立输出条件概率模型:

  可以看到,在指针网络中注意机制被简化了,因为它没有将编码器状态与注意权重混合到输出中。这样,输出只响应位置,而不响应输入内容。

  “Attention is All you Need”这篇文章(Vaswani, et al., 2017),无疑是2017年最有影响力和最有趣的论文之一。它对soft attention进行了大量的改进,使得在不需要递归神经网络单元(LSTM,GRU)的情况下进行seq2seq建模成为了可能。它提出的 Transformer 模型完全建立在自注意力机制(self-attention)的基础上,没有使用任何序列对齐的递归结构。

  Transformer的主要部件是一个叫做“多头自注意力机制”的单元(multi-head self-attention mechanism)。Transformer将输入的编码表示形式视为一组键key-值value对(K,V),它们的维度都是n(输入序列长度);在NMT的上下文中,key和value都是编码器的隐含层状态。在解码器中,上一步的输出被压缩为一个查询query(Q的维度为m),下一步的输出是通过映射这个查询query到一组键key和值value的集合生成的。Attention 函数的本质可以被描述为一个查询到一系列键-值对的映射。

  多头注意力机制会并行计算缩放点积很多次,而不是仅仅计算一次。然后将相互独立的注意力计算单元的输出简单的拼接在一起,最后通过一个线性单元转换成期望大小的维度。我认为这样做的动机是因为合并总是有效的?根据作者在文章中的描述,“多头注意力机制允许模型共同关注来自不同位置的不同子空间的信息。而仅仅有一个注意力机制,是不能得到这么丰富的信息的。”

  编码器可以生成基于注意力的表示,其能够从可能无限大的上下文中定位到特定的信息。

  每个编码子层之间都采用残差连接方式,并且使用层归一化(layer normalization)。

  每个解码层含有两个子层结构,一个是多头注意力机制,另一个是全连接前馈神经网络单元

  与编码器结构类似,每个解码器子层之间都采用残差连接方式,并且使用层归一化(layer normalization)。

  第一个多头注意子层被修改,以防止当前位置参与到后面的子序列的位置中,因为我们不想在预测当前的位置时有目标序列的未来信息对其进行干扰。

  有了前面对编码器和解码器结构的介绍,下面将引出Transformer的整体结构:

  源序列和目标序列都先要经过一个embedding层,将其嵌入到相同的维度,例如

  为了保存序列的位置信息,使用基于正弦函数的位置编码器对每个输入向量进行编码,将编码向量合并在嵌入向量之后。

  Transformer模型没有递归结构或者卷积结构,即便加入位置编码单元对嵌入向量的位置进行编码,对序列的顺序表示也很弱。对于像强化学习这种对位置依赖性十分敏感的问题,这可能是一个大问题。

  简单神经注意力元学习(Simple Neural Attention Meta-Learner)简称SNAIL,通过将Transformer的自注意力机制与时序卷积相结合,部分解决了模型中位置编码的问题。它已被证明擅长解决监督学习和强化学习任务。

  SNAIL的产生归功于元学习,这是另一个值得写一篇文章来归纳的大话题。但简单来说,元学习用来预测那些新颖的但未被观察到的、具有跟已知样本有相同分布的样本数据。

  最后,我想提到一个最新发布的生成对抗网络模型,自注意力生成对抗网路,我们来看看注意力机制是如何应用到生成对抗网络上以提高生成图像的质量的。

  经典的DGGAN(深度卷积生成对抗网络)将生成器和判别器都表示成多层卷积神经网络。然而,表示的能力受到滤波器大小的限制,因为一个像素的特征受限于一块小的局部区域。为了连接相隔很远的区域,必须通过卷积操作来稀释这些特征,尽管如此,他们之间的依赖性也未必能得到很好的保证。

  在计算机视觉中,由于上下文向量可以通过soft-attention明确地学习到一个像素与其他位置所有像素之间的关系,即便是相距甚远的区域,它也可以轻松捕获全局的依赖关系。因此,如果将self-attention与GAN相结合,有望处理更多细节信息。

  SAGAN采用非局部神经网络(non-local neural network)的注意力方法来计算。卷积图像的特征图构成三个分支,分别对应于Transformer模型中的键、值和查询三个概念。

  然后我们使用点积(dot-product)注意力机制来得到自注意特征图:

  是注意力图(attention map)中的一个元素,它表示模型在生成第j个位置时对第i个位置应该注意多少程度。

  如果你不太明白1x1的卷积是什么意思,请参看Andrew Ng的一个简短的教程

  之后,输出的注意层(attention layer)乘以一个比例系数,再放回到原始的特征图中,这类似于残差连接方式:

  在训练期间从0逐渐增加,但是网络被配置为一开始依赖局部区域中的信息,然后通过分配更多权重给更远区域逐渐学习到更远区域的信息。

  原文标题:Deep Reading 从0到1再读注意力机制,此文必收藏!

  文章出处:【微信号:rgznai100,微信公众号:AI科技大本营】欢迎添加关注!文章转载请注明出处。

  David,加州大学物理博士,美国著名电商数据科学家。本课程介绍什么是深度学习, 深度学习与机器学习的关系,几种神经网络

  David,加州大学物理博士,美国著名电商数据科学家。本课程介绍什么是深度学习, 深度学习与机器学习的关系,几种神经网络

  近日,Science子刊发表文章,来自Facebook、加州伯克利分校和德克萨斯奥斯汀大学的研究人员....

  近年来,我国建筑在规模和层次上都发展到了一个新的高度,同时建筑施工安全管理也越发受到人们重视。

  事实上,在「自动驾驶汽车究竟应该用不用激光雷达」这个问题上长时间的争论不休,衍生出了「激光雷达派」与....

  接着,对自然语言处理面临的技术挑战进行了分析,包括自然语言中大量存在的未知语言现象、歧义词汇和结构、....

  随着AI的广泛应用,深度学习已成为当前AI研究和运用的主流方式。面对海量数据的并行运算,AI对于算力....

  对于图像分类问题,Dense层可能是不够的。但我们也可以另辟蹊径!有完整的卷积神经网络可供下载。我们....

  上个月在杭州召开的学术交流会议上,国家自然科学基金前负责人杨卫介绍了试点数据。该工具的试用版本从去年....

  信息提取和文本挖掘 (占所有有效提交的 9.2%,ACL 2018 的这一比例为 11.5%。不过,....

  前馈神经网络和感知机,信息从前(输入)往后(输出)流动,一般用反向传播(BP)来训练。算是一种监督学....

  每个边界框对应于 5 个输出,分别是 x,y,w,h 和置信度。其中 x,y 代表边界框的中心离开其....

  图形数据可以与很多学习任务一起使用,在元素之间包含很多丰富的关联数据。例如,物理系统建模、预测蛋白质....

  首先我们新增了两款国内车厂的车辆,第一是与广汽合作的GE3的开发者版本,另一个是与长城合作的WEYV....

  比如一个草原的照片上有一块污渍,我们知道被盖住的部分(缺失的数据)也是草,那么我们就可以训练神经网络....

  谷歌TensorFlow Graphics:为3D图像任务打造的深度学习利器

  TensorFlow重磅推出一个全新的图形工具TensorFlow Graphics,结合计算机图形....

  本书由Keras之父、现任Google人工智能研究员的弗朗索瓦•肖莱(François Cholle....

  内容为时下最火热的神经网络和深度学习,该教程来源于美国Michael Nielsen的个人网站,他致....

  然而,图像分类问题就是一个非常复杂的工作,它总是借用诸如卷积神经网络(CNN)这样的深度学习模型来完....

  Diffgram – 一个非常有前途的平台仍然在beta版,通过训练RCNN优化图像注释;RectL....

  随着近年来乳腺癌的发病率逐渐上升,在现代医学的众多研究领域中,如何尽早发现和治疗乳腺癌,早已成为了一....

  尽管如此,Hinton 认为目前的 AI 和机器学习方法仍然存在局限性。他指出,大多数计算机视觉模型....

  TensorFlow重磅推出一个全新的图形工具TensorFlow Graphics

  训练一个能够解决这些复杂的3D视觉任务的机器学习系统通常需要大量的数据。由于给数据打标签是一个成本高....

  David表示笔记中涉及到的演讲都是他最喜欢的,并特别提出了在RL中学习抽象/层次结构的一些非常好的....

  微软亚洲互联网工程院NLP团队重磅推出开源项目NeuronBlocks

  Model Zoo提供大量预构建好的深度神经网络模型,涵盖了常见的NLP任务。这些模型以JSON配置....

  对于非AI方向的技术人员,本书将大大降低入门深度学习的门槛;对于在校大学生、研究生,本书不失为学习深....

  以色列Yad Vashem博物馆将深度学习用在其数字媒体中,以传播给全世界更多的人。

  神经科学家和计算机视觉科学家表示,一个空前庞大的新数据集将帮助研究人员更好地理解大脑是如何处理图像的....

  “1960年以来,放射科医生已经注意到女性乳腺X光片上可以看到各具特性且不断变化的乳房组织,代表着遗....

  大数据时代,海量的数据如处理不当则会成为企业的负担,加以利用则是宝贵的资源,面对海量数据的计算与存储....

  这本《AI 算法工程师手册》是作者多年以来学习总结的笔记,经整理之后开源于世。关于为什么将完整书籍开....

  俞益洲说,在计算机视觉里面用到的深度学习,主要就是卷积神经网络(CNN)。CNN是Yann LeCu....

  针对稀疏编码模型在字典基的选择时忽略了群效应,且欧氏距离不能有效度量特征与字典基之间距离的问题,提出....

  近日,Reddit一位网友根据近期OpenAI Five、AlphaStar的表现,提出“深度强化学....

  IFBOX人像识别边缘计算引擎。视频流经过IFBOX边缘计算引擎,以40张/秒的速度自动抓取人脸,并....

  Frankle和Carbin发现,一个标准的修剪技巧可以自然的显露出一个子网络,初始化该网络就能提高....

  Interpreter 由 Engine 和 Backends 构成。前者负责模型的加载、计算图的调....

  发布会现场,依图科技首席创意官吕昊为大家进行了芯片演示——他手持一台体积与15 英寸苹果 MacBo....

  “他们从人工智能的应用中获得了实实在在的好处,”他说。“例如,Yad Vashem可以使用视频分析来....

  一个部件表示目标对象某部分图形的模板。“弹簧”显示部件之间的连接方式,当部件通过像素位置和方向进行参....

  截至2018 年,全球活跃的安卓设备已经超过了20 亿部。安卓手机的迅速普及在很大程度上得益于各种各....

  将原始句子送入编码器RNN,然后将目标句子送入解码器RNN,同时编码器RNN最终隐层状态会传入解码器....

  开源深度学习软件最早出现在20世纪90年代,当时出现了许多关键的算法突破。从那时起,计算机科学家已经....

  深度学习下的分类,目标检测、语义分割这三个方向具体的概念及其应用场景是什么?

  我们观察一下这些图片的特点,这些图片各种各样,分辨率也各不相同。图片中的猫和狗形状、所处位置、体表颜....

  在此之前,纪萌在科大讯飞技术人员的指导下完成了音频和视频形象的采集。面对纪萌在声音方面的疑问,科大讯....

  基于以上动机,该研究提出一种有序化神经元方法 (结构示意图如下图1),通过归纳偏置来强化每个神经元中....

  我主要研究医疗和金融领域的模型应用,在这些领域的实际问题中,上述模型能够在很大程度上解决模型解释性、....

  随着计算机网络的飞速普及,人们已经进入了信息时代。在这个信息社会里,信息的重要性与日俱增,无论是个人,企业,乃至政府都需要...

  基于深度学习的监督图像分类算法研究,MATLAB制作的。求助:程序代码修改补充,有偿

  作者:德州仪器Joe Folkens 在未来的某个时候,人们必定能够相对自如地运用人工智能,安全地驾车出行。这个时刻...

  过去十年里,人们对机器学习的兴趣经历了爆炸式的整长。我们几乎每天都可以在计算机程序、行业会议和媒体上看到机器学习的身影。...

本文链接:http://cakesbyrita.net/duodaitulingji/344.html