在碎片化阅读充斥眼球的时代,越来越少的人会去关注每篇论文背后的探索和思考。

在这个栏目里,你会快速 get 每篇精选论文的亮点和痛点,时刻紧跟 AI 前沿成果。

点击本文底部的「阅读原文」即刻加入社区,查看更多最新论文推荐。

这是 PaperDaily 的第 45 篇文章

本期推荐的论文笔记来自 PaperWeekly 社区用户 @jamiechoi本文提出了一种将对比学习(CL)用于 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 个里,具体可见下图。

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

Contrastive Learning

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

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

而使用 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 为:

这里应该是最大化 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),来 saturate 这些影响,其中 ν=Tn/Tm, 并且 Tn=Tm 来平衡正负样本的数量。

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

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

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

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

最终的 loss function:

以上的这些变换的主要受 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 的。

实验结果

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

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

文章还对比了 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 是等价的,因此相当于在原来的模型的基础上多进行了一些训练。

  • 只有负样本的情况下模型的表现是大幅下降的(因为没有指定正样本,且负样本是随机抽取的)。

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

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

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

总结

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

本文由 AI 学术社区 PaperWeekly 精选推荐,社区目前已覆盖自然语言处理、计算机视觉、人工智能、机器学习、数据挖掘和信息检索等研究方向,点击「阅读原文」即刻加入社区!

#榜 单 公 布 #


2017年度最值得读的AI论文 | NLP篇 · 评选结果公布

2017年度最值得读的AI论文 | CV篇 · 评选结果公布



  我是彩蛋 


解锁新功能:热门职位推荐!

PaperWeekly小程序升级啦

今日arXiv√猜你喜欢√热门职位

找全职找实习都不是问题

 解锁方式 

1. 识别下方二维码打开小程序

2. 用PaperWeekly社区账号进行登陆

3. 登陆后即可解锁所有功能

 职位发布 

请添加小助手微信(pwbot01)进行咨询

长按识别二维码,使用小程序

*点击阅读原文即可注册


关于PaperWeekly


PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。

▽ 点击 | 阅读原文 | 查看论文 & 源代码

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

  1. 直播实录 | 基于生成模型的事件流研究 + NIPS 2017 论文解读

    本文为 12 月 20 日,约翰霍普金斯大学 CLSP 实验室博士生--梅洪源博士在第 20 期 PhD Talk 中的直播分享实录. 本期 PhD Talk,来自约翰霍普金斯大学 CLSP 实验室的 ...

  2. NIPS 2018论文解读 | 基于条件对抗网络的领域自适应方法

    在碎片化阅读充斥眼球的时代,越来越少的人会去关注每篇论文背后的探索和思考. 在这个栏目里,你会快速 get 每篇精选论文的亮点和痛点,时刻紧跟 AI 前沿成果. 点击本文底部的「阅读原文」即刻加入社区 ...

  3. 阿里NIPS 2017论文解读:如何降低TensorFlow训练的显存消耗?

    阿里妹导读:被誉为国际顶级的机器学习和神经网络学术会议NIPS 2017于12月4日-9日在美国加州长滩市举行.在本届会议上,阿里巴巴除有两篇论文入选Workshop并进行Oral和Poster形式报 ...

  4. Nature论文解读 | 基于深度学习和心脏影像预测生存概率

    作者丨Peter 单位丨某基因科技公司生物信息工程师 研究方向丨生物信息 本文解读的文章来自今年 2 月份的 Nature 杂志新子刊 Machine Intelligence,标题为:Deep-le ...

  5. ICCV 2019 论文解读 | 基于层次解析的Image Captioning

    ©PaperWeekly 原创 · 作者|蔡文杰 学校|华南理工大学 研究方向|计算机视觉 目前大多数的 image captioning 模型采用的都是 encoder-decoder 的框架.本文 ...

  6. 直播预告 | AAAI 2022论文解读:基于对比学习的预训练语言模型剪枝压缩

    「AI Drive」是由 PaperWeekly 和 biendata 共同发起的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和 ...

  7. NAACL 2021 | AWS AI 提出基于对比学习的端到端无监督聚类方法

    ©PaperWeekly 原创 · 作者 | 李婧蕾 学校 | 北京邮电大学硕士生 研究方向 | 自然语言处理 Abstract 无监督聚类的目的是根据在表示空间中的距离发现数据的语义类别.然而,在学 ...

  8. [论文阅读](对比学习系列)

    文章目录 第一阶段:百花齐放 [2018] (CVPR) INstDisc [2019] (CVPR)Unsupervised Embedding Learning via Invariant and ...

  9. AAAI 2022 | 北大 阿里达摩院:基于对比学习的预训练语言模型剪枝压缩

    近年来,预训练语言模型迅速发展,模型参数量也不断增加.为了提高模型效率,各种各样的模型压缩方法被提出,其中就包括模型剪枝. 然而,现有的模型剪枝方法大多只聚焦于保留任务相关知识,而忽略了任务无关的通用 ...

最新文章

  1. smtplib python教程_python使用smtplib模块发送邮件
  2. MySQL之架构与历史(二)
  3. 真格量化-历史波动率
  4. 【Servlet】请求转发与重定向
  5. twitter中处理网页被iframe方式
  6. 手写在线计算机,在线手写
  7. igs时间和utc_UTC时间与北京时间的差多久?
  8. 网络附加存储技术与磁盘阵列柜的对比
  9. Linux——逻辑分区
  10. 同步传输和异步传输原理与比较
  11. 7p指纹键坏了,激活不了啦!
  12. 怎样在平时中培育小孩人格
  13. JS判断浏览器版本(已解决IE11版本为Mozilla问题)
  14. PYNQ-Z1 资源分析
  15. 原生table 边框重叠 粗细不一样等问题,秒懂,只需几秒就能完成
  16. Rust 图像处理库 image-rs
  17. 使用frp实现内网穿透(含SSH、远程桌面、文件访问等)
  18. 一份门户网站SEO优化报告(附上海SEO评析)
  19. 华为3108raid安linux,华为服务器 RAID卡配置 SR430 LSISAS3108(EFI/UEFI模式)
  20. Linux性能排查——CPU软中断问题

热门文章

  1. 'telnet' 不是内部或外部命令,也不是可运行的程序
  2. luogu P3241 [HNOI2015]开店
  3. 多种缺陷管理软件简介
  4. ios测试宏指令出错:“Expected identefier”
  5. FTP协议常用COMMAND和状态码
  6. CROSS APPLY 和outer apply
  7. Apache 服务器的配置
  8. tensorflow怎样调用gpu_tensorflow / tensorflow-gpu / tensorflow-cpu区别?
  9. 一只快乐的野指针_野酸枣
  10. mysql合并表快速去重_MySQL数据表合并去重的简单实现方法