对比学习效果差?谷歌提出弱语义负样本,有效学习高级特征!

05e455ee2b097e1122c69a82e7691def.png

文 | jxyxiangyu
编 | 小轶

对比学习是 2021 年几大研究热点之一了。如果说预训练模型解决了机器学习对大规模标注数据的需求问题,那么,对比学习可以说是将无监督/自监督学习推广到更一般的应用场景,为苦于标注数据不多的炼丹师们又带来了福音。

一般来说,对比学习的重点在于:使同类样本的特征表示尽可能接近,而异类样本的特征表示之间的距离尽可能变大。在实际应用场景下,正样本数量通常小于负样本的数量。在对比学习的工作中,提出的也多是正样本的增强操作。比如在 SimCSE 中,就是对样本原本的特征表示 dropout 操作获取增强的正样本。而对比学习中的负样本,则往往直接使用数据集中的其他样本(或者异类样本)作为对比学习的负样本。

a820a309306585d7ba9a74e93e4973d3.png
▲无监督 SimCSE 中的正负样本

如果我们将对比学习应用到负样本对上,又会产生怎样的火花呢?最近,Maryland大学和谷歌联合研究了对比学习在负样本对上的应用,下面,让我们一起来看看吧!

论文题目:
Robust Contrastive Learning Using Negative Samples with Diminished Semantics
论文链接:
https://arxiv.org/pdf/2110.14189.pdf

4c1669a0eced57f7ff5d04be5328c53b.png对比学习cd90936e927102b7f02d37ce86e10b88.png

在解读今天这篇论文之前,先简单介绍下对比学习。

为解决标注数据不足的问题,对比学习提供了这样一种思路:分别构造相似样本对(正样本对)和不相似样本对(负样本对),并通过区分正样本对和负样本对来达到训练模型的目的。训练期间,模型会缩短正样本对之间的距离,而拉大负样本对的距离。

a95e32e10c7fc0bb6bedf37bfb4deb43.png
▲打住

达咩,一些研究表明,基于CNN的模型会过多地关注数据的低级特征,比如图片的局部 patch、纹理、甚至是人为添加的后期特征(换言之,就是模型找到了某些可以提升效果的 shortcut)。这些特征的微小变动可能会直接改变模型最终的预测。而站在人类视角来看,人们多是通过物体的形状这种更高级的特征来识别和区分物体的。谷歌最近就提出了一种方法,可以通过增强弱语义负样本,大大提升模型对比学习的鲁棒性。

5ad95b5a5cbd4bc35395b34ea72afc6b.png弱语义负样本04f334946bd2e8c4c0670cf0c40e1044.png

传统的对比学习只是粗暴地将正负样本对区分开,实验证明,这种方法构造的负样本对会驱使模型过度地依赖数据的底层特征,而忽略了底层特征组合产生的高级语义,毕竟,当我们在观看一张狗的图片的时候,更多地关注的是狗的外形、毛发,而不是其中几个patch反映出来的颜色和质感。

弱语义负样本的对比学习

文章的作者针对目前对比学习存在的问题,提出了用弱语义负样本的对比学习。给定编码模型 和图片 ,模型的输出为 ,原始样本(query sample)记作 ,相应的模型输出为 。传统的对比学习是从同一个原始样本 通过保留语义信息的数据增强方法得到正样本 ,而负样本的生成方式并不固定,以 为例,该方法是从当前 batch 的其他样本中选择得到负样本 ,正负样本的模型输出特征分别是 、。为了减少模型对底层特征的依赖,作者引入了弱语义负样本 ,其模型输出特征为 。顾名思义,弱语义负样本指的是在输入样本中我们不希望模型学到底层非语义的低级特征。作者还给出了带噪对比估计损失函数(noise-contrastive estimation, NCE):

402 Payment Required

其中,是超参,是调节弱语义负样本比例的缩放因子

考虑到某些对比学习方法在loss函数设计上仅考虑了原始样本和正样本的相似度,类似的,作者也给出了相应的带弱语义负样本的loss函数:

通过最小化 或 ,模型可以学习到正样本中含有的但弱语义负样本中没有的高级语义特征。

那么,我们应该怎样构建弱语义的负样本呢?作者给出了两种构造方案:基于纹理的负样本生成方法和基于patch的负样本生成方法,下图展示了这两种方法生成的负样本。

6dcd4ca4b4d76288b2ec287a15fea151.png
▲弱语义负样本生成方法

基于纹理的负样本生成

为了生成的弱语义负样本可以很好地表示图片中诸如纹理的局部低级特征,作者首先从输入图片(query sample)采样出两个patch,一个patch取自图片的中心位置,表示图片中目标的局部特征,另一个patch取自图片中的随机位置,表示图片中其余的纹理特征,譬如目标对象的背景、轮廓等。具体地,实验中在图片大小允许的前提下,作者提取的是大小的patch,否则提取大小的patch;之后,用现有的纹理合成工具根据采样的两个patch生成大小的纹理图片,为 ImageNet 数据集中的每个样本重复上述操作,可以得到 ImageNet-Texture 纹理数据集。

基于patch的负样本生成

给定图片和采样的patch大小,从图片的个非重叠的随机位置中采样大小为的patch,之后,将这些patch平铺并裁剪成的样本。与基于纹理的负样本生成方法相比,基于patch的方法运算速度快,耗时短;另外,基于patch的方法可以做到在每次迭代训练时采用不同的patch对生成负样本,与基于纹理的方法相比,更具有随机性。

当然,这并不意味着基于patch的方法是完美的,如上图(e),所示,基于patch的方法会人为的引入一些分界线,这些分界线是由于patch间像素变化剧烈导致的,为缓解这一问题,作者先从先验分布中采样出patch大小,然后再基于此生成负样本,以期望模型可以学到不同尺度下的纹理特征。

两种负样本生成方法的区别

介绍完上面两种方法,相必会有小伙伴有疑问:既然两种方法都可以生成弱语义负样本,那么它们之间有什么区别呢?

作者使用官方给定的 MoCo-v2 模型在 ImageNet-1K 数据集上预训练200轮得到的模型,计算 ImageNet 训练集不同样本对之间的余弦相似度,相似度分布如下所示:

9014603dcc0b915b457ee9a60127df46.png
▲弱语义负样本生成方法对比

可以看到,大部分正样本对和负样本对的相似度都接近1和0,平均相似度分别为0.94257和0.00018,而基于纹理和基于patch方法生成的负样本对,其相似度分布并没有像前两者那么集中于某个点,而是分布在0~1之间,用作者的话来说,呈现出“heavy tail”的分布,平均相似度分别为0.35248和0.29503。

23c6197fa273787a41f41dec53194797.png实验f184ba663915f3c5a43f2bb1b0deeffb.png

作者在 ImageNet 和 ImageNet-100 数据集上分别用两种对比学习模型 MoCo 和 BYOL 对上述两种生成方法生成的弱语义负样本做了实验,用在域外数据集(out-of-domain, OOD包括ImageNet-C(orruption)、ImageNet-S(ketch)、Stylized-ImageNet和ImageNet-R(endition))上的准确度(accuracy)作为评估模型在领域偏移(domain shift)的鲁棒性。基于patch的负样本生成方法中,patch大小服从的均匀分布。实验结果如下:

6675232a2094f9c8aec1716a8bc07816.png
▲弱语义负样本实验结果1

可以看到,在 MoCo-v2 模型上,无论是基于纹理还是基于patch的弱语义负样本生成方法,都可以提升在域外数据集上的泛化性。在域内数据集(ImageNet)上,当超参选择合适()时,基于patch的方法也能带来准确率的提升。此外,基于纹理的方法带来的性能提升不如基于patch的方法的明显,可能的原因也在前面做弱语义负样本相似度对比了相应的分析。

ee1e49c9d77afea02831afde7771b1df.png
▲弱语义负样本相似度对比

和图2类似,作者给出了是否使用基于patch的方法生成的负样本参与模型训练的样本相似度分布情况。蓝色曲线表示的是没有使用弱语义负样本训练的结果,红色和绿色曲线表示的是使用不同的下弱语义负样本训练的结果。可以看到,在模型训练过程中加入弱语义负样本,可以降低原始样本和弱语义样本的相似度,说明模型降低了对底层特征的依赖,学到了更多高级语义特征,此外,随着的增大,无论是基于纹理还是基于patch生成的弱语义负样本,两者的平均相似度也随之降低,但整体来看,基于patch的方法降低程度更为明显。

众所周知,基于负样本的对比学习方法存在对负样本的挖掘效率低下的问题,前人多使用大 batch size 或 memory bank 来解决这一问题。作者分别在 STL-10 和 ImageNet-100 数据集上研究了弱语义负样本是否可以缓解这一问题。实验结果如下所示:

552c2db1eb1caf1d3286fb9be584415f.png
▲弱语义负样本实验结果2

可以看到,无论 memory bank 大小如何改变,基于patch生成的弱语义负样本训练的模型都有较好的准确率,证明了弱语义负样本可以有效缓解上述问题。

作者还研究了损失函数中对平衡高级语义和底层纹理特征的影响,在 ImageNet-100 数据集上分别用不同的训练 MoCo-v2 模型,实验结果如下,其中图 c 展示的是在 ImageNet 验证集和 ImageNet-Sketch 数据集上不同的值对准确率的影响:

22aec98cec22a578e4d09924c4f9b7a6.png
▲弱语义负样本实验结果3

可以看到,控制着模型中关于纹理(底层特征)和形状(高级语义)的权重比例,随着的增大,损失函数加大了对原始样本和弱语义负样本的相似度的惩罚,模型会学到更多的语义信息,相应地,模型的预测准确率也与没有使用弱语义负样本相比有所提高。

关于形状-纹理的初步讨论表明,人类更多地依赖于形状特征,而CNN更多地依赖于纹理特征,增加形状这种高级语义信息可以提高模型的准确性和鲁棒性,然而增大形状并不总是能够提升模型的鲁棒性。因此,作者从不同的分类粒度的角度研究了ImageNet数据集中狗的图片粗粒度和细粒度下的准确率(图 d ),对于粗粒度分类,只关注图像是否为狗类,而不关心具体是哪个种类的狗,而对于细粒度分类而言,只有预测为目标种类的狗的样本才被视为预测正确。从图 d 可以看到,随着形状特征的增加,细粒度预测准确率出现更为明显的下降趋势,因此,像 ImageNet 这种细粒度分类的数据集而言,偏好纹理这种底层特征的模型能够有较高的准确度。在论文附录中,作者也展示出了仅靠几个纹理特征就可以实现模型较高的准确度。

327c70e6688962f7f864d5a22c93d78d.png总结bcfed19ed1912146c0c360477fc29ea7.png

作者提出了用负样本丢弃掉模型不需要学习的特征,从而提高对比学习模型的泛化性的思路和方法,也为因为对比学习的火热就无脑对比学习的炼丹师们(比如我╮(╯▽╰)╭)给予了告诫:在模型训练之前,需要想清楚我们希望模型学到哪些特征。

除此之外,作者只在cv领域作了相关研究,而这些研究成果是否可以推广到其他领域,比如nlp呢?仔细想想,这岂不又是一个水论文(bushi)的方向了吗?

81c6fbd9eef75ab72a27f5da09fd5324.png
▲狂喜

13175586e0a613cae740c856d5eb881e.png萌屋作者:jxyxiangyu

人工智障、bug制造者、平平无奇的独臂侠、在某厂工作的初级程序员,从事对话交互方向,坚持每天写一点bug,时常徘徊在人工智能统治未来和if-else才是真正的AI的虚拟和现实之间,希望有朝一日学术界的研究成果可以真正在工业界实现落地。

作品推荐

  1. 谁说发 paper 一定要追快打新?2021年,研究 word2vec 也能中顶会!

  2. 一训练就显存爆炸?Facebook 推出 8 比特优化器,两行代码拯救你的显存!

4f32e6827d04759a683cf12a605063a4.png后台回复关键词【入群

加入卖萌屋NLP/IR/Rec与求职讨论群

后台回复关键词【顶会

获取ACL、CIKM等各大顶会论文集!

278e0602d9838296ba2c133d8043aa74.gif 5b11e282f6796c8765dff29af688bf8e.png

[1] 对比学习(Contrastive Learning)在CV与NLP领域中的研究进展(https://zhuanlan.zhihu.com/p/389064413)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/477607.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Cloud构建微服务架构:分布式服务跟踪(整合zipkin)【Dalston版】

通过上一篇《分布式服务跟踪(整合logstash)》,我们虽然已经能够利用ELK平台提供的收集、存储、搜索等强大功能,对跟踪信息的管理和使用已经变得非常便利。但是,在ELK平台中的数据分析维度缺少对请求链路中各阶段时间延…

图谱实战 | 阿里新零售多模态知识图谱AliMe MKG的建设与应用

转载公众号 | DataFunSummit分享嘉宾:陈河宏 阿里巴巴 算法工程师编辑整理:李开琦 SHEIN出品平台:DataFunTalk导读:随着知识图谱技术的发展,其在电商、医疗、金融等领域得到了越来越广泛的应用。在过去的几年间&#x…

LeetCode 第 16 场双周赛(402/822,前48.9%)

文章目录1. 比赛结果2. 题目LeetCode 1299. 将每个元素替换为右侧最大元素 easyLeetCode 1300. 转变数组后最接近目标值的数组和 mediumLeetCode 1302. 层数最深叶子节点的和 mediumLeetCode 1301. 最大得分的路径数目 hard1. 比赛结果 做出了2道题,第二道题耽搁时…

CS 期刊哪家强?CCF 发布最新期刊分级目录!

文 | python分级目录中国计算机学会(CCF,就是评ABC类会议的那个机构),在2022年2月19日刚刚发布了《计算领域高质量科技期刊分级目录》。该目录包含T1、T2、T3三类期刊,分别为T1类期刊16本,T2类期刊23本&…

Spring Cloud构建微服务架构:分布式服务跟踪(整合logstash)【Dalston版】

通过之前的入门示例,我们已经为trace-1和trace-2引入了Spring Cloud Sleuth的基础模块spring-cloud-starter-sleuth,实现了为各微服务的日志信息中添加跟踪信息的功能。但是,由于日志文件都离散的存储在各个服务实例的文件系统之上&#xff0…

会议交流 | 第十六届全国知识图谱与语义计算大会(8月24-27日)

点击阅读原文,进入 CCKS2022 官方网站。OpenKGOpenKG(中文开放知识图谱)旨在推动以中文为核心的知识图谱数据的开放、互联及众包,并促进知识图谱算法、工具及平台的开源开放。

1000层的Transformer,诞生了!

卖萌屋今日学术精选大家好,我是卖萌酱。今天下午卖萌屋作者群里一位MILA实验室的大佬在临睡前(蒙特利尔时间凌晨0点半)甩出来一篇论文:大佬表示太困了,肝不动了,于是卖萌酱左手抄起一罐咖啡,右手…

LeetCode 1305. 两棵二叉搜索树中的所有元素(二叉树迭代器)

1. 题目 给你 root1 和 root2 这两棵二叉搜索树。 请你返回一个列表,其中包含 两棵树 中的所有整数并按 升序 排序。. 提示: 每棵树最多有 5000 个节点。 每个节点的值在 [-105, 105] 之间。 2. 二叉树迭代器 按照中序迭代,比较两个迭代…

Spring Cloud构建微服务架构:分布式服务跟踪(跟踪原理)【Dalston版】

通过上一篇《分布式服务跟踪(入门)》的例子,我们已经通过Spring Cloud Sleuth往微服务应用中添加了实现分布式跟踪具备的基本要素。下面通过本文来详细说说实现分布式服务跟踪的一些要点。 分布式系统中的服务跟踪在理论上并不复杂&#xff0…

竞赛报名 | “未来杯”第二届知识图谱锦标赛火热报名中,最高奖金32000元!...

转载公众号 | AI Timer继2021年“未来杯”系列赛事之AI学术联赛暨首届人工智能知识图谱锦标赛成功举办后,中软国际教育科技集团旗下SteerTech科技创新开源生态平台联手AI TIME,再一次迎来人工智能知识图谱应用在众多领域落地的探索旅程。一、组织机构【…

我在鹅厂,拿到满星绩效!

文 | 山竹小鹅背绩效?就算SP以上也背绩效?互联网寒冬?内卷太严重?卷不动?资本家吃相太难看?……听了太多消极言论,有些是陈述事实,也有很多是贩卖焦虑。吐槽能变得更好吗&#xff1f…

2019年学习总结

总结回顾自己学习的过程,看看自己的学习成果,激励自己在2020继续努力。 2019.3 - 2019.9 学习了王争的《数据结构和算法之美》,github 代码地址 统计了 2018.2 至 2019.12 的cpp代码量:41,721‬行 find . -name "*.cpp&qu…

Spring Cloud构建微服务架构:消息驱动的微服务(消费分区)【Dalston版】

通过上一篇《消息驱动的微服务(消费组)》的学习,我们已经能够在多实例环境下,保证同一消息只被一个消费者实例进行接收和处理。但是,对于一些特殊场景,除了要保证单一实例消费之外,还希望那些具…

图谱实战 | 知识图谱在供应链和运营绩效提升领域的应用

转载公众号 | DataFunSummit分享嘉宾:高欢 (前)博世中国编辑整理:卢鹏澳 桂林电子科技大学出品平台:DataFunTalk导读:公司内部尝试运用AI技术落地了几款基于知识图谱的产品,本文将从实践和应用角…

薪资不逊NLP算法岗,边缘AI火了!

众所周知,深度神经网络模型被广泛应用在图像分类、物体检测,目标跟踪等计算机视觉任务中,并取得了巨大成功。随着不同场景的需求变得更加多样,越来越多的IoT设备和场景需要与数据采集点以最接近的低时延来进行决策和操作&#xff…

LeetCode 735. 行星碰撞(栈)

1. 题目 给定一个整数数组 asteroids,表示在同一行的行星。 对于数组中的每一个元素,其绝对值表示行星的大小,正负表示行星的移动方向(正表示向右移动,负表示向左移动)。每一颗行星以相同的速度移动。 找…

Spring Cloud构建微服务架构:消息驱动的微服务(消费组)【Dalston版】

通过之前的《消息驱动的微服务(入门)》一文,相信很多朋友已经对Spring Cloud Stream有了一个初步的认识。但是,对于《消息驱动的微服务(核心概念)》一文中提到的一些核心概念可能还有些迷糊,下面…

论文浅尝 | C3KG:中文常识对话知识图谱

笔记整理:张廉臣,东南大学硕士,研究方向为自然语言处理。Citation: Li, D., Li, Y., Zhang, J., Li, K., Wei, C., Cui, J., & Wang, B. (2022). C3KG: A Chinese Commonsense Conversation Knowledge Graph. arXiv preprint arXiv:2204.…

Spring Cloud构建微服务架构:消息驱动的微服务(核心概念)【Dalston版】

通过《Spring Cloud构建微服务架构:消息驱动的微服务(入门)》一文,相信大家对Spring Cloud Stream的工作模式已经有了一些基础概念,比如:输入、输出通道的绑定,通道消息事件的监听等。下面在本文…

大模型时代,我们真的不再需要分词了吗?

文 | 付奶茶编 | 小轶分词是NLP的基础任务,将句子、段落分解为字词单位,方便后续的处理的分析。不知道NLPer有没有思考过这个问题:我们在各项研究工作中想要建模的文本单位究竟是什么?What are the units of text that we want to model?在这篇论文中,…