02.26 Attention 机制的学习

概念:

注意力机制模仿了生物观察行为的内部过程,即一种将内部经验和外部感觉对齐从而增加部分区域的观察精细度的机制。例如人的视觉在处理一张图片时,会通过快速扫描全局图像,获得需要重点关注的目标区域,也就是注意力焦点。然后对这一区域投入更多的注意力资源,以获得更多所需要关注的目标的细节信息,并抑制其它无用信息,

主要用于解决LSTM/RNN模型输入序列较长的时候很难获得最终合理的向量表示问题,做法是保留LSTM的中间结果,用新的模型对其进行学习,并将其与输出进行关联,从而达到信息筛选的目的

Attention 机制的学习

Encoder+Decoder

  中文名字是编码器和解码器,应用于seq2seq问题,其实就是固定长度的输入转化为固定长度输出。其中encoder和decoder可以采用的模型包括CNN/RNN/BiRNN/GRU/LSTM等,可以自由组合。目前大多数的注意力模型都是依附在 Encoder-Decoder 框架下,但并不是只能运用在该模型中,注意力机制作为一种思想可以和多种模型进行结合,其本身不依赖于任何一种框架。Encoder-Decoder 框架是深度学习中非常常见的一个模型框架:  例如在 Image Caption 的应用中 Encoder-Decoder 就是 CNN-RNN 的编码 - 解码框架;  在神经网络机器翻译中 Encoder-Decoder 往往就是 LSTM-LSTM 的编码 - 解码框架,在机器翻译中也被叫做 Sequence to Sequence learning 。所谓编码,就是将输入的序列编码成一个固定长度的向量;解码,就是将之前生成的固定向量再解码成输出序列。这里的输入序列和输出序列正是机器翻译的结果和输出。

流程图:

Attention 机制的学习

encoder过程将输入的句子转换为语义中间件,decoder过程根据语义中间件和之前的单词输出,依次输出最有可能的单词组成句子。

Attention 机制的学习

当输入长度非常长的时候,这个时候产生的语义中间件效果非常的不好,需要调整。

Attention 机制的学习

2.attention模型

  \\color{blue}{attention}attention模型用于解码过程中,它改变了传统decoder对每一个输入都赋予相同向量的缺点,而是根据单词的不同赋予不同的权重。在encoder过程中,输出不再是一个固定长度的中间语义,而是一个由不同长度向量构成的序列,decoder过程根据这个序列子集进行进一步处理。

Attention 机制的学习

attention原理  这么说比较抽象,具体是怎么做的呢。用一个小例子来说明:假设输入为一句英文的话:Tom chase Jerry那么最终的结果应该是逐步输出 “汤姆”,“追逐”,“杰瑞”。那么问题来了,如果用传统encoder-decoder模型,那么在翻译Jerry时,所有输入单词对翻译的影响都是相同的,但显然Jerry的贡献度应该更高。\\color{red}{引入attention后,每个单词都会有一个权重}引入attention后,每个单词都会有一个权重:(Tom,0.3)(Chase,0.2) (Jerry,0.5),现在的关键是权重怎么算的呢。

Attention 机制的学习

单词权重计算思路  从图上可以看出来,加了attention机制以后,encoder层的每一步输出都会和当前的输出进行联立计算(wx+b形式),最后用softmx函数生成概率值。概率值出来了,最后的结果就是一个加权和的形式。

Attention 机制的学习

         输出结果计算方法

基本上所有的attention都采用了这个原理,只不过算权重的函数形式可能会有所不同,但想法相同。

3.attention应用  attention的应用领域非常广泛,文本、图片等都有应用。   文本:应用于seq2seq模型,最常见的应用是翻译。   图片:应用于卷积神经网络的图片提取当然还有很多其他应用,大家可以自己探索。

4.attention简单实现4.1 思路1:直接对原文本进行权重计算这个思路非常暴力,我们说过要对输入进行权重计算,此种方法的计算很简单,就是将输入来一个全连接,随后采用softmax函数激活算概率。

4.2 思路2:加入激活函数并求和

这个的思路是权重计算之后加了一个tanh激活函数,然后求完权重进行了加和,更加符合attention机制的习惯,其实方法是一样的只不过返回是乘完加和而已。代码来自网上,原作者自己定义了一个attention层。

Attention 机制的学习

4.3 层级attention模型

这是比较新的一种思路,在句子和单词层面都输出了一个向量。思路图如下:

Attention 机制的学习

             层级attention的思路


分享到:


相關文章: