NIPS 2017论文解读 | 基于对比学习的Image Captioning

简介:

关于作者:蔡文杰,华南理工大学硕士生,研究方向为Image Caption。


■ 论文 | Contrastive Learning for Image Captioning

■ 链接 | https://www.paperweekly.site/papers/1344

■ 源码 | https://github.com/doubledaibo/clcaption_nips2017

论文动机

本文提出的 Contrastive Learning (CL) 主要是为了解决 Image Caption 任务中生成的 Caption 缺少 Distinctiveness 的问题。 

这里的 Distinctiveness 可以理解为独特性,指的是对于不同的图片,其 caption 也应该是独特的、易于区分的。即在所有图片中,这个 caption 与这幅图片的匹配度是最高的

然而现在大多数的模型生成的 caption 都非常死板,尤其是对于那些属于同一类的图片,所生成的 caption 都非常相似,而且 caption 并没有描述出这些图片在其他方面的差异。

Empirical Study

文章提出了一个 self-retrieval study,来展示缺少 Distinctiveness 的问题。作者从 MSCOCO test set 上随机选取了 5000 张图片 I1,...I5000,并且用训练好的 Neuraltalk2 和 AdaptiveAttention 分别对这些图片生成对应的 5000 个 caption c1,...,c5000

用 pm(:,θ) 表示模型,对于每个 caption ct,计算其对于所有图片的条件概率pm(ct|I1),...,pm(ct|I5000),然后对这些概率做一个排序,看这个 caption 对应的原图片是否在这些排序后的结果的 top-k 个里,具体可见下图。

00312d13b2b0114deb6dc2e66b08db203e6a0321

可见加入了 CL 来训练以后,模型的查找准确率明显提高了,并且 ROUGE_L 以及 CIDEr 的分数也提高了,准确度与这两个评价标准的分数呈正相关关系。这说明提高 Distinctiveness 是可以提高模型的 performance 的

Contrastive Learning

先介绍通常使用 Maximum Likelihood Estimation (MLE) 训练的方式,这里借用 show and tell 论文里面的图:

4db4b7c817de952f5c2364e678d40f6644f53696

输入一副图片以后,我们会逐个地得到下一个目标单词的概率 pt(St),我们需要最大化这个概率,而训练目标则通过最小化640?tp=webp&wxfrom=5&wx_lazy=1来实现这一目标。 

而使用 MLE 训练会导致缺少 Distinctiveness 的问题,作者在他之前的文章 Towards Diverse and Natural Image Descriptions via a Conditional GAN 里面已经解释过了,大家可以读一读。 

CL 的中心思想是以一个参考模型 (reference model,如 state-of-the-art 的模型,本文以 Neuraltalk2 和 AdaptiveAttention 为例) 作为 baseline,在此基础上提高 Distinctiveness,同时又能保留其生成 caption 的质量。参考模型在训练过程中是固定的。 

CL 同时还需要正样本和负样本作为输入,正负样本都是图片与 ground-truth caption 的 pair,只不过正样本的 caption 与图片是匹配的;而负样本虽然图片与正样本相同,但 caption 却是描述其他图片的。

具体符号:

  • 目标模型 target model:pm(:,θ
  • 参考模型 reference model:pn(:,ϕ)
  • 正样本 ground-truth pairs: X=((c1,I1),...,(cTm,ITm)) 
  • 负样本 mismatched pairs: Y=((c/1,I1),...,(c/Tn,ITn))

目标模型和参考模型都对所有样本给出其估计的条件概率 pm(c|I,θ) 和 pn(c|I,θ),这里的pm(c|I,θ应该是输入图片后,依次输入 caption 中的单词S0,...,SN−1,并且依次把得到的下一个目标单词概率 p1(S1),...,pN(SN) 相乘所得到的。结合上图看会更清晰。

并且希望对于所有正样本来说,pm(c|I,θ大于 pn(c|I,θ);对于所有负样本,pm(c|I,θ小于pn(c|I,θ)。意思就是目标模型对于正样本要给出比参考模型更高的条件概率,对于负样本要给出比参考模型更低的条件概率。

定义 pm(c|I,θ和 pn(c|I,θ的差为 D((c,I);θ,ϕ)=pm(c|I,θ)−pn(c|I,θ),而 loss function 为:

16cb188d3b0a8bcd574b6cd0d8140b15225dd2ce

这里应该是最大化 loss 进行求解。

然而实际上这里会遇到几个问题: 

首先 pm(c|I,θ和 pn(c|I,θ都非常小(~ 1e-8),可能会产生 numerical problem。因此分别对pm(c|I,θ和 pn(c|I,θ取对数,用 G((c,I);θ,ϕ)=lnpm(c|I,θ)−lnpn(c|I,θ) 来取代 D((c,I);θ,ϕ)。

其次,由于负样本是随机采样的,不同的正负样本所产生的 D((c,I);θ,ϕ大小也不一样,有些 D可能远远大于 0,有些 D 则比较小。

而在最大化 loss 的过程中更新较小的 D 则更加有效,因此作者使用了一个 logistic function (其实就是 sigmoid)640?tp=webp&wxfrom=5&wx_lazy=1,来 saturate 这些影响,其中 ν=Tn/Tm, 并且 Tn=Tm 来平衡正负样本的数量。

因此,D((c,I);θ,ϕ又变成了:h((c,I);θ,ϕ)=(G((c,I);θ,ϕ)))。

由于 h((c,I);θ,ϕ)∈(0,1),于是 loss function 变成了:

5373e37a55ca0ae776ac0fc03d33edc6b2cf20fd

等式的第一项保证了 ground-truth pairs 的概率,第二项抑制了 mismatched pairs 的概率,强制模型学习出 Distinctiveness。

另外,本文把 X 复制了 K 次,来对应 K 个不同的负样本 Y,这样可以防止过拟合,文中选择 K=5。 

最终的 loss function:

3dfaa813d3c57681ab28b09d581b81e7d0abe9d1

以上的这些变换的主要受 Noise Contrastive Estimation (NCE) 的启发。

理想情况下,当正负样本能够被完美分辨时,J(θ)的上界是 0。即目标模型会对正样本 p(ct|It) 给出高概率,负样本 p(c/t|It给出低概率。

此时:

G((ct,It);θ,ϕ)=→∞,G((c/t,It);θ,ϕ)→−∞, h((ct,It);θ,ϕ)=1,h((c/t,It);θ,ϕ)=0, J(θ) 取得上界 0。 

但实际上,当目标模型对正样本给出最高概率 1 时,我认为 G((ct,It);θ,ϕ应该等于lnpn(c|I,θ),因此 h((ct,It);θ,ϕ)<1,J(θ) 的上界应该是小于 0 的。

实验结果

82e2c42e2469ec131430f58b9e1e76655b82c2be

如上图,可以看到,加入 CL 以后,模型的表现有较大提升。

660149b7be2211d7ac3c070ec786d17ddff11b6c

上图为 CL 与原模型的一些可视化结果。

3b473e2827898ede86905428749989f4ee2c35c1

文章还对比了 CL 跟 GAN、IL (Introspective Learning) 之间的区别: 

  • IL 把 target model 自身作为 reference,并且是通过比较 (I,c),(I/,c) 来进行学习的。 IL 的负样本 (I/,c) 通常是预定义且固定的,而 CL 的负样本则是动态采样的。
  • GAN 中的 evaluator 直接测量 Distinctiveness,而不能保证其准确性。

另外,加入 IL 和 GAN 后模型的准确性都有所下降,说明模型为了提高 Distinctiveness 而牺牲了准确性。但 CL 在保持准确性的同时又能提高 Distinctiveness。 

上图还对比了分别只有正负样本的训练情况,可以看到: 

  • 只有正样本的情况下模型的表现只稍微提升了一些。我认为,这是因为参考模型给出的概率是恒定的,去掉负样本以后的损失函数就相当于 MLE 的损失函数再减去一个常数,与 MLE 是等价的,因此相当于在原来的模型的基础上多进行了一些训练。
  • 只有负样本的情况下模型的表现是大幅下降的(因为没有指定正样本,且负样本是随机抽取的)。

而只有两个样本都参与训练的时候能给模型带来很大的提升。

09a4895015ad32c351d5418394d49511fec39421

上图测试了 CL 的泛化能力,可以看到,通过选择更好的模型(AA)作为 reference,NT 的提升更大。(但是却没有超过 AA 本身,按理说不是应该比 reference 模型更好吗?)

4dd78431b1d5dfcf61e170d6e304b6cb8aee282e

另外,还可以通过周期性地以训练好的目标模型作为更好的参考模型,来提升模型的下界。然而在 Run 2 进行第二次替换的时候提升已经不大,证明没有必要多次替换。

总结

总的来说,本文主要的贡献在于提出了 Contrastive Learning 的方法,构造损失函数利用了负样本来参与训练,提高模型的 Distinctiveness。另外本文提出的 self-retrieval 实验思路在同类论文里也是挺特别的。


原文发布时间为:2018-02-28

本文作者:蔡文杰

本文来自云栖社区合作伙伴“PaperWeekly”,了解相关信息可以关注“PaperWeekly”微信公众号

相关文章
|
2月前
|
机器学习/深度学习 编解码 人工智能
CVPR 2023的46篇AIGC应用论文+部分代码汇总
CVPR 2023的46篇AIGC应用论文+部分代码汇总
61 0
|
3月前
|
机器学习/深度学习 算法 固态存储
【论文泛读】 Deep Learning 论文合集
【论文泛读】 Deep Learning 论文合集
|
8月前
|
算法 搜索推荐 Windows
ExpandRank论文解读
ExpandRank是出自北京大学2008年的老论文,其实现思想为:现有的单文档关键字短语提取方法通常只使用指定文档中包含的信息。
43 0
|
11月前
|
机器学习/深度学习 编解码 并行计算
超越YOLO5-Face | YOLO-FaceV2正式开源Trick+学术点拉满,让你欲罢不能!!!
超越YOLO5-Face | YOLO-FaceV2正式开源Trick+学术点拉满,让你欲罢不能!!!
243 0
|
11月前
|
机器学习/深度学习 缓存 算法
7 Papers & Radios | 两栖机器龟登上Nature封面;深度去模糊综述论文入选IJCV
7 Papers & Radios | 两栖机器龟登上Nature封面;深度去模糊综述论文入选IJCV
|
11月前
|
机器学习/深度学习 存储 人工智能
7 Papers | AAAI22杰出论文、WSDM22最佳论文;200+文献ViT综述
7 Papers | AAAI22杰出论文、WSDM22最佳论文;200+文献ViT综述
|
11月前
|
机器学习/深度学习 传感器 自然语言处理
论文笔记:SpectralFormer Rethinking Hyperspectral Image Classification With Transformers_外文翻译
 高光谱(HS)图像具有近似连续的光谱信息,能够通过捕获细微的光谱差异来精确识别物质。卷积神经网络(CNNs)由于具有良好的局部上下文建模能力,在HS图像分类中是一种强有力的特征提取器。然而,由于其固有的网络骨干网的限制,CNN不能很好地挖掘和表示谱特征的序列属性。
108 0
|
11月前
|
机器学习/深度学习 人工智能 自动驾驶
ICLR 2022为博客单独设置Track,Andrej Karpathy复现LeCun论文入选
ICLR 2022为博客单独设置Track,Andrej Karpathy复现LeCun论文入选
|
11月前
|
机器学习/深度学习 编解码 数据挖掘
深度学习论文阅读图像分类篇(三):VGGNet《Very Deep Convolutional Networks for Large-Scale Image Recognition》
在这项工作中,我们研究了卷积网络深度在大规模的图像识别环境下对准确性的影响。我们的主要贡献是使用非常小的(3×3)卷积滤波器架构对网络深度的增加进行了全面评估,这表明通过将深度推到 16-19 加权层可以实现对现有技术配置的显著改进。这些发现是我们的 ImageNet Challenge 2014 提交论文的基础,我们的团队在定位和分类过程中分别获得了第一名和第二名。我们还表明,我们的表示对于其他数据集泛化的很好,在其它数据集上取得了最好的结果。
134 0
|
11月前
|
机器学习/深度学习 数据挖掘 Go
深度学习论文阅读图像分类篇(五):ResNet《Deep Residual Learning for Image Recognition》
更深的神经网络更难训练。我们提出了一种残差学习框架来减轻 网络训练,这些网络比以前使用的网络更深。我们明确地将层变为学 习关于层输入的残差函数,而不是学习未参考的函数。我们提供了全 面的经验证据说明这些残差网络很容易优化,并可以显著增加深度来 提高准确性。在 ImageNet 数据集上我们评估了深度高达 152 层的残 差网络——比 VGG[40]深 8 倍但仍具有较低的复杂度。这些残差网络 的集合在 ImageNet 测试集上取得了 3.57%的错误率。这个结果在 ILSVRC 2015 分类任务上赢得了第一名。我们也在 CIFAR-10 上分析 了 100 层和 1000 层的残差网络。
160 0