5、注意⼒机制和Transformer模型
1、⼈类的视觉注意⼒
从注意⼒模型的命名⽅式看,很明显其借鉴了⼈类的注意⼒机制,因此,我们⾸先简单介绍⼈类视觉的选择性注意⼒机制。
视觉注意⼒机制是⼈类视觉所特有的⼤脑信号处理机制。⼈类视觉通过快速扫描全局图像,获得需要重点关注的⽬标区域,也就是⼀般所说的注意⼒焦点,⽽后对这⼀区域投⼊更多注意⼒资源,以获取更多所需要关注⽬标的细节信息,⽽抑制其他⽆⽤信息。
简单来说,就和我在上⼀段官⽅⽂章中进⾏的加粗有着异曲同⼯之妙。⼈们会把更多的注意⼒放在ta认为重要需要注意的地⽅。这样我们更专注于更加重要的细节,减少信息⼲扰。
这是⼈类利⽤有限的注意⼒资源从⼤量信息中快速筛选出⾼价值信息的⼿段,是⼈类在长期进化中形成的⼀种⽣存机制,⼈类视觉注意⼒机制极⼤地提⾼了视觉信息处理的效率与准确性。
那么⼈类的这种“注意⼒机制”是否可⽤在AI中呢?
我们来看⼀下,图⽚描述(Image Caption)中引⼊了“注意⼒机制”后的效果。“图⽚描述”是深度学习的
⼀个典型应⽤,即输⼊⼀张图⽚,AI系统根据图⽚上的内容输出⼀句描述⽂字出来。下⾯看⼀下“图⽚描述”的效果,左边是输⼊原图,下边的句⼦是AI系统⾃动⽣成的描述⽂字,右边是当AI系统⽣成划横线单词的时候,对应图⽚中聚焦的位置区域,如下图:
可以看到,当输出frisbee(飞碟)、dog(狗)等单词时,AI系统会将注意⼒更多地分配给图⽚中飞碟、狗的对应位置,以获得更加准确地输出
什么是“注意⼒机制”?
深度学习中的注意⼒机制(Attention Mechanism)和⼈类视觉的注意⼒机制类似,就是在众多信息中把注意⼒集中放在重要的点上,选出关键信息,⽽忽略其他不重要的信息。
回顾Encoder-Decoder框架(编码-解码框架)
⽬前⼤多数的注意⼒模型附着在Encoder-Decoder框架下,所以我们先来了解下这个框架。Encoder-Decoder框架可以看作是⼀种⽂本处
理领域的研究模式,该框架的抽象表⽰如下图:
给定输⼊X,通过Encoder-Decoder框架⽣成⽬标Y。其中,Encoder(编码器)就是对输⼊X进⾏编码,通过⾮线性变换转化为中间语义
表⽰C;Decoder(解码器),根据输⼊X的语义表⽰C和之前已⽣成的历史信息⽣成⽬标信息。
注意⼒机制
本⽂开头讲到的⼈类视觉注意⼒机制,它在处理信息时注意⼒的分布是不⼀样的。⽽Encoder-Decoder框架将输⼊X都编码转化为语义表
⽰C,这样就会导致所有输⼊的处理权重都⼀样,没有体现出注意⼒集中,因此,也可看成是“分⼼模型”。
为了能体现注意⼒机制,将语义表⽰C进⾏扩展,⽤不同的C来表⽰不同注意⼒的集中程度,每个C的权重不⼀样。那么扩展后的Encoder-Decoder框架变为:
下⾯通过⼀个英⽂翻译中⽂的例⼦来说明“注意⼒模型”。
例如输⼊的英⽂句⼦是:Tom chase Jerry,⽬标的翻译结果是“汤姆追逐杰瑞”。那么在语⾔翻译中,Tom, chase,Jerry这三个词对翻译结果的影响程度是不同的,其中,Tom,Jerry是主语、宾语,是两个⼈名,chase是谓语,是动作。
那么这三个词的影响程度⼤⼩顺序分别是Jerry>Tom>chase,例如(Tom,0.3),(Chase,0.2), (Jerry,0.5),不同的影响程度代表AI模型在翻译时分配给不同单词的注意⼒⼤⼩,即分配的概率⼤⼩。
使⽤上图扩展了Ci的Encoder-Decoder框架,则翻译Tom chase Jerry的过程如下。
⽣成⽬标句⼦单词的过程如下⾯的形式:
其中,f1是Decoder(解码)的⾮线性变换函数
每个Ci对应着不同的源单词的注意⼒分配概率分布,计算如下⾯的形式:
其中,f2函数表⽰Encoder(编码)节点中对输⼊英⽂单词的转换函数,g函数代表Encoder(编码)表⽰合成整个句⼦中间语义表⽰的变换函数,⼀般采⽤加权求和的⽅式,如下式:
其中aij表⽰权重,hj表⽰Encoder的转换函数,即h1=f2(“Tom”),h2=f2(“Chase”),h3=f2(“Jerry”),Tx表⽰输⼊句⼦的长度当i是“汤姆”时,则注意⼒模型权重aij分别是0.6, 0.2, 0.2。那么这个权重是如何得到的呢?
aij可以看做是⼀个概率,反映了hj对ci的重要性,可使⽤softmax来表⽰:
这⾥的f表⽰⼀个匹配度的打分函数,可以是⼀个简单的相似度计算,也可以是⼀个复杂的神经⽹络计算结果。在这⾥,由于在计算ci时还没有h’i,因此使⽤最接近的h’i-1代替。当匹配度越⾼,则aij的概率越⼤。
因此,得出aij的过程如下图:
其中,hi表⽰Encoder转换函数,F(hj,Hi)表⽰预测与⽬标的匹配打分函数
将以上过程串起来,则注意⼒模型的结构如下图所⽰:
其中,hi表⽰Encoder阶段的转换函数,ci表⽰语义编码,h’i表⽰Decoder阶段的转换函数。
以上介绍的就是经典的Soft-Attention模型,⽽注意⼒模型按不同维度还有其它很多分类。
Attention模型分类
按注意⼒的可微性,可分为:
decoderHard-Attention,就是0/1问题,某个区域要么被关注,要么不关注,这是⼀个不可微的注意⼒;
Soft-Attention,[0,1]间连续分布问题,⽤0到1的不同分值表⽰每个区域被关注的程度⾼低,这是⼀个可微的注意⼒。
按照认知神经学中的注意⼒,可以为:
聚焦式(focus)注意⼒:⾃上⽽下的有意识的注意⼒,主动注意——是指有预定⽬的、依赖任务的、主动有意识地聚焦于某⼀对象的注意⼒;
显著性(saliency-based)注意⼒:⾃下⽽上的有意识的注意⼒,被动注意——基于显著性的注意⼒是由外界刺激驱动的注意,不需要主动⼲预,也和任务⽆关;可以将max-pooling和门控(gating)机制来近似地看作是⾃下⽽上的基于显著性的注意⼒机制。
在⼈⼯神经⽹络中,注意⼒机制⼀般就特指聚焦式注意⼒。
切换注意⼒
为了理解⼀个事物,做⼀项购买决定之前,我们其实都是经历了⼀段思考, 这段思考时期,有短有长,有时候短到可能我们都没有意识到。⽽在这短暂的思考期间, 借助我们眼球的运动能⼒,我们可
以不断切换要注意的地⽅, 即使在观察⼀段静⽌图⽚时或浏览静态⽹页时,都是如此。每次注意到的不同地点, 让我们能产⽣新的认知,或者对先有认知有更深程度的理解。⼈类通过在时间轴上, 眼球的移动,收集随时间变化的注意⼒,如果换⼀个说法,我想我会说: 这是对注意⼒的注意⼒。第⼀份注意⼒,产⽣了第⼀份认知理解,基于第⼀份理解, 我们决定第⼆次注意的位置,以此类推,直到我们达到完整的掌控和理解,做出对应的决策。
在语⾔上,也是⼀样,我们举个例⼦。
如果哪天有⼀位异性好友对你表⽩的回复是:“你⼈很好,很感谢有你的陪伴”。情场新⼿刚上车,第⼀眼看起来,好像是这个⼥⽣再夸我,激动得我眼泪要掉下来。带着这句话,让我⼀天都有好⼼情。可是当我吃完饭,再回想起她说我“⼈很好”,“感谢”我,这句话怎么听起来怪怪的。睡前我好像想明⽩了,她虽然说我好,但是这只是发好⼈卡的前奏,重点在后⾯,她在⽤“感谢陪伴”,委婉拒绝我!所以我使⽤了三次注意⼒,每次注意的时候都是基于上次注意后的理解。通过反复地回忆、琢磨才能研究透⼀句话背后的意思。
所以,如果深刻理解是通过注意⼒产⽣的,那么肯定也不只使⽤了⼀次注意⼒。这种思路正是⽬前AI技术发展的⽅向之⼀,利⽤注意⼒产⽣理解,⽽且使⽤的也是多次注意⼒的转换。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论