论文地址:https://arxiv.org/pdf/1502.03044.pdf
参考代码:https://github.com/parksunwoo/show_attend_and_tell_pytorch
(Reference部分内容更丰富)
《Show, Attend and Tell: Neural Image CaptionGeneration with Visual Attention》是2016年发表在cv.LG上的论文,其目标是使用注意力模型来生成图片描述信息。
Attention方法一开始应用在自然语言处理的翻译任务中,论文将Attention应用于图像处理,用于生成图片的文字描述。除了对整体图片描述,还使用Attention技术锁定图片中重要区域,生成重点描述,该问题结合了自然语言和图像处理。
使用文字描述图片类似于自然语言中的翻译:将一张图片翻译成一段文字,同样使用编解码框架(Encoder+Decoder)。模型不仅要识别图片中的物体,还要用语言描述物体之间的关系,之前类似的工作一般都由两部分构成:先用预训练的卷积神经网络从图片中提取特征,然后使用循环神经网络生成描述文字。模型虽然能从图像中提取到一些突显的特征,但也会忽略图中一些重要信息,仍要更进一步针对具体任务调优。
论文重点
采用了两种基于attention的标题生成方法。其中soft方法使用了基本的反向传播网络,hard方法还使用了强化学习技术。
阐释了如何使用注意力方法聚焦图中的内容和位置,并展示了聚焦效果。
在三个数据集上实验,并展示模型效果。
模型流程
先将图片代入卷积网络,提取特征,然后将特征用注意力方法加权后转入循环神经网络RNN,逐个生成描述中的单词。模型并没有直接使用目标检测网络,这使得模型不仅能锁定具体的物体,还能锁定一些抽象概念。
网络粗分为两部分:用卷积提取图片特征的Encoder和生成描述的Decoder。在Encoder部分,使用网络卷积层的输出,而非最终全连接层的输出,比如输出长宽为14x14的各小块特征(共L=196块,L意为Location位置),以便之后聚焦在某一小块之上,每个小块中包含D维特征(通道数)。
在Decoder部分,使用了长短时记忆网络LSTM,每生成一个单词时,都会参考已经生成的文字、隐藏层状态、以及当前的上下文。如下图所示:
其中输入门i,输出门o,遗忘门f,当前状态c,隐藏层h,已经生成的文字嵌入Eyt-1都与基础的LSTM一样,需要注意的是上下文数组Z,它描述的是t时间对应画面中的局部区域。
Z的计算方法如下:
Z由φ方法计算得出,φ分soft/hard两种,后面将详细介绍,参数a是从卷积网络中提取出的特征,i对应图像中不同的位置,α是权重,用于描述图中的位置i与待生成的第t个字符的相关性,其算法如下:
fatt是注意力模型,它的输入为图片特征ai,和前一个隐藏层状态ht-1,计算得出t时刻位置i被关注的程度eti,所有位置的权重之和为1,αti是具体位置的权重。
Attention方法
文中提出了hard-attention和soft-attention两种注意计算方法,公式推导复杂,涉及较多背景知识,下面只做简要介绍。
一般情况下,hard-attention指的是某个小块区域要么被关注1,要么不被关注0,而soft-attention,则给出被关注的概率,比如0.33。
Stochastic Hard Attention
随机的硬注意力模型,假定一个中间变量si,t,即生成第t个字时第i小块是否应被关注,如应被关注,s=1。各个位置si的概率是以α为参数的multinoulli分布。最终的Z通过s计算得出。
此处定义了新的目标函数Ls。
公式中y是根据图片特征a生成的标题字符序列。模型参数可被Ls对W的求导优化求得。由于符合以α为参数的multinoulli分布,可使用蒙特卡洛方法采样N次,然后根据目标函数调参获得模型权重W。
该方法依据参数α进行蒙特卡洛采样,偏重可能性大的位置随机选择,最终返回了某一小块的特征作为被关注的特征。
Deterministic Soft Attention
确定性的软注意力模型,相对于每次采样的硬注意力模型,作者还提供了一种更为简便的方法,直接计算期望值,基本公式如下:
模型平滑可导,更容易加入端到端的模型。可以说,确定性注意力模型是对注意位置的边缘似然的近似。
模型效果
模型效果如下表所示
下图展示了文字与图片区域的关系
论文的贡献不仅在于使用Attention技术改进生成图片描述,更重要的是示范了Attention在图片领域的使用方法,引发了该技术的进一步应用。