首页 > 其他分享 >对比学习效果差?谷歌提出弱语义负样本,有效学习高级特征!

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

时间:2023-04-21 13:32:24浏览次数:51  
标签:学习效果 样本 模型 谷歌 语义 patch ImageNet 对比


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

文 | jxyxiangyu
编 | 小轶

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

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


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

▲无监督 SimCSE 中的正负样本

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

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

对比学习

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

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


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

▲打住

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

弱语义负样本

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

弱语义负样本的对比学习

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

402 Payment Required

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

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

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

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


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

▲弱语义负样本生成方法

基于纹理的负样本生成

为了生成的弱语义负样本可以很好地表示图片中诸如纹理的局部低级特征,作者首先从输入图片(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 训练集不同样本对之间的余弦相似度,相似度分布如下所示:


对比学习效果差?谷歌提出弱语义负样本,有效学习高级特征!_计算机视觉_05

▲弱语义负样本生成方法对比

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

实验

作者在 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大小服从的均匀分布。实验结果如下:


对比学习效果差?谷歌提出弱语义负样本,有效学习高级特征!_计算机视觉_06

▲弱语义负样本实验结果1

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


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

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

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

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


对比学习效果差?谷歌提出弱语义负样本,有效学习高级特征!_计算机视觉_08

▲弱语义负样本实验结果2

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

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


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

▲弱语义负样本实验结果3

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

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

总结

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

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


对比学习效果差?谷歌提出弱语义负样本,有效学习高级特征!_计算机视觉_10

▲狂喜

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

萌屋作者:jxyxiangyu

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

 

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

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

标签:学习效果,样本,模型,谷歌,语义,patch,ImageNet,对比
From: https://blog.51cto.com/xixiaoyao/6212619

相关文章

  • 别再双塔了!谷歌提出DSI索引,检索效果吊打双塔,零样本超BM25!
    卖萌屋今日学术精选这篇论文展示了信息检索可以用一个Transformer来完成,其中,关于语料库的所有信息都被编码在Transformer模型的参数中。论文标题:TransformerMemoryasaDifferentiableSearchIndex链接:https://arxiv.org/abs/2202.06991作者提出了可微搜索索引(DifferentiableSe......
  • 谷歌TAG警告说俄罗斯黑客在乌克兰进行网络钓鱼攻击
    与俄罗斯军事情报机构有关的精英黑客与针对乌克兰数百名用户的大批量网络钓鱼活动有关,以提取情报并影响与战争有关的公共言论。谷歌的威胁分析小组(TAG)正在监测这个名为FROZENLAKE的行为者的活动,该小组表示,这些攻击继续"该小组2022年的重点是针对东欧的网络邮件用户"。这个国家支持......
  • 语义分析中常常遇见的难点
    背景的像素占的面积太多,模型会更容易将背景区域识别为主体对象的一部分,从而导致模型的精度下降。这是因为模型会学习到将背景与主体对象分离的特征,如果背景占的面积过多,那么背景与主体对象的特征之间的区别就会变得模糊,导致模型无法准确地分离它们。另外,如果背景占的面积过多,会导......
  • 深度学习语义分割篇——FCN原理详解篇
    深度学习语义分割篇——FCN原理详解篇写在前面  在过往的博客中,我已经介绍了几种经典神经网络(VGG、GoogleNet、Resnet等等)在图像分类上的应用,这些都是非常基础却重要的内容,大家务必要掌握,不了解的可以进入个人主页搜索了解详情。......
  • 如何提高谷歌排名?
    在谈论如何提高谷歌排名时,我们必须关注几个关键要素。本文将分享个人站长多年运营经验,带你深入了解这些要素,助你在谷歌搜索引擎中提高排名。要提高谷歌排名,我们需要了解谷歌搜索留痕怎么做?有没内容限制?搜索留痕是指网站在搜索引擎中的表现。要了解更多关于谷歌搜索留痕的信息,可以点......
  • HTML5新增语义标签
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><metahttp-equiv="X-UA-Compatib......
  • [oeasy]python0135_python_语义分析_ast_抽象语法树_abstract_syntax_tree
    语义分析_抽象语法树_反汇编回忆上次回顾了一下历史python是如何从无到有的看到Guido长期的坚持和努力python究竟是如何理解print("hello")的?这些ascii字母如何被组织起来执行?纯文本首先编写Guido的简历print("1982------Guidoincwi")print("1995------Guidoincnri")pri......
  • [oeasy]python0135_python_语义分析_ast_抽象语法树_abstract_syntax_tree
    语义分析_抽象语法树_反汇编回忆上次回顾了一下历史python是如何从无到有的看到Guido长期的坚持和努力 ​ 添加图片注释,不超过140字(可选) python究竟是如何理解print("hello")的?这些ascii字母如何被组织起来执行? ......
  • 谷歌网站做外链的方法:提升排名的实用技巧
    作为一位拥有多年运营经验的个人站长,我深知在谷歌搜索引擎优化中,外链建设是一个至关重要的环节。在这篇文章中,我将为大家分享一些关于谷歌网站做外链的方法,以帮助您更好地提升网站在Google搜索引擎中的排名。了解谷歌开户的费用以及代投服务费是网站推广的基础。谷歌开户多少钱?谷歌......
  • 英文谷歌优化:揭秘外贸站点成功突破的关键策略
    在外贸领域,英文谷歌优化已经成为站长们必备的技能之一。一方面,英文谷歌优化可以帮助网站在谷歌搜索引擎上取得更高的排名,吸引更多目标客户。另一方面,通过谷歌优化和站外推广相结合,可以快速提升品牌知名度和竞争力。本文将从个人站长的角度,分享一些英文谷歌优化的经验和技巧。选择正......