81/100 发布文章 weixin_4. Show, Attend and Tell: Neural Image Caption Generation with Visual Attention翻译

本文提出了一种结合“硬”和“软”注意力机制的图像标题生成模型,受机器翻译和对象检测领域的启发。模型能动态关注图像的显著部分,通过反向传播和变分下界约束进行训练,并在Flickr8k、Flickr30k和MS COCO数据集上展示了优秀性能。通过可视化展示,揭示了模型在生成标题时如何选择关注的图像区域。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

摘要

    受机器翻译和对象检测领域近期工作的启发,我们提出一个基于注意力机制的自动学习描述图像内容的模型。我们描述了我们可以以确定的方式即使用标准反向传播技术和随机地通过最大化变分下限约束训练该模型。我们还通过可视化展示这个模型,当它在输出序列中生成对应的语词时,能自动学习调整其关注的对象。我们评估了目前使用注意力机制的最先进的技术在以下三个参照数据集上的表现:Flickr8k,Flickr30k 和 MS COCO。

引言

    自动生成一幅图像的描述是一个非常接近于图像理解——计算机视觉的一个基本目标 的 核心的任务。caption generation 模型 不仅必须强大到能解决确定一幅图片中有哪些对象的机器视觉难题,还必须能捕捉并使用自然语言描述这些对象之间的关系。因此,caption generation 长期以来被视为一个难题。这等同模仿人类的压缩巨量的突出的视觉信息为叙述语言的非凡能力,因此,对机器学习算法而言这是一个非常重要的挑战。
    尽管这项任务非常具有挑战性,最近人们对攻克图像标题生成难题的兴趣激增。受益于在训练神经网络方面的进步(Krizhevsky et al., 2012) 和大规模的分类数据集(Russakovsky et al., 2014),
![Figure 1. Our model learns a words/image alignment. The visualized attentional maps (3) are explained in section 3.1 & 5.4](E:/AI/udacity/Show,Attend and Tell/figure1.png)
    使用卷积神经网络的组合获得图像的向量表示和循环神经网络对这些表示进行解码变成自然语言的句子,近期的工作显著地提高了标题生成模型的质量。

    人类视觉系统的一个最奇妙的方面是注意力机制的存在。相较于将一整张图片压缩为一个静态的表征而言,注意机制允许显著特征在需要的时候动态地突出到前列。这是非常重要地当一幅图片内容非常杂乱时。使用从图像中提取到的最显著对象的表征(如来自卷积神经网络顶层的)是一个之前广泛使用的有效方法。不幸的是,这个方法存在丢失那些能用于丰富、增强图片叙述的信息的潜在缺点。使用更多低级别表征有助于保留这些信息。然而,使用这些特性需要一个强大的机制来引导模型获得重要的信息
完成手头的任务。
avatar
    本文中,我们描述了标题生成的方法,试图将一种注意力的形式与两种变体结合起来:一种是“硬”注意力机制,一种是“软”注意力机制。我们也会展示一个包括注意力是展示模型“看”到什么的能力的优点。受到近期在标题生成方面的进步的鼓励和受到近期成功将注意力应用于机器翻译和目标识别的启发,我们研究的模型可以生成标题的同时关注图像的显著部分。
本文的贡献如下:

  • 我们在一个统一的框架下引入了连个基于注意力的图像标题生成器:
    • 1)一种用标准反向传播方法训练的“软”确定性注意机制
    • 2)一种“硬”随机注意机制,通过最大化一个近似的变分下界或通过加强等价地训练。
  • 我们展示了如何通过可视化关注点的“位置”和“什么”来获得洞察力和解释框架的结果。
  • 最后,我们通过三个基准数据集的最新性能定量验证了标题生成中注意力的有效性:Flickr8k 、 Flickr30k 和 MS COCO 数据集。
  1. 相关工作

    在本节中,我们将提供以前关于图像标题生成和注意的工作的背景。近来,几种用于生成图像描述的方法被提出。这其中大部分基于RNN,并受到成功使用 seq2seq 训练神经网络进行机器翻译的启发。图像标题生成非常适合 机器翻译的encoder-decoder 框架的一个主要原因是它类似于将图像“翻译"成一个句子。

    最早使用神经网络进行标题生成的是 Kiros 等人,他们提出了一种多模式对数双线性模型,该模型受到图像特征的影响。这项工作随后由Kiros等人进行,其方法被设计为明确允许一种自然的方式来进行排名和生成。Mao 等人也使用类似的方法只是将一个前馈神经网络语言模型替换为一个循环神经网络的语言模型。Vinyals 等人和Donahue等人都在模型中使用LSTM RNN。不像 Kiros 等人 和 Mao 等人——他们的模型都在输出词序列的每一步看到图像,Vinyals 等人 的模型只在最初的时候将图像展示给 RNN。沿着神经图像标题生成与图像的视觉关注,Donahue等人(2014) 还将 lstms 应用于视频,允许其模型生成视频描述。

    所有这些工作都将图像表示为来自预先训练卷积网络顶层的单个特征向量。Karpathy 和 李 提出学习排名和生成的联合嵌入空间,其模型学习将句子和图像相似性作为R-CNN目标检测的函数,并输出双向RNN。Fang 等人提出一个三步的、结合目标识别的流水线用于生成。他们的模型首先学习基于多实例学习框架的几个可视化概念的检测器。然后将一个训练了标题的语言模型应用于检测器输出,然后从一个联合图像文本嵌入空间重新排序。与这些模型不同,我们提出的注意力框架并没有明确地使用对象检测器,而是从零开始学习潜在的对齐。这允许我们的模型超越“对象性”,学会关注抽象概念。

    在使用神经网络生成标题之前,主要有两种方法。第一个涉及到生成标题模板,这些模板是根据对象检测和属性发现的结果填写的(Kulkarni等人(2013),Li等人(2011),Yang等人(2011年),Mitchell等人(2012),Elliott&Keller(2013))。第二种方法是基于首先从大型数据库中检索相似的标题图像,然后修改这些检索到的标题以适应查询(Kuznetsova等人,2012;2014)。这些方法通常涉及一个中间“括”步骤,以删除仅与检索到的图像相关的标题的细节,例如城市的名称。这两种方法都不再受现在占主导地位的神经网络方法的青睐。

    以前有一长串的工作将注意力融入到与视觉相关的神经网络中。一些与我们的工作具有相同精神的人包括Larochelle&Hinton(2010年),Denil等人(2012年),Tang等人(2014)。尤其是,我们的工作直接扩展了Bahdanau等人的工作。(2014年),mnih等人(2014年),BA等人(2014)。

  1. 基于注意力机制的图像描述生成

3.1 模型细节

    在本节中,我们首先描述了基于注意的模型的两种变体的公共框架。主要区别在于我们在第4节中详细描述的φ函数的定义。我们用黑体表示向量,用大写字母表示矩阵。在下面的描述中,我们抑制了可读性的偏差项。
avatar
图片4 一个 LSTM 神经元,带粗体方块的线条意味着使用已学习的权重向量进行投影。每个单元学习如何称重其输入组件(输入门),同时学习如何调节对存储器的贡献(输入调节器)。它还学习擦除存储单元的权重(忘记门),以及控制如何发出该内存的权重(输出门)。

3.1.1 编码器(Encoder):卷积化的特征
     我们的模型采用一个原始图像,并生成一个标题Y,该标题Y被编码为1/K编码的单词序列。
y={y1,....,yC},yi∈RKy = \{y_1,....,y_C\},y_i\in{R}^Ky={y1,....,yC},yiRK
     这儿 K 是词典的大小,C是输出标题的长度。

     我们使用卷积神经网络来提取一组特征向量,我们称之为注释向量。提取器生成L向量,每个向量都是对应于图像一部分的D-维 表示。
a={a1,...,aL},ai∈RDa = \{a_1,...,a_L\},a_i \in {R}^Da={a1,...,aL},aiRD
     为了获得特征向量与二维图像部分之间的对应关系,我们从较低的卷积层提取特征,这与之前的工作不同,前者使用完全连接层。这允许解码器通过选择所有特征向量的子集,有选择地聚焦于图像的某些部分。

3.1.2 解码器(Decoder):长短期记忆网络 LSTM Network

     我们使用一个 LSTM 网络,它产生一个标题,通过
每一时间步基于上下文向量、上一个隐藏状态和上一个生成单词生成一个单词。我们在视觉上关注LSTM神经图像标题生成的实现与Zaremba等人使用的方法非常接近。使用 Ts,t:Rs→RtT_{s,t}:R^s \rightarrow R^tTs,t:RsRt
用已知参数表示简单的仿射变换,
(itftotgt)=(σσσtanh)TD+m+n,n(Eyt−1ht−1z^t)  (1)\begin{pmatrix} i_t\\f_t\\o_t\\g_t \end{pmatrix} = \begin{pmatrix}\sigma\\\sigma\\\sigma\\tanh\end{pmatrix}T_{D+m+n,n}\begin{pmatrix}Ey_{t-1}\\h_{t-1}\\{\hat{z}}_t\\\end{pmatrix} \ \ \big(1\big)itftotgt=σσσtanhTD+m+n,nEyt1ht1z^t  (1)
ct=ft∗ct−1+it∗gt      (2)c_t=f_t\ast c_{t-1}+i_t\ast g_t \ \ \ \ \ \ \big(2\big)ct=ftct1+itgt      (2)
ht=ot∗tanh(ct)      (3)h_t=o_t\ast tanh\big(c_t\big) \ \ \ \ \ \ \big(3\big)ht=ottanh(ct)      (3)
这儿,it,ft,ot,hti_t,f_t,o_t,h_tit,ft,ot,ht分别为 LSTM 对应的输入、遗忘、输出和隐藏状态。向量z^∈RD\hat{z} \in R^Dz^RD为上下文向量,捕获与特定输入位置相关联的可视信息,如下所述。E∈Rm×KE \in R^{m \times K}ERm×K是一个嵌入矩阵。设m和n分别表示嵌入维数和lstm维数,σ和∗\sigma 和 \astσ 分别表示logistic激活函数和矩阵元素级乘法。

    简单来说,上下文向量z^t{\hat{z}}_t z^t是时间 t 时图像输入的相关部分的动态表示。我们定义了一个机制φ,它根据注释向量a i(i=1,…,L)计算z_t。1,…,l对应于在不同图像位置提取的特征。对于每个位置i,该机制生成一个正权重αi,可以解释为位置i是生成下一个词的正确焦点的概率(“硬”但随机的注意机制),或者解释为在将 ai 混合在一起时给予位置i的相对重要性。每个注释向量a i的权重αi是由注意模型fatt计算的,对于这个模型,我们使用一个多层感知器,其条件是前一个隐藏状态ht-1。Bahdanau等人介绍了这种注意力机制的软版本。(2014)。为了强调这一点,我们注意到,隐藏状态随着输出RNN在其输出序列中的前进而变化:“在哪里”网络下一步看起来取决于已经生成的单词序列。
eti=fatt(ai,ht−1)   (4)αti=exp(eti)Σk=1Lexp(etk)   (5)e_{ti}=f_{att}\big(a_i,h_{t-1}\big) \ \ \ \big(4\big)\\ {\alpha}_{ti}={exp\big(e_{ti}\big)\over{\Sigma^L_{k=1}}exp\big(e_{tk}\big)} \ \ \ \big(5\big)eti=fatt(ai,ht1)   (4)αti=Σk=1Lexp(etk)exp(eti)   (5)
一旦计算完这些权重,上下文向量 z 计算如下:
z^t=ϕ({ai},{αi})   (6)\hat{z}_t=\phi\big(\{a_i\},\{{\alpha}_i\}\big) \ \ \ \big(6\big)z^t=ϕ({ai},{αi})   (6)
这儿 ϕ\phiϕ是 给定一组注释向量及其相应权重,返回单个向量的函数。在第4部分中讨论了 ϕ\phiϕ函数的详细信息。
    LSTM的初始记忆状态和隐藏状态是通过两个单独的MLP 输入的注释向量的平均值来预测的(init,c ,init, h)。
co=finit,c(1LΣiLai)c_o=f_{init,c}\big({{1\over L} {\Sigma}^L_ia_i\big)}co=finit,c(L1ΣiLai)
ho=finit,h(1LΣiLai)h_o=f_{init,h}\big({{1\over L} {\Sigma}^L_ia_i\big)}ho=finit,h(L1ΣiLai)
在这项工作中,我们使用一个深度输出层(Pascanu等人),计算给定LSTM状态、上下文向量和前一个词的输出词概率:
p(yt∣a,y1t−1)∝exp(Lo(Eyt−1+Lhht+Lzz^t))   (7)p\big(y_t|a,y^{t-1}_1\big)\propto exp\big(L_o\big(Ey_{t-1}+L_hh_t+L_z\hat{z}_t\big)\big) \ \ \ \big(7\big)p(yta,y1t1)exp(Lo(Eyt1+Lhht+Lzz^t))   (7)
这儿 Lo∈RK×m,Lh∈Rm×n,Lz∈Rm×DL_o\in R^{K\times m},L_h\in R^{m\times n},L_z\in R^{m\times D}LoRK×m,LhRm×n,LzRm×D,同时 E 是随机初始化的学习参数。

  1. 学习随机 ”硬“ VS 确定性 ”软“ 注意

    本章我们讨论注意力模型的两种可选机制fattf_{att}fatt:随机注意和确定性注意。

4.1 随机”硬“注意
    我们用位置变量 st s_t {\ }st  表示模型在生成第 ttht^{th}tth词时决定聚焦注意的位置。st,is_{t,i}st,i是一个独热指示器,如果第 i 个位置(不在 L 中)是用于提取视觉的位置,则将其设置为1 。通过将注意力的位置作为中间的潜在变量,我们可以指定一个由{αi\alpha _iαi}作为参数的多重努力分布,并将 z^t\hat z_tz^t看作一个随机变量:
p(st,i=1∣sj&lt;t,a)=αt,i    (8)p(s_{t,i}=1|s_{j&lt;t},a)=\alpha _{t,i} \ \ \ \ (8)p(st,i=1sj<t,a)=αt,i    (8)
z^t=Σist,iai   (9)\hat z_t = \Sigma _i s_{t,i}a_i \ \ \ (9)z^t=Σist,iai   (9)

    我们定义了一个新的目标函数 LsL_sLs,它是观察给定图片特征a 的单词序列 y 的边缘对数似然 logp(y∣a)p(y|a)p(ya) 的变分下界。模型参数的学习算法可以通过直接优化LsL_sLs得出:
Ls=Σsp(s∣a)logp(y∣s,a)≤logΣsp(s∣a)p(y∣s,a)=log p(y∣a)       (10)L_s=\Sigma _s p(s | a)logp(y|s,a)\\ \leq log\Sigma _s p(s | a)p(y | s,a) \\ =log \ p(y | a) \ \ \ \ \ \ \ (10)Ls=Σsp(sa)logp(ys,a)logΣsp(sa)p(ys,a)=log p(ya)       (10)
∂Ls∂W=Σsp(s∣a)[∂logp(y∣s,a)∂W+logp(y∣s,a)∂logp(s∣a)∂W].     (11){\partial L_s\over{\partial W} }=\Sigma _s p(s | a)\bigg[{{\partial log p(y | s,a)}\over \partial W} + logp(y | s,a){{\partial logp(s | a)}\over {\partial W}}\bigg ].\ \ \ \ \ (11)WLs=Σsp(sa)[Wlogp(ys,a)+logp(ys,a)Wlogp(sa)].     (11)

等式 11 提出了基于蒙特卡罗的模型参数梯度抽样近似。这可以通过从方程8定义的多努分布中取样位置sts_tst来实现。
s\stackrel{}{s}s

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值