SimCLR: 一种视觉表征对比学习的简单框架《A Simple Framework for Contrastive Learning of Visual Representations》(对比学习、数据增强算子组合,二次增强、投影头、实验细节很nice),好文章,值得反复看 - ZERO- - 博客园 (cnblogs.com)

𝑆𝑖𝑚𝐶𝐿𝑅 最终目的是最大化同一数据示例的不同增强视图之间的一致性来学习表示,即 max similar (v 1, v 2)

  • 核心思想:SimCLR 通过对比学习自监督地学习视觉表示。最大化同一数据样本不同增强视图在潜在空间中的相似性,最小化不同样本的相似性。
  • 关键组件:数据增强(如随机裁剪、颜色失真、高斯模糊)、神经网络编码器(如 ResNet)、投影头(两层 MLP)、对比损失(NT-Xent Loss)。
  • 应用:用于无标签数据预训练,适用于图像分类、对象检测等任务。
  • 优势:无需标签数据即可学习有效表示,提高下游任务的性能。
  • 多种数据增强操作的组合对于确定产生有效表征的对比预测任务至关重要。此外,与有监督学习相比,无监督对比学习受益于更强的数据增强。
    • ——三种简单的增强技术:随机裁剪并调整为原始大小、随机色彩失真和随机高斯模糊。我们的研究表明,对监督学习没有产生准确性益处的数据增强仍然对对比学习有很大帮助。
  • 在表征和对比损失之间引入可学习的非线性变换,可大幅提高所学表征的质量。
    • 们观察到,非线性投影比线性投影好(+3%),比无投影好得多(>10%)。使用投影头时,无论输出维度如何,都能观察到类似的结果。此外,即使使用了非线性投影,投影头之前的层 h 仍然比投影头之后的层 z = g(h) 好得多(>10%),这表明投影头之前的隐藏层比投影头之后的隐藏层具有更好的代表性。(GPT解释:因为投影头的设计目标是为了辅助训练特征提取层,而不是直接用于下游任务。投影头的设计主要目的是为了在训练过程中增强特征学习的效果。在对比学习(如SimCLR)中,投影头通常用于将高维特征映射到一个低维空间,使得对比损失在这个空间中计算得更为有效。)投影头之后的特征(通常记作z=g(h)是专门为优化对比损失函数设计的。)(me:也就是说,如果用作下游任务分类,投影会造成信息损失,使用投影前的信息会更具有代表性,更好分类)
  • 使用对比交叉熵损失进行表征学习,可以从归一化嵌入和适当调整的温度参数中获益。
    • 1)l2 归一化(即余弦相似度)和温度能有效地对不同实例进行加权,而适当的温度能帮助模型从困难负样本(难负样本)中学习;2)与交叉熵不同,其他目标函数并不能根据负样本的相对难度对其进行加权。因此,我们必须对这些损失函数进行半难负样本挖掘
  • 与监督学习相比,对比学习受益于更大的批量和更长的训练时间。与监督学习一样,对比学习受益于更深更广的网络。
    • 随着训练steps/epochs的增加,不同批次(batch size)大小之间的差距会缩小或消失,前提是这些批次(batches)是随机重采样的。与监督学习(Goyal 等人,2017 年)不同的是,在对比学习中,较大的batch size能提供更多的负样本,从而促进收敛(即用较少的epochs和steps就能获得给定的准确率)。更长时间的训练也能提供更多负样本,从而改善结果。