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

news2024/9/20 6:26:21

文章目录

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

文章列表

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

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

三、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的目标是通过对比学习来利用这些信息,从而学习到更加全面和鲁棒的特征表示。

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

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

相关文章

【Qt】Qt C++ Widget中嵌入qml

1. 效果 2. 方法 使用QQuickWidget方式 QQuickWidget *view new QQuickWidget;view->setSource(QUrl::fromLocalFile("myqmlfile.qml"));view->show();除了QQuickWidget方式还可以使用QQuickView方式,请自行查阅资料 3. 代码 3.1 工程目录 3.2 …

初始爬虫7

针对数据提取的项目实战&#xff1a; 补充初始爬虫6的一个知识点&#xff1a; etree.tostring能够自动补全html缺失的标签&#xff0c;显示原始的HTML结构 # -*- coding: utf-8 -*- from lxml import etreetext <div> <ul> <li class"item-1">…

图论篇--代码随想录算法训练营第五十八天打卡|拓扑排序,dijkstra(朴素版),dijkstra(堆优化版)精讲

拓扑排序 题目链接&#xff1a;117. 软件构建 题目描述&#xff1a; 某个大型软件项目的构建系统拥有 N 个文件&#xff0c;文件编号从 0 到 N - 1&#xff0c;在这些文件中&#xff0c;某些文件依赖于其他文件的内容&#xff0c;这意味着如果文件 A 依赖于文件 B&#xff0…

软件设计之JavaWeb(4)

软件设计之JavaWeb(4) 此篇应在MySQL之后进行学习: 路线图推荐&#xff1a; 【Java学习路线-极速版】【Java架构师技术图谱】 尚硅谷全新JavaWeb教程&#xff0c;企业主流javaweb技术栈 资料可以去尚硅谷官网免费领取 此章节最好学完JDBC观看 学习内容&#xff1a; 会话管理…

CleanClip for Mac 剪切板 粘贴工具 历史记录 安装(保姆级教程,新手小白轻松上手)

CleanClip&#xff1a;革新macOS剪贴板管理体验 目录 功能概览 多格式历史记录保存智能搜索功能快速复制操作拖拽功能 安装指南 前期准备安装步骤 配置与使用 功能概览 多格式历史记录保存 CleanClip支持保存文本、图片、文件等多种格式的复制历史记录&#xff0c;为用户提…

vue 在线预览word和excel

yarn add vue-office/excel vue-office/docx <template><div><vue-office-docx:src"docx"style"height: 100%; margin: 0; padding: 0"rendered"rendered"/></div> </template><script> //引入VueOfficeDoc…

C:字符串函数(续)-学习笔记

穗 一些闲话&#xff1a; 最近玩了这款饿殍-明末千里行&#xff0c;不知大家是否有听过这款游戏&#xff0c;颇有感触&#xff01;&#xff01;&#xff01; 游戏中最让我难以忘怀的便是饿殍穗线的故事&#xff0c;生在如今时代的我之前无法理解杜甫在目睹人间悲剧时的心情&…

低级编程语言和高级编程语言

一.区分低级编程语言和高级编程语言的方法 1.低级编程语言 低级编程语言,并不是简单的编程语言,而是写起来很费事的编程语言,如所有编程语言的"祖宗":汇编语言,写起来极其麻烦,说不定一个 int a1; 它就得写好几行,甚至十几行 这样麻烦的编程语言为什么还没消失那,因…

蓝桥杯省赛真题——大臣的旅费

输入样例&#xff1a; 5 1 2 2 1 3 1 2 4 5 2 5 4 输出样例&#xff1a; 135分析&#xff1a; 本题实际上要求我们去求在图中最远两点之间的距离&#xff0c;也就是树的直径 我们先从某一个点出发&#xff0c;到达离其最远的点&#xff0c;然后再重复操作一次即可 #inclu…

1184. 公交站间的距离(24.9.16)

题目 环形公交路线上有n个站&#xff0c;按次序从 0 到n - 1进行编号。已知每一对相邻公交站之间的距离&#xff0c;distance[i]表示编号为i的车站和编号为(i 1) % n的车站之间的距离。环线上的公交车都可以按顺时针和逆时针的方向行驶。要求返回乘客从出发点start到目的地de…

C++11(3)

目录 可变参数模版 获取参数包值的方式 1.递归方式展开参数包 2.使用数组逗号表达式展开 emplace_back函数 lambda表达式 C98中的例子 lambda表达式 语法 lambda表达式和函数比较 包装器 function包装器 bind绑定器 可变参数模版 C11 的新特性可变参数模板能够让您…

Java--String类

前言&#xff1a; 在之前的学习中&#xff0c;学习了和了解了一些类的基本使用&#xff0c;例如object类等等&#xff0c;但是我们用String这个引用或者说这个类其实我们已经用了好久&#xff0c;只不过没有具体分析过&#xff01; 对于String类&#xff0c;它可以引用一个字符…

VTD激光雷达(1)——01_OptiX_RayTracing-笔记

文章目录 前言一、文档介绍1、 总结 前言 不想学习怎么办 感谢VTD官方视频指导 一、文档介绍 1、 1 2 站在光的角度上考虑问题&#xff0c;如果用光源发出的&#xff0c;好多没到传感器上&#xff0c;这样会导致计算量很大&#xff0c;我们用传感器的trace 3 4 5 6 7 8 …

如何在 Vue 3 + Element Plus 项目中实现动态设置主题色以及深色模式切换

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 一、引言二、项目依赖和环境配置1. VueUse2. use-element-plus-theme3. 安装依赖 三、实现深色模式切换1. 设置深色模式状态2. 模板中的深色模式切换按钮3. 深色模式的效果展示 四、动态切换主题色五、总结 一、引言 在现代…

平安养老险阜阳中心支公司开展金融教育宣传专项活动

为全面深入开展“金融教育宣传月”的各项工作&#xff0c;不断完善金融惠民利民举措&#xff0c;提升金融服务质效&#xff0c;帮助基层群众增强维权意识、防非反诈的自我保护能力。近日&#xff0c;平安养老保险股份有限公司&#xff08;以下“平安养老险”&#xff09;阜阳中…

神经网络_使用tensorflow对fashion mnist衣服数据集分类

from tensorflow import keras import matplotlib.pyplot as plt1.数据预处理 1.1 下载数据集 fashion_mnist keras.datasets.fashion_mnist #下载 fashion mnist数据集 (train_images, train_labels),(test_images, test_labels) fashion_mnist.load_data()print("t…

食品包装识别系统源码分享

食品包装识别检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vis…

IDEA复制代码到MD笔记格式还手动调,赶紧试试这个功能,一步到位

你是否曾经有过这种复制代码到笔记代码块的经历&#xff0c;选中后代码左侧有一些空格 然后粘到Markdown笔记里除第一行外&#xff0c;其他几行都要手动向前缩进&#xff0c;真是逼死强迫症啊 但是&#xff0c;其实idea工具中有一个“列选择模式”的功能&#xff0c;我们可以…

51单片机-LCD1602(液晶显示屏)- 写驱动

时间永远是检验真理唯一标准&#xff01;Whappy&#xff01; 主要简单写出几个驱动 初始化、显示字符、显示字符串、显示整形数据、有符号数据、十六进制、二进制&#xff01; void LCD_Init(); void LCD_ShowChar(unsigned char Line,unsigned char Column,char Char); vo…

【网络安全的神秘世界】csrf客户端请求伪造

&#x1f31d;博客主页&#xff1a;泥菩萨 &#x1f496;专栏&#xff1a;Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具 一、概述 跨站请求伪造&#xff0c;是一种挟持用户在当前已登陆的web应用程序上执行非本意操作的攻击方法&#xff0c;允许攻…