当前位置:   article > 正文

深度学习之seq2seq模型以及Attention机制

seq2seq运用到图像处理

RNN,LSTM,seq2seq等模型广泛用于自然语言处理以及回归预测,本期详解seq2seq模型以及attention机制的原理以及在回归预测方向的运用。

1. seq2seq模型介绍

  seq2seq模型是以编码(Encode)和解码(Decode)为代表的架构方式,seq2seq模型是根据输入序列X来生成输出序列Y,在翻译,文本自动摘要和机器人自动问答以及一些回归预测任务上有着广泛的运用。以encode和decode为代表的seq2seq模型,encode意思是将输入序列转化成一个固定长度的向量,decode意思是将输入的固定长度向量解码成输出序列。其中编码解码的方式可以是RNN,CNN等。

  

图1. encode和decode框架

上图为seq2seq的encode和decode结构,采用CNN/LSTM模型。在RNN中,当前时间的隐藏状态是由上一时间的状态和当前时间的输入x共同决定的,即

【编码阶段】

  得到各个隐藏层的输出然后汇总,生成语义向量

 

  也可以将最后的一层隐藏层的输出作为语义向量C                      

 

 

【解码阶段】 

  这个阶段,我们要根据给定的语义向量C和输出序列

 

  也可以写做                                                                         

 

  其中g()代表的是非线性激活函数。在RNN中可写成 yt=g(yt1,ht,C) ,其中h为隐藏层的输出。

 

以上就是seq2seq的编码解码阶段,seq2seq模型的抽象框架可描述为下图:

图2. seq2seq抽象框架图

 

2.Attention机制在seq2seq模型中的运用

2.1 自然语言处理中的Attention机制

  由于encoder-decoder模型在编码和解码阶段始终由一个不变的语义向量C来联系着,编码器要将整个序列的信息压缩进一个固定长度的向量中去。这就造成了 (1)语义向量无法完全表示整个序列的信息,(2)最开始输入的序列容易被后输入的序列给覆盖掉,会丢失许多细节信息。在长序列上表现的尤为明显。

  Attention模型的引入:

  相比于之前的encoder-decoder模型,attention模型最大的区别就在于它不在要求编码器将所有输入信息都编码进一个固定长度的向量之中。相反,此时编码器需要将输入编码成一个向量的序列,而在解码的时候,每一步都会选择性的从向量序列中挑选一个子集进行进一步处理。这样,在产生每一个输出的时候,都能够做到充分利用输入序列携带的信息。而且这种方法在翻译任务中取得了非常不错的成果。

  下图为seq2seq模型加入了Attention注意力机制 

 

此处输入图片的描述

图3. Attention注意力机制的seq2seq模型

  

【seq2seq的attention解码过程】

   现在定义条件概率:

 

  上式 

 

  关键问题是语义向量 C 怎么得到?  

  

 

  将隐藏向量序列按权重相加,表示在生成第j个输出的时候的注意力分配是不同的。

 

 

  

 

公式汇总:

 

 

【Attention机制类别】

  Attention机制大的方向可分为 Soft Attention 和 Hard Attention 。

Soft Attention通常是指以上我们描述的这种全连接(如MLP计算Attention 权重),对每一层都可以计算梯度和后向传播的模型;不同于Soft attention那样每一步都对输入序列的所有隐藏层hj(j=1….Tx) 计算权重再加权平均的方法,Hard Attention是一种随机过程,每次以一定概率抽样,以一定概率选择某一个隐藏层 hj*,在估计梯度时也采用蒙特卡罗抽样Monte Carlo sampling的方法。

 

图5. Soft Attention 模型

 

图6. Hard Attention

 

考虑到计算量,attention的另一种替代方法是用强化学习(Reinforcement Learning)来预测关注点的大概位置。这听起来更像是人的注意力,这也是Recurrent Models of Visual Attention文中的作法。然而,强化学习模型不能用反向传播算法端到端训练,因此它在NLP的应用不是很广泛(我本人反而觉得这里有突破点,数学上的不可求解必然会得到优化,attention model在RL领域的应用确实非常有趣)

 

参考资料:http://blog.csdn.net/u014595019/article/details/52826423

     http://blog.csdn.net/wuzqChom/article/details/75792501

     http://blog.csdn.net/mpk_no1/article/details/72862348

     http://www.deepnlp.org/blog/textsum-seq2seq-attention/

     http://blog.csdn.net/malefactor/article/details/50550211

     http://blog.csdn.net/xbinworld/article/details/54607525

 

2.2 计算机视觉中的Attention机制

 

图7. 基于注意力attention的RNN模型

 

 

图8. 视觉中的注意力模型结构

  (1)输入图片经过一系列变换后转化为 H * W * 3维的矩阵,H,W 分别为图片的高和宽度,3为RGB三通道。

  (2)CNN层:经过一些列卷积层和池化之后得到 L*D的 feature map,D是这一层卷积层中神经元的个数,比如有512个。L是每个神经元中的feature map,比如是14 * 14维。那么L * D 就代表 196 * 512维的向量

  (3)创建一个D * 1维的权重向量W(这个权重的最优值在后向求导的时候会算出来的,一开始可以先随便初始化一个)。拿从CNN出来的feature向量L * D 去乘以 这个权重向量W,得到的是L * 1的向量。也就是图中的h0,h0经过一个sotmax,会得到L * 1的概率,也就是说,对一个L 维的feature map(14 * 14)求出196个相对应的概率向量,就是图中的a1。

  (4)a1是196维的概率向量,把它再与 L * D的feature向量相乘,求加权。也就是说,对521层神经元上的feature map都乘以一组概率,得到的是图中的z1。 
这是至关重要的一步,也是注意力模型的核心,因为概率的大小重新调整了feature向量中每个值的大小。概率大的就会放更多的注意力上去,概率小的,注意力就减小了。 
这个z1直接作用于第二次循环中的h1.

  (5)现在来到了h1这一层,这一层的输入除了刚刚说的z1,还有原来就有的y1,和h0,y1是上一次循环的输出,h0是上一时刻的记忆。h1也会进入一个softmax的运算,输出一组概率,这组概率会再回到feature向量那里做权重加和,于是feature向量又进行了一轮的调整,再作用到了h2上,也就是我们看到的z2。h1出来生成一个概率向量外,还会输出一组每个词的概率,然后选取概率最大的那个词作为本轮循环的最终输出。(所有词以one-hot的形式维护在词典中)。

循环往复以上两步,实现了在每一轮的循环中都输入了新的feature向量,注意力也会改变。比如第一轮注意力是在bird,第二轮注意力在sea.

 

  视觉注意力以及物体聚焦是人类视觉所特有的一种信号处理机制。人类视觉系统能够在关键场景中提取大脑反馈的关键信息,抑制无用信息。注意力机制在NLP已经取得很大成功,如RNN+CNN的图像描述系统,机器翻译等。

  Attention机制在自然语言处理和计算机视觉图像领域都有着广泛的运用。神经网络中的注意力机制是从人类视觉中受到启发而来的,模拟人眼的注意力功能,集中聚焦一些关键信息而虚化或者抑制掉一些不重要信息。计算机视觉中的注意力机制,从理论上看是融合了底层卷积和高层卷积的特征,由此既能识别高分辨率中的一些细节特定区域的特征,又能感知到高层网络中的关键特征。在图像领域中, 2010年的《Examples include Learning to combine foveal glimpses with a third-order Boltzmann machine》,以及2011年的论文《Learning where to Attend with Deep Architectures for Image Tracking》上都有提及注意力attention机制的运用。

  2016年和2017年CVPR顶会论文:

 Wang F, Jiang M, Qian C, et al. Residual Attention Network for Image Classification[J]. 2017.

 Lin T Y, Dollár P, Girshick R, et al. Feature Pyramid Networks for Object Detection[J]. 2016.

  

 

转载于:https://www.cnblogs.com/DLlearning/p/7834018.html

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号