Show, Attend and Tell: Neural Image Caption Generation with Visual Attention论文笔记

文章内容

引入一种基于注意力的模型,可以自动学习描述图像内容。本文描述了如何使用标准反向传播技术(standard backpropogation techniques)以确定性方式训练训练该模型,并通过最大化变分下界(variational lower bound)来随机训练该模型。本文还通过可视化展示了模型如何能够自动学习将目光固定在显著物体(salient objects)上,同时在输出序列中生成相应的单词。本文在三个基准数据集:Flickr8k、Flickr30k 和 MS COCO 上验证了注意力的使用和最先进的性能。
在这里插入图片描述

模型总结

在这里插入图片描述
解码器的任务是查看编码图像并逐字生成字幕。由于它生成一个序列,所以需要使用递归神经网络(RNN)。我们将使用 LSTM。在没有注意力机制的典型设置中,可以简单地对所有像素的编码图像进行平均。然后,将这个平均值,带有或不带有线性变换,作为解码器的第一个隐藏状态输入,然后生成字幕。每个预测的单词用于生成下一个单词。就像下面这张图:
在这里插入图片描述在具有注意力机制的设置中,我们希望解码器能够在序列的不同时间点查看图像的不同部分。例如,在生成句子 “a man holds a football” 中的 “football” 这个词时,解码器会知道要关注——足球!那就像下面这张图:
在这里插入图片描述并且使用加权,其中重要像素的权重较大。这个加权的图像表示可以在每一步与先前生成的单词连接起来,以生成下一个单词。
在这里插入图片描述
在这里插入图片描述
其实总的来说,加权就是为了让下面要关注的区域权重更大。
自己捋一下(可能会有错误,主要是为了自己理解,请大家指正):
在这里插入图片描述在这里插入图片描述

1 介绍

注意力不是将整个图像压缩为静态表示,而是允许显著特征根据需要动态地出现在最前面。之前的方法都使用视觉特征(比如从CNN后面的层中的特征图)提取图像中的显著物体的信息。, 这样会丢失很多有用的低层次图像信息. 这些低层次信息使模型生成更丰富详细的描述, 但同时也需要一个强大的机制来提取对问题最有用的低层次特征。
本文提出了基于注意力机制(Soft Attention, Hard Attention)的图像描述生成模型. 本文的贡献如下:

  • 在通用框架下引入两种基于注意力的图像字幕生成器: 使用基本反向传播训练的soft deterministic attetnion方法和使用最大化近似变分下界或强化学习训练的hard sochastic attention方法。
  • 展示了如何通过可视化注意力集中的“哪里”和“什么”来获得洞察力并解释该框架的结果。
  • 在三个基准数据集(MS COCO、Flickr8k、Flickr30k)上量化验证Attention在字幕生成在的有用性。

2 相关工作

之前所有工作都将图像表示为来自预训练卷积网络顶层的单个特征向量。
本文提出的注意力框架没有明确使用对象检测器,而是从头开始学习潜在对齐,这使得本文的模型能够超越客观性并学会关注抽象概念。(对象检测器是一种计算机视觉算法或模型,用于检测图像或视频中的特定对象或物体,他们可以识别和定位图像中的不同对象,并在图像中给出对象的边界框或分割掩护模。)

3 带注意力机制的图像标题生成

3.1 模型细节

在描述中,为了可读性,抑制了偏差项。
(1)Encoder:卷积特征

  • 模型采用单个原始图像并生成one-hot编码(1-of-K)单词序列的caption y.
  • 公式
    • K是词汇量的大小,K=10000。 y 1 y_1 y1是一个10000维的向量。C是字幕的长度,表示接下来机器要翻译的这句话有多长,有多少个文字。
  • 采用卷积神经网络CNN提取L(这篇文章里用的是14*14=196,也就是关注的attention中心有196个位置,每个位置通过VGG后提取出512个feature vector)个D维(512维)的特征向量,本文将其称为注释向量。每个向量对应于图像的一部分的D维表示。
  • 在这里插入图片描述
  • 与此前的工作中使用Softmax层之前的全连接层提取图像特征不同,本文从较低的卷积层(lower convolutional layer)中提取特征。这允许解码器通过选择所有特征向量的子集选择性地聚焦图像的某些部分,也就是将attention机制嵌入。
    • 对于通过选择所有特征向量的子集选择性地聚焦图像的某些部分的解释:在解码器生成词语时,每个特征向量都可以被赋值一个权重,表示该特征在生成当前词语时的重要性或关注度,通过选择特定的特征向量子集,可以使模型更加集中地关注图像的某些部分,而忽略其他部分,从而更好地描述图像内容。这种选择性聚焦机制使得模型可以在生成过程中动态地选择关注图像中最相关的特征,从而提高图像描述的准确性和可解释性。

(2)Deconder:长短期记忆网络(LSTM)
用LSTM生成caption。LSTM根据上下文向量、先前的隐藏状态和之前生成的单词,在每个时间步生成一个单词来生成caption。
长短期记忆网络是一种递归神经网络RNN的变体,专门用于处理和预测序列数据。它通过引入门控制机制和记忆细胞,能够更好地捕捉序列中的长期依赖关系,并解决传统的RNN中的梯度消失或梯度爆炸问题。
下图LSTM 单元中带有粗体方块的线条表示经过学习的权重向量进行的投影。
在这里插入图片描述

  • 使用 T s , t T_{s,t} Ts,t R s R^s Rs—> R t R^t Rt表示带有学习参数的简单仿射变换。
    在这里插入图片描述
    attention网络可以更新 g t g_t gt
  • 上下文向量 z t z_t zt是输入图像的相关部分的动态表示。定义一种机制φ,根据注释向量a计算向量 z t z_t zt。L对应于在不同图像位置提取到的特征。
  • 对于每个位置i,该机制生成一个正权重 α i α_i αi α i α_i αi可以解释为位置i是生成下一个单词的正确焦点位置的概率(“硬”但随即的注意机制); α i α_i αi也可以解释为混合注释向量 a i a_i ai时给予位置i相对重要性的权重。
  • 每个注释向量 a i a_i ai的权重 α i α_i αi由注意力模型 f a t t f_{att} fatt计算得到。该模型是一个多层感知器,其条件是上一个时间步的隐藏状态 h t − 1 h_{t-1} ht1
  • 隐藏状态随着输出RNN在其输出序列中前进而变化(换句话说,RNN在生成每个词的过程中,隐藏状态会随着生成序列的不断前进而不断改变。隐藏状态在RNN中扮演着记忆和信息传递的角色,它通过将先前生成的词的信息编码为一个固定长度的向量,来传递上下文信息给下一个时间步,因此,隐藏状态的变化反应了生成序列的演进和对先前生成词的记忆。),网络接下来“看”哪儿取决于已经生成的单词序列(意味着生成序列的每个词都可以影响下一个隐藏状态的就算和决策,以便生成更准确地下一个词)。
    在这里插入图片描述
    一旦权重 α i α_i αi计算出来了,那么上下文向量 z t z_t zt也就可以得到了:
    在这里插入图片描述
  • 这里的φ是一个函数,作用如上面公式所示,就是根据注释向量和已经计算得到的权重得到上下文向量 z t z_t zt
  • LSTM的初始记忆和隐藏状态通过将注释向量输入两个独立的多层感知机MLPs(init,c and init,h)得到平均值进行预测。
    在这里插入图片描述
  • 在这项工作中,本文使用一个深度输出层来计算给定LSTM状态、上下文向量和前一个单词的输出单词概率。
    在这里插入图片描述

3.2 Deterministic “soft” attention(确定性软注意力)

由于我用不到hard attention,所以关于它的一部分跳过没有阅读。
soft attention中,不像hard attention那样对特定时间特定区域只有关注与不关注,而是对所有区域都关注,只是关注的重要程度不一样。
学习随即注意力(即硬注意力)需要每次对注意力位置 s t s_t st进行采样,本文直接取上下文向量 z t z_t zt的期望:在这里插入图片描述
并通过计算软注意力加权注释向量φ({ a i a_i ai},{ α i α_i αi})= ∑ i L ∑_i^L iL a i a_i ai α i α_i αi来制定确定性注意力模型(即软注意力)。这对应于将一个通过权重α处理的上下文输入到系统中。整个模型在确定性注意力是平滑且可微的,因此使用标准反向传播进行端到端学习是微不足道的。
学习确定性注意力可以理解为在硬注意力那一节注意力位置随机变量 s t s_t st(位置变量 s t s_t st表示为模型在生成第t个单词时决定关注的位置。)下,对公式10的边际似然进行近似优化的过程。
在这里插入图片描述

  • 目标函数 L s L_s Ls用于衡量模型在给定观察到的注释向量a时,生成相应的单词序列y的概率。这个目标函数可以看成是评估模型生成能力的指标。在实际应用中,计算边际对数似然可能非常困难,因为涉及到对所有可能地单词序列的求和,为解决这个问题,可以使用变分推断来近似计算边际概率的下界,即变分下界。
    LSTM隐藏激活 h t h_t ht是随机上下文向量 z t z_t zt的线性投影后,再经过tanh非线性激活函数得到的结果(所以 h t h_t ht的范围在-1到+1之间)。
  • 通过tanh非线性激活函数,可以将线性组合的结果转化为非线性的输出,增强模型的表达能力。
  • 线性投影涉及一个权重矩阵和偏置向量,将随即上下文向量的维度转换为隐藏状态维度。

对于一阶泰勒近似,期望值 E p ( s t ∣ a ) h t E_{p(s_t|a)}h_t Ep(sta)ht等于使用单个前向传播和期望上下文向量 E p ( s t ∣ a ) z t E_{p(s_t|a)}z_t Ep(sta)zt计算隐藏状态 h t h_t ht

  • E p ( s t ∣ a ) h t E_{p(s_t|a)}h_t Ep(sta)ht 表示在给定注释向量a的条件下,隐藏激活 h t h_t ht的期望值;
  • E p ( s t ∣ a ) z t E_{p(s_t|a)}z_t Ep(sta)zt表示在给定注释向量a的条件下,随即上下文向量 z t z_t zt的期望值。
    在这里插入图片描述
  • n i , t n_{i,t} ni,t表示将 z t z_t zt设置为 a i a_i ai时计算得到的 n t n_t nt
    我们定义了归一化加权几何平均值用于softmax层第k个单词的预测。这个值可以用来表示模型对于第k个单词的预测置信度的程度,其中加权的 n t n_t nt表示了不同条件下对预测的贡献,而归一化则确保了结果的合理性。
    在这里插入图片描述
  • 使用预期上下文向量可以很好地近似字幕预测的归一化加权几何平均值;
  • 在这里插入图片描述
  • 这个等式表示softmax 单元的 NWGM 是通过将 softmax 应用于底层线性投影的期望来获得的。
  • 根据 (Baldi & Sadowski, 2014) 的结果,在softmax激活下的下式表明:随机变量 s t s_t st引起的所有可能注意的位置的输出期望都是通过使用预期上下文向量 E [ z t ] E[z_t] E[zt]的简单前向传播来计算的。换句话说,确定性注意力模型是注意力位置边际似然的近似。
  • 在这里插入图片描述
  • 随即上下文变量 z t z_t zt取决于随机位置变量 s t s_t st,它将注意力从离散的位置分布转化为连续的上下文变量。

3.3 双随机注意力

通过构造 ∑ i α t i ∑_iα_{ti} iαti=1,因为它们是softmax层的输出,在训练模型的确定性版本时,引入了双随机正则化(doubly stochastic regularization )形式,其中,鼓励 ∑ i α t i ∑_iα_{ti} iαti≈1。这可以解释为鼓励模型在生成过程中同等的关注图像的每一个部分,这有助于模型生成更丰富和描述性更强的语句。
此外,软注意力模型在每个时间步t预测来自先前隐藏状态 h t − 1 h_{t-1} ht1的门控标量β,
使得φ({a_i},{α_i})=β ∑ i L a i α i ∑_i^La_iα_i iLaiαi,其中,β=σ( f β ( h t − 1 ) f_β(h_{t-1}) fβ(ht1));

  • β t β_t βt代表注意力权重,σ表示sigmoid函数, f β f_β fβ表示一个前馈神经网络, h t − 1 h_{t-1} ht1表示先前的隐藏状态。
  • 这个式子用来表示先前的隐藏状态对当前注意力未知的重要程度,这个注意力权重后面将用来计算加权上下文向量。
  • 通过将门控标量β与注意力分数 a i a_i ai的乘积相加,可以将更多的注意力集中在图像中的特定对象或目标上。这是通过将注意力权重t与注意力分数a_i相乘,然后取总和来实现的。这样,在计算上下文向量时,更重要的对象将得到更大的权重,从而在最终生成的输出中占据更大的比例。
    具体来说,通过最小化以下惩罚负对数似然来对模型进行端到端训练:
    在这里插入图片描述

4 实验结果

在这里插入图片描述

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
本课程适合具有一定深度学习基础,希望发展为深度学习之计算机视觉方向的算法工程师和研发人员的同学们。基于深度学习的计算机视觉是目前人工智能最活跃的领域,应用非常广泛,如人脸识别和无人驾驶中的机器视觉等。该领域的发展日新月异,网络模型和算法层出不穷。如何快速入门并达到可以从事研发的高度对新手和中级水平的学生而言面临不少的挑战。精心准备的本课程希望帮助大家尽快掌握基于深度学习的计算机视觉的基本原理、核心算法和当前的领先技术,从而有望成为深度学习之计算机视觉方向的算法工程师和研发人员。本课程系统全面地讲述基于深度学习的计算机视觉技术的原理并进行项目实践。课程涵盖计算机视觉的七大任务,包括图像分类、目标检测、图像分割(语义分割、实例分割、全景分割)、人脸识别、图像描述、图像检索、图像生成(利用生成对抗网络)。本课程注重原理和实践相结合,逐篇深入解读经典和前沿论文70余篇,图文并茂破译算法难点, 使用思维导图梳理技术要点。项目实践使用Keras框架(后端为Tensorflow),学员可快速上手。通过本课程的学习,学员可把握基于深度学习的计算机视觉的技术发展脉络,掌握相关技术原理和算法,有助于开展该领域的研究与开发实战工作。另外,深度学习之计算机视觉方向的知识结构及学习建议请参见本人CSDN博客。本课程提供课程资料的课件PPT(pdf格式)和项目实践代码,方便学员学习和复习。本课程分为上下两部分,其中上部包含课程的前五章(课程介绍、深度学习基础、图像分类、目标检测、图像分割),下部包含课程的后四章(人脸识别、图像描述、图像检索、图像生成)。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值