计算机视觉 对比学习 串烧二

文章目录

    • 文章列表
    • 三、CPC
      • [3.1 文章摘要](#3.1 文章摘要)
      • [3.2 实验结果](#3.2 实验结果)
      • [3.3 文章图示](#3.3 文章图示)
        • [图 1: 对比预测编码(CPC)的概览](#图 1: 对比预测编码(CPC)的概览)
        • [图 2: 语音(演讲)表示的t-SNE可视化](#图 2: 语音(演讲)表示的t-SNE可视化)
        • [图 3: 预测未来潜在表示的准确率](#图 3: 预测未来潜在表示的准确率)
        • [图 4: 图像的对比预测编码(CPC)的可视化](#图 4: 图像的对比预测编码(CPC)的可视化)
        • [图 5: CPC架构中激活特定神经元的图像块](#图 5: CPC架构中激活特定神经元的图像块)
        • [图 6: 强化学习结果](#图 6: 强化学习结果)
    • 四、CMC
      • [4.1 文章摘要](#4.1 文章摘要)
      • [4.2 实验结果](#4.2 实验结果)
      • [4.3 文章图示](#4.3 文章图示)
        • [图 1: 多视图对比学习的示例](#图 1: 多视图对比学习的示例)
        • [图 2: 视频表示学习中的CMC框架](#图 2: 视频表示学习中的CMC框架)
        • [图 3: 不同视图数量对表示质量的影响](#图 3: 不同视图数量对表示质量的影响)

文章列表

文章参考 对比学习论文综述【论文精读】 🌹 🚀

是否完成 年份 文章及其链接 简介 其他
2018 InstDisc 提出实例判别和memory bank做对比学习
2019 InvaSpread 一个编码器的端到端对比学习
2018 CPC 对比预测编码,图像语音文本强化学习全都能做
2019 CMC 多视角下的对比学习
2019 MoCov1 无监督训练效果也很好
2020 SimCLRv1 简单的对比学习 (数据增强 + MLP head + 大batch训练久)
2020 MoCov2 MoCov1 + improvements from SimCLRv1
2020 SimCLRv2 大的自监督预训练模型很适合做半监督学习
2020 BYOL 不需要负样本的对比学习
2020 SWaV 聚类对比学习
2020 SimSiam 化繁为简的孪生表征学习
2021 MoCov3 如何更稳定的自监督训练ViT
2021 DINO transformer加自监督在视觉也很香

三、CPC

《Representation Learning with Contrastive Predictive Coding》,文章提出了一种名为对比预测编码(Contrastive Predictive Coding,简称CPC)的通用无监督学习方法,用于从高维数据中提取有用的表征。

利用对比预测编码进行表征学习

3.1 文章摘要

摘要:

  • 对比预测编码(CPC)是一种无监督学习方法,通过使用强大的自回归模型在潜在空间预测未来,从而学习数据的表征。
  • CPC使用概率对比损失函数,诱导潜在空间捕获对于预测未来样本最有用的信息。
  • 该方法通过负采样使模型可处理,并在语音、图像、文本和3D环境中的强化学习四个不同领域上展示了其强大的性能。

重点:

  1. 引言:介绍了有监督学习在多个应用中取得的成功,以及无监督学习面临的挑战和重要性。
  2. 相关工作:讨论了无监督学习中预测未来、缺失或上下文信息的常见策略。
  3. CPC方法
    • 动机和直觉通过预测未来信息,学习编码底层共享信息的表征,同时丢弃更局部的低级信息和噪声
    • CPC架构:使用非线性编码器将输入序列映射到潜在表示,然后使用自回归模型在潜在空间进行预测。
    • InfoNCE损失和互信息估计 :介绍了基于噪声对比估计(Noise-Contrastive Estimation)的损失函数,用于训练编码器和自回归模型。
  4. 实验
    • 在语音、图像、自然语言和强化学习领域进行了实验,证明了CPC方法的有效性。
    • 在不同的数据集上评估了学习到的表征,如LibriSpeech、ImageNet、BookCorpus等。
  5. 结论:CPC作为一种通用的无监督学习框架,能够跨多个数据模态学习抽象的表征,并在多个领域上取得了强大的性能。

3.2 实验结果

实验结果

  • 在LibriSpeech数据集上,CPC在电话分类和说话人识别任务上取得了很高的准确率。
  • 在ImageNet数据集上,CPC在无监督分类任务中取得了最新的性能。
  • 在自然语言处理任务上,CPC与skip-thought vector模型表现相似,且训练速度更快。
  • 在DeepMind Lab的强化学习任务中,CPC作为辅助损失能够帮助加快智能体的学习速度。

致谢:作者感谢了为论文提供有用评论的同事,以及为A2C基线提供代码的Lasse Espeholt。


3.3 文章图示

图 1: 对比预测编码(CPC)的概览
  • 图 1 展示了对比预测编码(CPC)的基本原理,该方法不仅适用于音频处理,还可以处理图像、文本,并在强化学习中使用。CPC 的核心思想是利用编码器从一系列输入数据(如音频信号)中提取特征,并将这些特征输入到自回归模型中以产生上下文表示(context representation,ct)。如果上下文表示能够包含当前和历史信息,它就可以用来预测未来的数据特征(如 zt+1, zt+2)。

  • 对比学习在CPC中的体现是,使用未来的实际特征(正样本)与模型基于上下文表示做出的预测进行比较。负样本可以是任意其他数据,经编码器处理后,应与模型的预测不相似。这种方法非常灵活,可以应用于不同数据类型,如用句子中的前半部分预测后半部分,或者用图像的一部分预测剩余部分。

图 2: 语音(演讲)表示的t-SNE可视化
  • 目的:展示学习到的表征在说话人识别任务上的效果。
  • 内容
    • 通过t-SNE可视化,展示了251名说话人中的10名的表征。
    • 不同的颜色代表不同的说话人。
  • 结论:CPC学习到的表征能够很好地区分不同的说话人。
图 3: 预测未来潜在表示的准确率
  • 目的:展示模型在预测未来潜在表示时的性能。
  • 内容
    • 展示了模型在预测1到20个时间步长内的准确率。
    • 每个点代表模型预测正样本的logit是否高于负样本。
  • 结论 :随着预测目标的进一步,预测任务变得更难,但模型仍能较好地预测未来的潜在表示。
图 4: 图像的对比预测编码(CPC)的可视化
  • 目的:展示CPC方法在图像数据上的应用。
  • 内容
    • 描述了如何将图像分割成多个小块,并使用CPC框架进行处理。
  • 结论:CPC可以应用于图像数据,用于学习图像的潜在表示。

图像对比预测编码的可视化(图1的2D改编)。

图 4 可视化了在图像领域应用对比预测编码(CPC)的情况。这个图是对图 1 的一个具体实例,展示了如何处理图像数据。

  1. 输入图像

    • 图像被处理成一系列的小块(patches),这些小块可以看作是图像在不同时间步的"观察"。
  2. 编码器(genc)

    • 每个图像块被送入一个卷积神经网络作为编码器,这个编码器将每个图像块映射到一个潜在的表示空间(latent space)中,得到对应的潜在表示(z)。
  3. 自回归模型(gar)

    • 所有时间步的潜在表示(z)被送入一个自回归模型(例如GRU或LSTM),该模型总结所有时间步的信息,生成一个上下文潜在表示(ct)。
  4. 预测未来观察

    • 自回归模型利用到目前为止的上下文(ct)来预测未来几个时间步的图像块的潜在表示(zt+2, zt+3, zt+4)。这里的预测是条件化的,即基于当前和过去的信息来预测未来。
  5. 对比损失(Contrastive Loss)

    • 在训练过程中,模型需要区分正样本(真实的未来潜在表示)和负样本(随机选择的或来自不同上下文的图像块表示)。通过优化对比损失,模型学习到的潜在表示能够捕捉到对预测未来观察有用的信息。
  6. 可视化

    • 图中可能还展示了一些潜在表示的可视化,帮助理解模型捕捉到了哪些特征。例如,某些神经元可能对特定的视觉模式(如边缘、颜色或纹理)特别敏感。
  • 特征提取:CPC 不仅学习重建图像块,而且学习提取有用的特征,这些特征对于预测未来的观察至关重要。
  • 自监督学习:通过预测未来,CPC 提供了一种自监督学习机制,允许模型从未标记的数据中学习。
  • 潜在空间的利用:CPC 通过自回归模型在潜在空间中进行操作,这使得模型能够捕获数据的全局结构,而不仅仅是局部特征。
  • 灵活性:如图中所示,同样的框架可以应用于不同类型的数据,如音频、文本或强化学习中的环境状态。
图 5: CPC架构中激活特定神经元的图像块
  • 目的:展示CPC模型中特定神经元激活的图像块。
  • 内容
    • 每一行显示了激活CPC架构中某个神经元的图像块。
  • 结论 :这些图像块代表了模型学习到的特征,可能对应于图像中的某些显著特征。
图 6: 强化学习结果
  • 目的:展示CPC方法在强化学习任务中的应用效果。
  • 内容
    • 展示了在5个DeepMind Lab任务中,使用CPC作为辅助损失的强化学习智能体的性能。
  • 结论 :在大多数任务中,使用CPC辅助损失能够显著提高智能体的性能。

四、CMC

文章提出了一种新的无监督表示学习方法 ,称为对比多视图编码(Contrastive Multiview Coding,简称CMC),用于从同一场景的不同视图中学习表示,目的是最大化不同视图之间的互信息,同时使表示尽可能紧凑。
CPC和CMC是两篇关于对比学习的论文,它们各自提出了不同的方法来定义正样本和进行多视角或多模态学习。

CPC论文通过预测的代理任务进行对比学习,而CMC(Contrastive Multiview Coding)则进一步扩展了正样本的定义。CMC指出,人类通过多个传感器(如眼睛、耳朵)观察世界,每个视角虽带噪声且可能不完整,但关键信息(如物理定律、几何形状、语音信息)在所有视角中共享。基于此,CMC旨在学习一种具有视角不变性的强大特征,即无论哪个视角(如看到狗或听到狗叫),都能识别出是同一物体。

  • CMC通过NYU RGBD数据集展示了其方法,该数据集包含四个视角:原始图像、深度信息、表面法线图和物体分割图像。CMC认为,尽管输入来自不同传感器或模态,但所有输入都对应同一物体,因此应互为正样本。在特征空间中,这些正样本应相互接近,而与随机选取的不配对视角的特征远离。

  • CMC的贡献在于证明了对比学习的灵活性和多视角/多模态学习的可行性,为后续工作如OpenAI的CLIP模型提供了基础。CLIP模型展示了图像和文本作为正样本对进行多模态对比学习的可能性。CMC的原作者还利用对比学习思想进行了知识蒸馏工作,通过使教师模型和学生模型的输出相似来训练学生模型。

  • 然而,CMC在处理不同视角或模态时可能需要不同的编码器,这增加了计算代价。相比之下,Transformer模型因其能同时处理多种类型数据的潜力而备受关注,已有研究如MA-CLIP展示了单个Transformer处理多模态输入的有效性。这凸显了Transformer在处理多模态数据方面的优势。

4.1 文章摘要

摘要:

  • 研究了人类通过多个感官通道(如视觉、听觉和触觉)观察世界的方式,这些视图虽然有噪声且不完整,但共享诸如物理、几何和语义等重要因素。
  • 提出了一种假设,即强大的表示是能够建模视图不变因素的表示。
  • 在多视图对比学习框架下研究这一假设,学习的目标是使同一场景的不同视图的表示在空间上靠近,而不同场景的表示则相距较远。
  • 方法适用于任意数量的视图,并且与视图无关。
  • 分析了方法的关键属性,发现对比损失比基于跨视图预测的流行选择更优,并且使用的视图越多,得到的表示就能更好地捕获场景的语义。
  • 在图像和视频无监督学习基准测试中取得了最先进的结果。

方法

  • 预测学习:介绍了从v1到v2的视图预测学习方法。
  • 两视图对比学习:提出了一种基于对比的学习框架,通过对比匹配和不匹配的视图对来学习嵌入。
  • 多于两视图的对比学习:将对比学习扩展到多视图,并提出了"核心视图"和"全图"两种范式。
  • 实现对比损失:讨论了如何通过负采样和噪声对比估计(NCE)来实现对比损失。

4.2 实验结果

实验

  • 在多个数据集上评估CMC,包括ImageNet和STL-10。
  • 验证了CMC框架在视频表示学习任务上的有效性。
  • 扩展CMC到多视图学习,并提供了实验证据。
  1. 结论:提出了一种新的无监督表示学习框架,通过最大化多视图数据的互信息来学习强大的表示。

实验结果

  • 在ImageNet数据集上,CMC在不同的网络架构和层上都取得了很好的性能。
  • 在STL-10数据集上,CMC在对比学习设置下比预测学习方法表现得更好。
  • 在UCF101和HMDB51数据集上,CMC通过结合两种流(腹侧流和背侧流)来提高动作识别的准确性。
  • 在NYU Depth V2数据集上,CMC通过增加训练时使用的视图数量来提高表示的质量。

4.3 文章图示

图 1: 多视图对比学习的示例
  • 目的:展示CMC方法如何通过对比学习处理多视图数据。
  • 内容
    • 以NYU RGBD数据集为例,包含四个视角:原始RGB图像、深度图、表面法线和分割图。
    • 目标是使同一场景的不同视角在特征空间中彼此接近(正样本),而与其他场景的视角远离(负样本)。
  • 结论:通过这种方式,CMC学习到的特征表示能够捕捉到跨模态的共享信息,从而用于多种下游任务。
图 2: 视频表示学习中的CMC框架
  • 目的:展示CMC如何应用于视频表示学习。
  • 内容
    • 描述了如何将视频帧和对应的光流作为两个视图,并通过CMC框架进行学习。

预测学习与对比学习。 交叉视图预测(Top)学习从一个视图预测另一个视图的潜在表示,在输出空间中测量损失。 常见的预测损失,如L1和L2规范,是非结构化的,从某种意义上说,它们独立地惩罚每个输出维度,可能导致不能捕获视图之间所有共享信息的表示。 在对比学习(下图)中,通过对比一致和不一致的观点来学习表征,并在表征空间中测量损失。 红色虚线轮廓显示了应用损失函数的位置。

  • 结论
    • CMC能够有效地利用视频数据中的时序信息,提高动作识别等任务的性能。

当然,我会结合文件1906.05849v5.pdf中的内容和上下文,对图3进行超详细的解释。

图 3: 不同视图数量对表示质量的影响
  • CMC(Contrastive Multiview Coding)方法的两种主要架构图,即Core View(图3(a))和Full Graph(图3(b))。这两种架构图都是为了说明CMC如何通过多视角学习来优化特征表示。

在Core View架构中,CMC主要关注于核心视角(通常是一个主要视角,如图像的亮度通道L)与其他视角(如ab通道、深度图和表面法线图)之间的关系。这种架构强调了从一个核心视角出发,逐步加入其他视角信息来增强特征表示的过程。

  • 核心视角:在图3(a)中,L通道(亮度通道)被视为核心视角。在对比学习过程中,L通道的特征表示被用来与其他视角(如ab通道)的特征表示进行对比,以最大化它们之间的互信息。
  • 逐步加入其他视角:随着训练的进行,CMC逐步加入其他视角(如深度图和表面法线图)的信息。这种逐步增加视角的策略有助于模型逐步构建出更加丰富和鲁棒的特征表示。
  • 对比学习:在每个训练步骤中,CMC使用对比损失函数来最大化来自相同物体的不同视角之间的特征表示的相似性,同时最小化来自不同物体的视角之间的相似性。

Full Graph 架构 (图3(b))

Full Graph架构则更全面地考虑了所有视角之间的关系,不再局限于从核心视角出发。在Full Graph架构中,每个视角都被视为等价的,并且每个视角的特征表示都与其他所有视角的特征表示进行对比学习。

  • 全视角对比:在图3(b)中,L、ab、深度图和表面法线图都被视为独立的视角,并且它们之间的每一对都被用于对比学习。这种全视角对比的方式有助于模型从更广泛的角度捕捉不同视角之间的共同信息和互补信息。
  • 互信息最大化:CMC的目标是通过对比学习最大化所有视角之间的互信息。在Full Graph架构中,这一目标通过让每个视角的特征表示都能预测其他所有视角的特征表示来实现。
  • 公平性:Full Graph架构确保了所有视角在对比学习过程中都被公平对待,没有哪个视角被特别突出或忽略。这种公平性有助于模型构建出更加均衡和全面的特征表示。

在图3中,V1、V2、V3、V4等数字代表的是不同的视图(views)或模态(modalities)。 这些视图可以是数据的不同表示形式,比如图像的不同颜色通道、不同传感器的数据、或者是同一物体在不同视角下的图像等。

具体来说,每个视图都包含了关于同一目标(如一个物体或一个场景)的不同信息,而CMC的目标是通过对比学习来利用这些信息,从而学习到更加全面和鲁棒的特征表示。

相关推荐
虾球xz13 分钟前
游戏引擎学习第55天
学习·游戏引擎
oneouto30 分钟前
selenium学习笔记(二)
笔记·学习·selenium
B站计算机毕业设计超人30 分钟前
计算机毕业设计PySpark+Hadoop中国城市交通分析与预测 Python交通预测 Python交通可视化 客流量预测 交通大数据 机器学习 深度学习
大数据·人工智能·爬虫·python·机器学习·课程设计·数据可视化
学术头条34 分钟前
清华、智谱团队:探索 RLHF 的 scaling laws
人工智能·深度学习·算法·机器学习·语言模型·计算语言学
sealaugh3234 分钟前
aws(学习笔记第十九课) 使用ECS和Fargate进行容器开发
笔记·学习·aws
18号房客38 分钟前
一个简单的机器学习实战例程,使用Scikit-Learn库来完成一个常见的分类任务——**鸢尾花数据集(Iris Dataset)**的分类
人工智能·深度学习·神经网络·机器学习·语言模型·自然语言处理·sklearn
feifeikon41 分钟前
机器学习DAY3 : 线性回归与最小二乘法与sklearn实现 (线性回归完)
人工智能·机器学习·线性回归
游客52044 分钟前
opencv中的常用的100个API
图像处理·人工智能·python·opencv·计算机视觉
古希腊掌管学习的神1 小时前
[机器学习]sklearn入门指南(2)
人工智能·机器学习·sklearn
炭烤玛卡巴卡1 小时前
学习postman工具使用
学习·测试工具·postman