0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

对比学习中的4种典型范式的应用分析

深度学习自然语言处理 来源:圆圆的算法笔记 作者:Fareise 2022-07-08 11:03 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

对比学习是无监督表示学习中一种非常有效的方法,核心思路是训练query和key的Encoder,让这个Encoder对相匹配的query和key生成的编码距离接近,不匹配的编码距离远。想让对比学习效果好,一个核心点是扩大对比样本(负样本)的数量,即每次更新梯度时,query见到的不匹配key的数量。负样本数量越多,越接近对比学习的实际目标,即query和所有不匹配的key都距离远。

对比学习目前有4种最典型的范式,分别为End-to-End、Memory Bank、Momentum Encoder以及In-Batch Negtive。这几种对比学习结构的差异主要体现在对负样本的处理上,4种方法是一种逐渐演进的关系。下面,我们来看看4种对比学习结构的经典工作。关于对比学习的损失函数,建议参考之前的文章表示学习中的7大损失函数梳理。

End-to-End End-to-End是一种最直接的对比学习方法,对于一个query,每次采样一个正样本以及多个负样本,使用对比学习loss计算损失,正样本和负样本都进行梯度反向传播。下面介绍几篇End-to-End的对比学习经典论文。

第一篇是Unsupervised Embedding Learning via Invariant and Spreading Instance Feature(2019)。本文的目标是学习图像好的表示,满足相似的图像embedding离得近,不相似的图像embedding离得远的特点。具体的,希望同一个图像经过不同的数据增强方式进行转换后,能够具有embedding的不变性,同时不同图像的embedding有明显差异。

这篇文章在原来每个样本为一个类别的分类基础上进行了优化,将每个图像进行一种数据增强的转换后,去让转换前后的图像的embedding离得更近。首先采样一个batch的图像,然后对每一个图像使用一种数据增强方法进行转换。优化的目标是让每一个图像xi转换后的图像xi‘能够被分为xi这个样本的类别。模型的训练仍然采用多个二分类的方式,每个样本的loss可以表示为:

最终采用底层共享参数的孪生网络结构进行模型训练。在训练阶段,每个样本的会使用该batch内其他样本作为负样本进行训练,并使用一种随机的argumentation策略生成一个正样本。

LEARNING DEEP REPRESENTATIONS BY MUTUAL INFORMATION ESTIMATION AND MAXIMIZATION(ICLR 2019,DIM)是另一个典型的End-to-End对比学习框架。本文提出在Deep InfoMax基础上进行对比学习,首先介绍一下Deep InfoMax。Deep InfoMax是一种无监督图像表示学习方法,目标是让输入样本和其经过Encoder后的表示互信息最大,互信息越大表明两个变量相关性越强,互信息可以采用InfoNCE、Jensen-Shannon MI estimator等方法求解。

具体实现上,随机采样一个图像,经过卷积得到feature map f(x),再经过网络得到一个图像的表示向量h(f(x)),整个过程相当于取了整个encoder中某一层的表示f(x),以及encoder的最终输出h(f(x)),让这两个表示的互信息尽可能大。同时随机选择其他图像,生成其feature map f(x’)。这样f(x)和h(f(x))构成正样本,f(x‘)和h(f(x))构成负样本,再代入loss进行优化。基本思路采用了MINE的方法,去求一个下界。使用一个discriminator去判别输入是配对的feature map和representaion的联合概率分布还是不配对的feature map和representaion的边缘概率分布的乘积。

最终学习的是中间表示中某一个部分的信息和最终encoder得到feature的相关性,互信息可以理解为在是否获取encoder最终表示的情况下,我们能预测出的中间层某部分的表示会好多少。这是使用相对的预估能力而非绝对的预估能力进行评估。

Learning Representations by Maximizing Mutual Information Across Views(2019)扩展了DIM,学习一个图像的两种不同增强方式的互信息最小。DIM使用同一张图像最终层和中间层的表示计算互信息,而本文采用一个图像的不同增强后的view计算。

End-to-End方法的主要问题在于,采样的负样本数量受到GPU内存限制,因此这种方法的每次更新能够使用到的负样本数量非常有限,影响了对比学习效果。 Memory Bank 针对End-to-End负样本采样数量受GPU内存限制的问题,基于Memory Bank的方法进入人们视野。Memory Bank的核心思路是,将某一轮模型对数据集中所有样本的表示存储起来,这些样本在作为负样本时,可以不进行梯度更新,极大提升了每个batch负样本数量。

Memory Bank对比学习的主要论文是Unsupervised feature learning via non-parametric instance discrimination(ICLR 2018)。当进行图像分类时,如果两个类别的图像相似,那么模型更容易把这两类的预测搞混,softmax得分排第二的的类别往往是和待预测类别比较相似的。这说明模型在学习的过程中,能够从图像数据本身学出哪些图片表达相似的事物,而不需要引入标签。因此本文希望只利用无监督的图片,就学习出比较好的图像表示,将原来的分类问题进行一个扩展,每个图片视为一个类别,做多分类任务,这样无需有监督数据就能学习图像表示。同时,将softmax中每个类别对应的权重替换为每个样本的embedding结果,将原来的softmax去掉每个类别的权重参数w后变为了 non-parametric softmax,最终表示为:

然而一个图像为一个类别带来的问题是计算softmax多分类损失时,分类的类别数和样本数相同。因此本文提出利用InfoNCE loss来近似拟合softmax多分类损失,它与层次softmax、negative sampling都是解决类别较多时多分为问题的高效方法。InfoNCE loss将多分类问题转换为多个二分类问题,原来是预测当前样本属于哪个类别,转换成判断每个样本(一个正样本和多个负样本)是否和当前样本匹配,或区分数据样本和噪声样本。 为了提升运行效率,本文采用Model Bank的方法,每个样本的表示更新后会存储到model bank中。下次需要负样本的时候直接从model bank取该样本表示,而不会进行前向计算和反向传播。每个类别只有一个样本会导致模型训练不稳定,因此本文在损失函数中引入平滑项,让模型在t轮迭代计算的表示和t-1轮相似,引入两轮表示的L2正则。随着模型不断收敛,这一项L2正则会逐渐变为0,整体又变成原来的InfoNCE loss。

Model Bank方法的问题在于,Model Bank中存储的样本表示不是最新训练的encoder产出的,和当前encoder生成的表示有一定差异,导致模型训练过程存在问题,例如当前encoder产出的编码可能要和n轮迭代之前产出的encoder编码做比较。同时,Model Bank侧两次样本表示更新不具备连续性,也会导致训练不稳定 Momentum Encoder Momentum Encoder主要为了解决Model Bank中每个样本缓存的表示和Encoder更新不一致的问题。Momentum Encoder的核心思路是,模型在key侧的encoder不进行训练,而是平滑拷贝query侧encoder的参数,如下面的公式:

这种更新方式保证了key侧参数的平滑性,且每次都能用最新的参数得到key侧样本的表示结果。典型的Momentum Encoder工作是Facebook提出的MoCo,论文Momentum Contrast for Unsupervised Visual Representation Learning。

In-Batch Negtive In-Batch Negtive也是对比学习中经常采用的一种扩大负样本数量的方法。对于匹配问题,假设每个batch内有N个正样本对,那么让这N个正样本之间互为负样本,这样每个样本就自动生成了2*(N-1)个负样本。这种技巧提出的很早,在近期对比学习中又得到非常广泛的应用。

A Simple Framework for Contrastive Learning of Visual Representations(2020)就采用了In-Btahc Negtive的方法。此外,本文也提出了对比学习的一些关键发现,包括对数据的argumentation的方式、batch size的大小、生成的embedding进行normalize、对对比学习loss的temperature进行调节都对对比学习效果有重要影响。融合了上述优化,本文提出SimCLR对比学习框架,以最大化同一个图像经过不同argumentation后表示的相关性为目标。整个流程分为3个步骤,首先对图像进行两种不同的增强得到一对正样本,然后经过Encoder得到表示,最后将表示映射后计算对比学习loss,采用In-Batch Negtive的方法进行学习。

在图像和文本匹配的多模态领域,In-Batch Negtive也非常常用,例如Learning Transferable Visual Models From Natural Language Supervision提出的CLIP模型。In-Batch Negtive的优点是非常简单,计算量不会显著增加。缺点是负样本只能使用每个batch内的数据,是随机采样的,无法针对性的构造负样本。

总结 本文总结了对比学习的4种基本训练结构,包括End-to-End、Memory Bank、Momentum Encoder以及In-Batch Negtive,以及各自的优缺点。对比学习训练方式发展的核心是,如何实现量级更大、质量更好、更平稳的负样本表示。通过优化负样本,可以显著提升对比学习的效果。 审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • gpu
    gpu
    +关注

    关注

    28

    文章

    5099

    浏览量

    134453
  • 编码
    +关注

    关注

    6

    文章

    1015

    浏览量

    56650

原文标题:对比学习中的4种经典训练模式

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    VCC、VDD、VEE、VSS对比分析

    解释:   DCpower一般是指带实际电压的源,其他的都是标号。在有些仿真软件,默认把标号和源相连。   VCC:C=circuit,表示电路的意思,即接入电路的电压。   VDD:D
    发表于 12-04 06:28

    无源探头与高压探头技术对比分析

    本文对比分析了无源探头与高压探头的技术原理、性能参数及应用场景,为选择合适探头提供参考。
    的头像 发表于 11-30 15:47 368次阅读

    AES和SM4算法的可重构分析

    和SM4的算法流程图再贴出来方便对比分析: AES算法流程图 SM4算法流程图 可以看到AES和SM4存在相同的操作符,例如异或、S盒替换、循环左移操作等。其中异或、循环左移操作
    发表于 10-23 07:26

    AES加密模式简介与对比分析

    时如何运作。在本分享帖,我们将讨论五常见的加密模式:电子密码本模式 (ECB),密码分组链接模式 (CBC),计数器模式 (CTR),密码反馈模式 (CFB),输出反馈模式 (OFB)。通过从多个角度
    发表于 10-22 08:21

    【「AI芯片:科技探索与AGI愿景」阅读体验】+AI的科学应用

    和量子计算的两项新兴的技术,将在生产假说方面发挥重要作用,从而改变科学发现的范式。 生成式AI: 2、穷举搜索 3、分析排错与组合优化 分析排错是生成假说的重要手段。强化学习也在优化假
    发表于 09-17 11:45

    TaskPool和Worker的对比分析

    ,并提高系统的整体性能。 本文将从实现特点和适用场景两个方面来进行TaskPool与Worker的比较。 实现特点对比 表1 TaskPool和Worker的实现特点对比 实现
    发表于 06-18 06:43

    如何将一个FA模型开发的声明式范式应用切换到Stage模型

    模型切换概述 本文介绍如何将一个FA模型开发的声明式范式应用切换到Stage模型,您需要完成如下动作: 工程切换:新建一个Stage模型的应用工程。 配置文件切换:config.json切换
    发表于 06-04 06:22

    国内外电机结构 工艺对比分析

    纯分享帖,需要者可点击附件免费获取完整资料~~~*附件:国内外电机结构 工艺对比分析.pdf【免责声明】本文系网络转载,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请第一时间告知,删除内容!
    发表于 05-29 14:06

    主流汽车电子SoC芯片对比分析

    主流汽车电子SoC芯片对比分析 随着汽车智能化、电动化趋势加速,系统级芯片(SoC)已成为汽车电子核心硬件。本文从技术参数、市场定位、应用场景及国产化进程等维度,对主流汽车电子SoC芯片进行对比分析
    的头像 发表于 05-23 15:33 4767次阅读

    电子元器件失效分析典型案例(全彩版)

    元器件的典型失效分析案例。 纯分享贴,有需要可以直接下载附件获取完整资料! (如果内容有帮助可以关注、点赞、评论支持一下哦~)
    发表于 04-10 17:43

    【「典型电子电路设计与测试」阅读体验】运算放大器电路阅读体验

    、瞬态分析,设置仿真时间为2ms,最大步长为5us,结果显示输入和输出电压波形,验证了电路实现2倍同相放大的功能。 4、电阻变化对增益和带宽的影响‌:通过改变电阻R2的值,可以观察到增益和带宽的变化
    发表于 02-23 10:56

    半导体激光器和光纤激光器的对比分析

    半导体激光器和光纤激光器是现代激光技术的两重要类型,它们在结构、工作原理、性能及应用领域等方面有着显著的区别。本文将从增益介质、发光机理、散热性能、输出特性及应用领域等多个方面,对这两激光器进行详细的
    的头像 发表于 02-03 14:18 2377次阅读

    名单公布!【书籍评测活动NO.54】典型电子电路设计与测试

    5个工作日内未联系,视为放弃本次试用评测资格! 本书主要对运算放大器电路、波形发生电路、功率放大电路、信号隔离和转换电路等典型电子电路进行设计与测试,包括工作原理分析、参数计算、仿真验证,以及实际
    发表于 01-06 11:17

    投影机对比度与动态对比度的区别及运用

    )、色度(Tint)、锐度(Sharpness)、色温设定(Color Temperature)等。其中的对比度,是对信号(图像或视频)的亮度差异的调整。 它通过增加或减少图像相邻像素之间的灰度级差异来
    的头像 发表于 12-20 14:03 2603次阅读
    投影机<b class='flag-5'>中</b><b class='flag-5'>对比</b>度与动态<b class='flag-5'>对比</b>度的区别及运用

    zeta在机器学习的应用 zeta的优缺点分析

    在探讨ZETA在机器学习的应用以及ZETA的优缺点时,需要明确的是,ZETA一词在不同领域可能有不同的含义和应用。以下是根据不同领域的ZETA进行的分析: 一、ZETA在机器学习
    的头像 发表于 12-20 09:11 1625次阅读