Attention_Model

Attention Model

Attention Mechanism 是近两年深度学习前沿的一个研究方向 传统的深度学习模型的主要不同, attend 模型在网络会在网络运行时, 会关注图像或文字中的某个区域, 作为判断的上下文 本次选取的论文是过去一年引用最多的一篇文章 Show, attend and tell: Neural image caption generation with visual attention . 这篇论文首次提供了关于attend 机制如何地用于 Caption(为图像生成文本描述)的详细介绍(如图1), 并取得了当时的最佳效果(state-of-the-art). 现在attention 机制已经越来越多地引用到了各个方面之中, 在CS231n 课程中, karpathy 十分推崇这个模型, 为attentin机制用与现有模型总会取得更好的效果. 并推荐在几乎所有的深度学习模型中使用(just using it everywhere)


main

图1 Words/Image alignment model

概述 背景 目标

这篇论文主要介绍的是如何利用attention 机制, 图片生成自然准确地语言描述. 深度学习流行之前, 传统的图像学者使用了一些图像识别, 位置判定等方法, 效果十分之差. 几年前, 深度学习开始用于了captioning, 主流的方法是利用 R-CNN 进行图像检测和定位, RNN进行语言生成, 两部分的网络之间的训练相对独立, karpathy和FeifeiLi 的BRNN是Attention Model
之前最佳模型, 就是由R-CNN 和 Bi-RNN相结合 .

算法介绍

Attention Model 构建在LSTM(RNN的一个改进版)和VGG(经典CNN网络) 之上, 但整个网络结构更像是一个RNN, 而不是传统的线性结构的CNN. RNN网络的每一个单元结构如图2:


enter image description here

图2 网络的Computation Graph

网络前向传播的算法如下:

  1. 将图片输入训练好的VGG 网络, 提取图片特征a: 论文中提取的低层的卷积层的输出 a, 属于比较浅层的特征. a是一个向量的集合, 每一个向量表征图片的不同特征.
  2. 根据系统状态, 决定attention区域: 一个专门的Attention function 根据上一个时刻的状态($h_{t-1}$)和图像特征 a, 计算α, α是一个向量, 和a的形状一致. $\alpha_i$用来表征网络当前状态下对图片的某一个特征($α_i$)的关注程度.
  3. αa通过一个函数$\phi$, 算得到了网络的上下文$z_t$: $\phi$函数在论文中有两个不同的选择.
  4. 将$zt$, $c{t-1}$, h_{t-1}$通过LSTM 计算得到$h_t$和$c_t$:  $h_t$和$c_t$是LSTM中的两个输出, 分别表示memory 和hidden state.
  5. 将$h_t$ 传入translate单元, 计算词向量$y_t$,
  6. 把$h_t$和$c_t$ 传入下一个单元, 返回第二步 继续生成词向量.

显然这篇论文的最大改进之处就在于用Attention Model 生成的α反复的查看图片I, 这样每次生成每个单词的描述的时候, 网络的关注点都不一样. 这种多次并且有侧重的关注, 得模型相对与传统的网络结构能更好地提取特征.

Soft AttentionHard Attention

在算法的第三步之中, 提到过函数$\phi$有不同的选取, 在论文中讲了两个不同的选取方法:
第一种选取方法 :
$$
\begin{align}
p(&s{t, } = 1 \mid s{j<t}, a ) = \alpha_{t, } \
\phi(&\alpha,a )= \hat{z}_t = \sumi {s}{t, }a_{i}.
\end{align}
$$
也就是对每一个区域$a_i$要么关注, 要么不关注, 关注与否按概率$\alpha_i$来取舍, 类似于采样. 这种方法称之为 Hard Attention.

第二种选取方法:
$$\phi(\alpha, a)= \mathbb{E}_{p(s_t|a)}[\hat{z}t] = \sum{i=1}^L \alpha{t, } a{i} $$.
对每个图像子区域都关注, 每个子区域加权之后的结果作为图像的上下文, 这种方法称之为Soft Attention.

相比较与Hard Attention, Soft Attention 效果不差太多, 但在训练时可以直接求导, 利用梯度的反向传播, 工程上更容易实现. 而Hard Attention 方法, 无法使用梯度下降方法, 需要利用强化学习(reinforcement learning!), 文中还用到了蒙特卡罗方法用于采样.

实验效果

效果很好, 如图三所示. 论文提供了源代码, 验证了模型(Hard-AttentionSoft-Attention)在三个最基准数据集 : Flickr9k, Flickr30k 和 MS COCO 都取得了当时(2015)最佳结果(state-of-the-art performance ),


论文效果

图3 模型效果

总结感想

Attention Model 这个想法特别的新奇:

一方面, 这种模型与人脑的工作机制极其相似, 人在看东西的时候在不同的时候会关注不同的地方, Attention Model也是如此, 这种模型使得神经网络离人脑更进了一步.

另一方面, 与之前caption做法不一样的是, 论文采用了一种端到端(end-to-end)的学习方式, 图像部分和自然语言处理部分直接相联, 通过缩减人工预处理和后续处理,尽可能使模型从原始输入到最终输出,给模型更多可以根据数据自动调节的空间,增加模型的整体契合度。

Attention Mechanism并不是这篇论文首创, 但是这篇论文却是Attention Model 的代表之作, 除了这篇论文详细清晰的思路之外, 最主要的还是因为这篇论文证明了Attention Model 在工程上所具有的巨大优势. 现在Attention Model 已经被用到了深度学习的方法面面, 可以预见, 未来几年Attention Model 会是一个重要的研究方向.