【对比学习串烧】 SWav和 BYOL

文章目录

    • 文章列表
    • 九、SWaV
      • [9.1 研究背景](#9.1 研究背景)
      • [9.2 论文摘要](#9.2 论文摘要)
      • [9.3 论文图示](#9.3 论文图示)
        • [图一 对比学习和SwAV](#图一 对比学习和SwAV)
        • [图二 在ImageNet 上的线性分类](#图二 在ImageNet 上的线性分类)
        • [图三 SwAV方法和其他聚类方法比较](#图三 SwAV方法和其他聚类方法比较)
        • [图四 对未经策划的数据进行预训练](#图四 对未经策划的数据进行预训练)
        • [图五 多分辨率裁剪](#图五 多分辨率裁剪)
    • 十、BYOL
      • [10.1 研究背景](#10.1 研究背景)
      • [10.2 解决问题](#10.2 解决问题)
      • [10.3 论文摘要](#10.3 论文摘要)
      • [10.4 论文理解](#10.4 论文理解)
      • [10.5 论文图示](#10.5 论文图示)

文章列表

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

是否完成 年份 文章及其链接 简介 其他
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加自监督在视觉也很香

九、SWaV

9.1 研究背景

本文的具体的做法就是把对比学习和之前的聚类的方法合在了一起,当然这么想也不是偶然首先,聚类方法也是一种无监督的特征表示学习方式,而且它也是希望相似的物体都聚集在某一个聚类中心附近,不相似的物体尽量推开推到别的聚类中心,所以跟对比学习的目标和做法都比较接近

  • 无监督图像表示学习(也称为自监督学习)在计算机视觉领域取得了显著进展,尤其是在对比学习方法的推动下,这些方法在减少与有监督预训练差距方面表现出色。
  • 对比学习方法通常需要在线计算大量显式成对特征比较,这在计算上具有挑战性。

研究解决的问题:

  • 如何在不依赖显式成对特征比较的情况下,利用对比学习方法的优势,以提高无监督学习的性能。

研究实施方案:

  1. 提出SwAV算法 :这是一种在线算法,它通过同时聚类数据并强制执行不同增强(或"视图")产生的聚类分配之间的一致性,而不是直接比较特征。
  2. "交换"预测机制:通过预测一个视图的代码从另一个视图的表示中学习特征,而不是直接比较不同图像视图的特征。
  3. 多分辨率裁剪(Multi-crop)策略策略:提出了一种新的数据增强策略,使用不同分辨率的视图组合,以增加训练中比较的视图数量,而不增加内存或计算需求。
  4. 实验验证:在多个标准自监督基准测试上评估提出的方法,包括在ImageNet数据集上的测试。

9.2 论文摘要

  • 摘要 :论文提出了一种名为SwAV的在线算法,该算法利用对比学习方法的优势,而无需计算成对比较。通过聚类分配的一致性,SwAV能够在不同图像增强之间进行对比,同时不需要大型记忆库或特殊动量网络。此外,论文还提出了一种新的多分辨率裁剪(Multi-crop)策略数据增强策略,该策略通过使用不同大小的图像视图,提高了模型的性能。
  • 重点
    • 在线聚类损失:提出了一种可扩展的在线聚类损失,通过+2%的性能提升,在大型和小批量设置中均有效,无需大型记忆库或动量编码器。
    • 多分辨率裁剪(Multi-crop)策略策略:引入了一种多分辨率裁剪(Multi-crop)策略策略,通过在不增加计算或内存开销的情况下增加图像视图的数量,观察到在ImageNet上使用该策略在多个自监督方法上一致的性能提升(2%至4%)。
    • 结合技术贡献:将两种技术贡献结合到一个模型中,在ImageNet上提高了自监督性能+4.2%,并且在使用标准ResNet的情况下,在多个下游任务中超过了有监督预训练。这是第一种不使用微调特征(即仅在冻结特征上使用线性分类器)就能做到这一点的方法。

9.3 论文图示

图一 对比学习和SwAV
  • 展示在对比学习方法中,不同变换(或"视图")的同一图像产生的特征之间的直接比较。在SwAV方法中,通过分配给原型向量的聚类来间接比较特征,而不是直接比较不同图像视图的特征。这表明SwAV不直接比较图像特征,而是通过比较不同视图的聚类分配来实现对比学习。
  • 同一个图片,做两次数据增强就得到了x1、x 2,然后所有的样本通过一个编码器,这个编码器有可能就是个 Res 50,或 Res 50加了一个 projection head,它这里没有明说,反正就是所有的这些都属于一个模型,最后这个模型输出一个特征,一旦有了这个特征,用它做一个对比学习的 loss

  • SwAV说,这么做虽然比较简单,但是直接拿所有图片的特征跟特征做对比有点原始而且有点费资源,因为所有的图片都是自己的类,所以其实像MoCo一样,取了6万个负样本,这还只是个近似,因为其实所有的数据集,所有的负样本理应是128万个图片

    SwAV的作者就想,能不能不去做近似,能不能借助一些先验信息不去跟大量的负样本比,而去跟一些更简洁的东西比,然后SwAV的作者就想出来了,可以去跟聚类的中心比(聚类中心就是右图里的c,也就是个proto type,它其实就是个矩阵,它的维度是d 乘以 k,d是特征的维度,这里的d和特征的d 是一样的,比如说就是之前说的128维,这个k就是有多少个聚类中心,在这篇文章中它们选的是3,000,也就是说你有3,000个 cluster center,3,000这个数字也是之前的一些聚类方法在ImageNet数据集上常用的一个参数)

SwAV的前向过程

  • 前面还是都一样的:一个mini-batch的图片,做两次数据增强,得到x1、x2分别通过编码器得到最后的特征z1、z2
  • 有了z1、z2之后并不是直接在这个特征上去做对比学习的loss,而是说先通过clustering让特征z和prototype c生成一个目标,也就是这里的 q1、q2就相当于ground truth,那它真正要做的这个代理任务是什么呢?它的意思是说如果x1、x2是正样本的话,那z1 和 z 2的特征就应该很相似,也就跟之前对比学习一样,z1和z2要尽可能的相似
  • 那如果两个特征非常相似,或者说含有等量的信息的时候,按道理来说应该是可以互相去做预测的,也就是说,如果拿z1这个特征去跟c去做点乘,按道理来说也是可以去预测q2;反之亦然,z2和这个c去做点乘也可以预测q1,所以说点乘之后的结果就是预测,而ground truth就是之前按照clustering分类而得到的q1和q2
  • 所以通过这种Swapped prediction,也就是换位预测的方法,SwAV可以对模型进行训练
    用聚类的好处到底有哪些?

首先,就像SwAV 这篇论文里讲过的一样,如果要跟很多的负样本去做类比,可能就需要成千上万的负样本,而且即使如此也只是一个近似,而如果只是跟聚类中心做对比,则可以用几百或者最多3,000个聚类中心,就足以表示了,因为其实也并没有那么多类,ImageNet也就1,000类,COCO才80类,所以说3,000个聚类中心就足够用了,这相对于几万个负样本来说还是小了很多的

图二 在ImageNet 上的线性分类
  • 这个图表可能展示了在ImageNet数据集上使用不同自监督方法训练的线性模型的性能。左侧展示了使用标准ResNet-50时的性能,而右侧可能展示了随着ResNet-50宽度增加(例如×2、×4和×5倍)时的性能变化。这表明SwAV在这些设置下的性能,并与有监督学习的性能进行了比较。
图三 SwAV方法和其他聚类方法比较
  • 展示了在ImageNet数据集上使用SwAV方法与其他聚类方法(如SimCLR)的性能比较。左侧可能展示了不同方法在固定训练周期数后的性能,而右侧可能展示了随着训练周期数增加,SwAV性能的变化趋势。这表明SwAV在不同训练长度下的性能,以及与其他方法相比的优势。

ImageNet上的Top-1准确度,使用ResNet-50中的冻结特征训练的线性分类器。(左)基于聚类和对比实例方法之间的比较以及多作物的影响。自监督方法训练400个epoch,监督模型训练200个epoch。(右)作为时代函数的性能。我们比较了用不同数量的epoch训练的SwAV模型,并根据我们的实现报告了它们的运行时间。

图四 对未经策划的数据进行预训练

对未经策划的数据进行预训练。ImageNet上预训练模型在一组未经策划的1B随机Instagram图像上的准确率最高。(左)我们在两个下游任务上比较了ResNet-50与Simplified或SwAV的预训练:冻结特征的线性分类或微调特征。(右)当我们按照增加ResNext的容量时,微调模型的性能。该容量以数十亿个多加操作提供。在一组经过筛选的1B Instagram图像上进行预训练,使用类似于ImageNet类的1.5k主题标签进行过滤。

这个图表可能展示了在无标签的大规模数据集(如Instagram图片)上预训练的模型在ImageNet数据集上的性能。左侧可能比较了使用SimCLR和SwAV预训练的ResNet-50模型在两个下游任务(冻结特征上的线性分类和微调特征)上的性能。右侧可能展示了随着模型容量增加,预训练模型性能的变化。

图五 多分辨率裁剪

这个图表可能是一个示意图,展示了多分辨率裁剪(Multi-crop)策略(multi-crop)策略,其中一张图片被转换成两个全局视图和多个小分辨率的放大视图。这可能用来说明SwAV方法如何通过使用不同尺寸的图像视图来增加数据的多样性,而不会显著增加内存或计算需求。

十、BYOL

10.1 研究背景

latent 其实就是特征的意思 latent , hidden featureembedding 其实都是特征的意思 就是各种花里胡哨的用法而已

  • 图像表示学习对于计算机视觉任务至关重要,因为它可以提高模型在各种下游任务(如分类、检测等)上的性能。
  • 以往的自监督学习方法通常依赖于对比学习,通过正样本对的相似度提升和负样本对的相似度降低来学习表示。然而,这种方法需要精心设计的数据增强策略和对负样本对的处理,这增加了方法的复杂性。

10.2 解决问题

  • 论文提出了一个问题:是否可以通过一种不依赖于负样本对的方法来学习有效的图像表示。

研究实施方案(BYOL方法细节):

  1. 在线网络和目标网络: BYOL使用两个神经网络,即在线网络和目标网络。在线网络用于预测目标网络的输出,而目标网络则提供预测的目标。
  2. 自举预测: 通过自举的方式,即利用在线网络的输出来更新目标网络,从而实现对表示的迭代提升。
  3. 慢速移动平均: 目标网络的参数不是静态的,而是在线网络参数的指数移动平均,这有助于稳定训练过程。
  4. 训练策略: 通过最小化在线网络预测和目标网络表示之间的差异来进行训练,而不需要负样本对。

10.3 论文摘要

  • 摘要: 论文介绍了BYOL方法,并指出其在不使用负样本对的情况下,通过自监督学习达到了新的性能水平。BYOL在ImageNet数据集上通过线性评估达到了74.3%的top-1准确率,并且通过更大的网络结构进一步提升了性能。
  • 重点内容:
    • 不依赖负样本对: BYOL的一个显著特点是它不依赖于负样本对,这简化了训练过程并提高了对数据增强策略的鲁棒性。
    • 性能表现: BYOL在多个基准测试中展现了与当前最先进技术相当或更好的性能,特别是在迁移学习和半监督学习场景中。
    • 鲁棒性: 论文还展示了BYOL对于图像增强策略变化的鲁棒性,这表明其在实际应用中可能更加灵活和有效。

10.4 论文理解

  • 在对比学习中这个负样本呢是一个约束如果你在算目标函数的时候你只有正样本那其实你的目的呢就只有一个那就是让所有相似的物体,它们的特征也尽可能的相似。那这个时候呢就有一个很明显的捷径:就说如果一个模型不论你给它什么输入它都给你返回同样的输出,它出来的所有的特征。都是一模一样的

  • 那你拿这个去算对比学习的 loss 那就都是零, 意思就是模型直接就躺平了它直接用这个捷径解就能完美解决你的问题loss 永远是0模型根本都不用学。而只有加上负样本的这个约束

  • 不光相似的物体要有相似的特征,然后不相似的物体要有不相似的特征这样呢模型才有动力去继续学。因为如果它输出的所有特征都一样,那在负样本这边它的这个 loss 呢就无穷大

  • 让正样本和负样本的 loss 都往下降。达到一个最优解 。负样本在对比学习。是个必须的东西它能防止模型学到这个捷径论文里也管这个呢叫 model collapse或者 learning collapse就是模型坍塌或者学习坍塌

10.5 论文图示

图1:BYOL在ImageNet上的性能表现
  • 这张图展示了BYOL在ImageNet数据集上使用ResNet-50和ResNet200架构时的性能,与其他无监督和有监督基线方法进行了比较。
  • X轴表示模型参数的数量,Y轴表示ImageNet top-1准确率。
  • 图中显示了不同模型配置下的性能,包括BYOL及其变种(如BYOL (2×) 和 BYOL (4×)),以及其他对比学习方法如SimCLR、MoCo等。
  • 这张图说明了BYOL在不同模型大小下都能取得很好的性能,并且在某些配置下超过了当时的最先进方法。
图2:BYOL的架构
  • 这张图展示了BYOL方法的神经网络架构,包括在线网络和目标网络。
  • 在线网络由编码器(encoder)、投影器(projector)和预测器(predictor)组成,它们共同处理输入图像的一个增强视图,并尝试预测另一个增强视图的目标网络表示。
  • 目标网络具有与在线网络相同的架构,但使用不同的权重(通过在线网络参数的指数移动平均更新)。
  • 图中还展示了损失函数的计算方式,即在线网络的预测输出与目标网络的投影之间的均方误差。
图3: 相对其他对比学习方法在不同条件下的性能变化

a: 批量大小对性能的影响

  • X轴:批量大小,从128到4096不等。
  • Y轴:与基线性能相比的准确率下降百分比。
  • 图中数据
    • BYOL:在不同的批量大小下,BYOL的性能相对稳定,即使在较小的批量大小(如256)时,性能下降也不显著。
    • SimCLR :随着批量大小的减小,SimCLR的性能迅速下降。这是因为对比学习方法通常依赖于批次中的负样本对,批量大小减小会导致可用的负样本对数量减少。

b: 图像增强变换对性能的影响

  • X轴:不同的图像增强变换设置。

  • Y轴:与基线性能相比的准确率下降百分比。

  • 图中数据

    • BYOL:对于各种图像增强变换的移除,BYOL的性能下降相对较小。这表明BYOL对于图像增强的选择更为鲁棒。
    • SimCLR:移除颜色失真等增强变换对SimCLR的性能有显著影响,这再次强调了对比学习方法对特定数据增强策略的依赖性。
  • BYOL的鲁棒性 :图3显示BYOL在不同的实验条件下(如不同的批量大小和图像增强策略)表现出更好的鲁棒性。这主要是因为BYOL不依赖于负样本对,而是通过自举的方式进行学习,这种方式对数据的表示和变换具有内在的适应性。

  • 对比学习方法的局限性:相比之下,SimCLR等对比学习方法在这些条件下的性能波动较大,这揭示了它们在实际应用中可能面临的挑战,尤其是在资源有限或数据变换策略需要调整的场景中

  • 实际应用的启示:这些结果表明,在设计自监督学习算法时,考虑算法对不同实验条件的适应性是非常重要的。BYOL提供了一种在多种设置下都能稳定工作的方法,这对于实际部署和应用是非常有价值的。

相关推荐
问道飞鱼1 小时前
每日学习一个数据结构-B+树
数据结构·b树·学习
不染_是非2 小时前
Django学习实战篇六(适合略有基础的新手小白学习)(从0开发项目)
后端·python·学习·django
明明真系叻2 小时前
第十二周:机器学习笔记
人工智能·机器学习
Midsummer啦啦啦2 小时前
NumPy库学习之argmax函数
学习·numpy
Mero技术博客2 小时前
第二十节:学习Redis缓存数据库实现增删改查(自学Spring boot 3.x的第五天)
数据库·学习·缓存
跟着大数据和AI去旅行2 小时前
使用肘部法则确定K-Means中的k值
python·机器学习·kmeans
为暗香来3 小时前
MySQL学习(视图总结)
数据库·学习·mysql
一道秘制的小菜3 小时前
C++第十一节课 new和delete
开发语言·数据结构·c++·学习·算法
学不会lostfound3 小时前
一、机器学习算法与实践_03概率论与贝叶斯算法笔记
算法·机器学习·概率论·高斯贝叶斯