当前位置:网站首页>论文笔记:Look Back and Predict Forward in Image Captioning# Look Back and Predict Forward in Image Capti
论文笔记:Look Back and Predict Forward in Image Captioning# Look Back and Predict Forward in Image Capti
2022-07-19 05:20:00 【刚学编程的小白( •̥́ ˍ •̀ू )】
Look Back and Predict Forward in Image Captioning
1、提出问题
大多数现有的基于注意力的图像描述方法都在一个时间步内关注当前单词和视觉信息并生成下一个单词,而不考虑视觉和语言的连贯性。
2、创新点
提出一种模型: Look Back and Predict Forward method(LBPF) ,以进一步整合过去的视觉信息和未来的语言信息。包括 Look Back(LB)和 Predict Forward(PF)两个部分。
我们的 LB 方法将上一个时间步的注意力值输入到当前注意力模块的输入中,以满足人类的视觉连贯性;
PF 方法在一个时间步内生成两个下一个单词,它利用语言连贯性并整合未来的信息,在推理阶段,将生成的两个概率组合在一起以预测当前单词。
3、方法
首先给定一个图像I,我们使用预训练的编码器模型生成图像特征 V={v1,v2,····, vk}, vi ∈ \in ∈RD,并将平均池化向量v~作为全局信息,然后我们在解码端应用我们的 LBPF 方法。
3.1、Look Back Model
给定k个空间图像特征向量 V={v1,v2,····, vk} ∈ \in ∈ RD×k 和当前隐藏状态 ht ∈ \in ∈Rd,传统的注意力模块使用注意力函数fatt来计算加权平均向量attt为:
一般情况下,计算出的加权平均向量attt直接与ht连接起来,预测下一个词y′t+1。然而attention的区域应当有视觉的连贯性,且能够为之后的时间步提供信息。
因此,我们提出了 Look Back 方法,该方法有助于将先前的注意力结果考虑在内。如上图所示,我们引入 attt-1,这是之前的注意力结果,并将其与当前隐藏状态ht连接,作为fatt的输入。我们将 o o o表示为连接操作,我们得到新的 attt为:
加权向量 α \alpha α和最终的注意力attt具体计算过程为:
其中,Ht=ht o o o attt-1;Wvu, Whu和wu是fatt中的参数; α \alpha αt = { α \alpha α1,t, α \alpha α2,t,…, α \alpha αk,t} ∈ \in ∈ Rk 是一个和为1的k维向量。
值得一提的是,在我们的 Look Back 模型中,我们简单地使用 attt-1 的值并切断通过它到上一个时间步的反向传播。如果所有的梯度都累加在一起,注意力模块可能会变得过于复杂并且难以收敛。
3.2、Predict Forward Model
在大多数现有的序列生成方法中,将当前词 yt 经过word embedding送入基于RNN的架构中,并在该时间步预测下一个词 y’t+1。在推理阶段,y′t+1 很大程度上取决于 y′t,错误采样的概率导致序列生成不可避免的累积误差(exposure bias)。我们在此提出了 Predict Forward 方法来在一个时间步中预测 y’t+1 和 y’t+2 以缓解这个问题。
如上图所示,给定 LSTM 的隐藏状态 h1t 和视觉特征 V,我们通过 Att 模块得到 att1t 并将它们一起输入 LSTM2。这里我们将注意力函数记为 fatt,将 LSTM2 的数学运算记为 F2,将拼接运算记为 o o o,则 h2t 可以计算为:
h2t-1 是上一个时间步 LSTM2 输出的隐藏状态。
然后,h2t 送入 logit1 层来获得生成 y’t+1 的概率 p2t :
在我们提出的 PF 模块中,h2t 除了输入到 logit1 层之外,它还进一步经过 Att 和 LSTM2 模块并预测 h3t 。
相同的颜色表示 Att 模块和 LSTM2 的参数是相同的。与原始方法的主要区别在于 LSTM2 的隐藏状态更新为h2t 。然后 h3t 由以下生成:
接下来,将 h3t 连接到另一个 logit2 层以预测 y’t+2 的概率 p3t 为:
连接 LSTM2 和 h3t 的虚线表示 h3t 不会传递到下一个时间步,只是用来生成 y′t+2。相反,在下一个时间步中,h2t在下一个时间步中被存储,用来生成 h3t 和 h2t+1 。
我们将 Predict Forward 模块表示为 PF-LSTM 单元,以便进一步解释。
在训练阶段,采用交叉熵损失衡量,PF-LSTM分T个步骤执行,其中T为 ground-truth Y的长度。
这个过程会产生两个预测语句:Y1’ = {y1’1,y1’2,…,y1’T,EOS} 和 Y2’ = {y2’2,y2’3,…,y2’T,EOS,EOS} ,其中,Y1’对应h2t的结果, Y2’对应h3t的结果。
训练阶段的输入从 (BOS) 开始,通常为零向量,预测序列以 (EOS) 结束。当 h2t 输出 EOS 时,我们放弃了Y2’ 中的最后一个 EOS。
然后,我们将损失函数定义为:
loss1 +loss2 同样为 Y1’ 和 Y2’的损失函数 ,这促使模型更准确的预测 y′t+1 和 y′t+2。为了利用这一优势,我们通过以下方式将 y1′t 和 y2′t 的预测概率组合在一起:(15)
λ \lambda λ 是一个权衡系数,用来平衡 p2t 和 p3t-1 。我们通过 p’t 来预测下一个单词。
推理阶段采用了波束搜索的方法,从这两种概率分布来看,波束大小为3基本上可以保证最优单词的存在。
这个操作使得预测 y’t+1不再简单地依赖于采样的 y’t,也可以直接查看前一时间步长的生成结果,有效地减少了错误采样的累积误差。
我们还将我们的模型与 CIDEr 上的 self-critical(SC) 优化一起应用。传统的关于图像描述生成的 self-critical 学习侧重于优化预测序列上的 CIDEr 分数。训练过程是最小化负期望奖励:
其中,r(y1:T) 是序列 Y1’ 的 CIDEr 分数, θ为网络参数。
根据基于强化学习方法,梯度近似为:
其中,ys1:T 表示采样序列,ym1:T 表示最大采样序列,基线为 r(ym1:T) 反映网络的当前容量。
在 PF 模块中,同时生成了两个序列 Y1’, Y2’,而 self-critical sequence training (SCST) 肯定需要一个序列进行优化。为了将我们的 PF 模型与 SCST 一起应用,我们选择 Y1’ 进行 CIDEr 分数优化训练,并通过将 Y2’ 的交叉熵损失附加到 Y1’ 来强制 Y2’ 逼近 Y1’,并将 Y1 作为 ground-truth(以第一步学习的结果为标签计算交叉熵损失)。交叉熵损失 Lc 计算如下:
然后我们将 self-critical 损失 Lr 和交叉熵损失 Lc 结合在一起,作为 SCST 的总损失:
在 SCST 的推理阶段,我们也将 Y1’ 和 Y2’ 的概率一起使用,并按照公式(15)生成最终序列。
3.3、Look Back and Predict Forward Model
Look Back 模型专注于注意力模块,并将上一个时间步的注意力结果作为输入,这有助于模型嵌入来自先前视觉注意力的信息。预测前向模型旨在在一个时间步中预测接下来的两个单词。我们可以将这两个模型组合在一起,只需在一个时间步中为下一个时间步保留两个注意力结果(att1t 和 att2t),如图 1所示。通过引入先前和未来的信息,我们的 LBPF 模型能够通过情境和视觉信息的上下文来预测下一个单词,从而提供更多的细节和指导。
LSTM2 和 Att 相同的颜色表示它们共享相同的参数;Et 表示 yt 的词嵌入。
边栏推荐
- openstack 热迁移报错:Exception during message handling InvalidCPUInfo Unacceptable CPU info CPU do
- 网络安全学习(十三)数据链路层
- Unreal Engine learning (I)
- 系统安全和运用
- Mikrotik ROS软路由设置上网方式(一)
- Nju Nanjing University Digital and electrical experiment class big experiment: character games
- IP---ia复习
- 黑马程序员线程池
- Nanjing University calculation method (numerical analysis) final review notes
- ZTE ZXR10 5250 command hints
猜你喜欢
fio测试硬盘性能
Postgresql Tutorial
Mikrotik ROS软路由设置上网方式(二)
Network Security Learning (XVIII) single arm routing, ICMP, layer 3 switching
Network Security Learning (XX) ACL
Nanjing University calculation method (numerical analysis) final review notes
单臂路由和VRRP
Mikrotik ROS soft route setting Internet access mode (I)
zabbix自动发现并监控GPU
Leetcode: Game 302 (summary)
随机推荐
Nju Nanjing University Digital and electrical experiment class big experiment: character games
磁盘以及文件系统
ceph 纠删码解读和实践
抽象类和接口的区别
ZTE ZXR10 5250 command hints
【资源记录】流形学习 Manifold learning 和 PCA 的关系
mysql galera集群配置
黑马程序员多线程实现方式三
Latex ieee paper首页标题下方插入跨分栏图片,并解决脚注问题
进程和计划任务管理
zabbix 自动发现并监控ceph osd
Learning notes: cat's eye Top100 movie information crawling
“==”与equals的区别
静态路由复习
FileInputStream与BufferedInputStream有哪些区别?
redhat 7更换yum源
网络安全学习(十七)VlAN
2022-7-11 Gu Yujia's study notes of group 8 (JS)
ceph 创建存储池提示pool size is bigger than the crush rule max size
suse 11 进入单用户