摘要
对比学习(Contrastive Learning)作为自监督学习的核心范式,通过构建正负样本对来学习具有判别性的特征表示,已成为计算机视觉领域的重要研究方向。本文参考[李沐论文精读-对比学习综述],系统梳理了2018年至2021年间CV领域对比学习的发展历程,涵盖14篇里程碑式论文,按技术演进划分为四个阶段:百花齐放期(2018-2019)、CV双雄期(2020)、无负样本探索期(2020-2021)和Transformer时代(2021)。报告详细分析了每篇论文的核心思想、关键技术创新及性能表现,并总结了技术演进脉络和未来发展方向。
1. 引言
1.1 对比学习的核心思想
对比学习是自监督学习(Self-supervised Learning,SSL)的重要代表,其基本思想是:将相似样本(正样本对)在特征空间中拉近,将不相似样本(负样本对)推远。这一简单而强大的思想为无监督/自监督学习提供了有效的训练信号。
对比学习通过代理任务(pretext task),来定义那些样本相似,那些不相似,从而产生监督信号来训练模型。代理任务通常是人为设定的规则,例如在计算机视觉中,对比学习通常通过以下方式构建正负样本对:
- 正样本对:同一图像的不同数据增强视角(如随机裁剪、颜色抖动等)
- 负样本对:不同图像之间的样本
1.2 对比学习的重要意义
- 突破标注瓶颈:无需大量人工标注即可学习高质量特征表示
- 性能逼近监督学习:在ImageNet等基准数据集上,自监督预训练的性能已接近甚至超越监督学习
- 迁移能力强:预训练模型在下游任务(目标检测、分割等)上表现优异
- 推动理论研究:促进了对深度学习表征学习本质的理解
1.3 发展历程概览
本报告将CV对比学习的发展划分为四个阶段:
| 阶段 | 时间 | 特征 | 代表工作 |
|---|---|---|---|
| 百花齐放 | 2018-2019 | 方法多样,性能有限 | InstDisc, CPC, CMC |
| CV双雄 | 2020 | MoCo与SimCLR竞争,性能飞跃 | MoCo v1/v2, SimCLR v1/v2, SwAV |
| 无负样本 | 2020-2021 | 突破负样本依赖 | BYOL, SimSiam |
| Transformer | 2021 | 架构升级,性能新高 | MoCo v3, DINO |
2. 第一阶段:百花齐放 (2018-2019)
在对比学习的萌芽期,研究者们探索了不同的代理任务、模型架构和目标函数,为后续发展奠定了基础。
2.1 InstDisc (CVPR 2018)
论文:Unsupervised Feature Learning via Non-Parametric Instance Discrimination
核心思想
提出"个体判别"(Instance Discrimination)任务:将每个图像实例视为一个独立的类别,通过区分不同实例来学习判别性特征。
关键创新:
- Memory Bank:存储整个数据集特征向量,解决负样本数量受限于Batch Size的问题
- Proximal Regularization:特征更新幅度约束,稳定训练
####损失函数:
性能表现
- ImageNet线性评估 Top-1: 46.5%
历史意义
InstDisc首次将实例判别引入CV领域,开创了对比学习的先河,但Memory Bank的特征一致性问题为后续MoCo的改进留下了空间。
2.2 InvaSpread (CVPR 2019)
论文:Unsupervised Embedding Learning via Invariant and Spreading Instance Feature
核心思想
强调特征的不变性(对增强鲁棒)和扩散性(不同实例分散)
关键技术创新
- 端到端Siamese架构:摒弃Memory Bank,batch内构建正负样本对
- 多分类交叉熵损失:将对比学习转化为多分类问题
局限性
受限于当时的硬件条件,Batch Size仅为256,负样本数量不足,限制了性能提升
性能表现
- ImageNet线性评估 Top-1: 48.8%
历史意义
InvaSpread是SimCLR的重要前身,证明了端到端训练的可行性,为后续大Batch训练奠定了基础。
2.3 CPC v1 (2018)
论文:Representation Learning with Contrastive Predictive Coding
核心思想
通过预测序列的未来信息来学习表征,基于"能够预测未来的特征必然包含高层语义"的假设,是一种生成式的对比学习。
网络架构
- Encoder :将输入 映射为潜在表示
- 自回归模型 (如GRU):将历史信息 总结为上下文向量
- 预测:使用 预测未来的
InfoNCE损失函数
性能表现
- ImageNet线性评估 Top-1: 48.7%
历史意义
CPC提出的InfoNCE损失成为对比学习的标准损失函数,被后续大量工作采用。
2.4 CMC (ECCV 2019)
论文:*Contrastive Multiview Coding *
核心思想
多视角对比学习:人类通过多种感官(视觉、听觉、触觉)感知世界,不同视角共享相同的语义信息。
网络架构
- 为每个View(如RGB、深度图、法线图)配备独立的Encoder
- 将不同View的特征投影到同一个单位球面上
损失函数
扩展的InfoNCE损失,最大化同一物体不同View之间的互信息:
其中 是同一物体的不同View特征。
历史意义
CMC将对比学习从单模态扩展到多模态,启发了后续多模态预训练工作(如CLIP)。这里使用了不同编码器来处理不同类型的输入,而后续transformer面世后,提供了统一处理不同模态数据的可能性。
第一阶段小结
| 论文 | 核心创新 | 负样本来源 | 性能 (Top-1) |
|---|---|---|---|
| InstDisc | Memory Bank + NCE Loss | Memory Bank | 46.5% |
| InvaSpread | 端到端Siamese | Batch内 | 48.8% |
| CPC v1 | InfoNCE + 预测未来 | 随机采样 | 48.7% |
| CMC | 多视角对比 | 跨View | - |
阶段特征:方法多样化,但性能尚未突破50%,主要瓶颈在于负样本数量和特征一致性。
3. 第二阶段:CV双雄 (2020)
2020年是对比学习的爆发期,MoCo系列和SimCLR系列的竞争推动了技术快速迭代,性能实现飞跃。
3.1 MoCo v1 (CVPR 2020)
论文:Momentum Contrast for Unsupervised Visual Representation Learning
核心思想
将对比学习视为字典查询任务,字典需规模大、特征一致。
网络架构
- Query Encoder :正常梯度更新
- Key Encoder :动量更新
- Queue:存储最近的K个负样本特征
关键技术创新
- Queue机制:解耦字典大小与Batch Size(Queue Size = 65536)
- 动量更新:,保证Key Encoder缓慢演进
损失函数
InfoNCE损失:
性能表现
- ImageNet线性评估 Top-1: 68.6%
历史意义
MoCo首次将对比学习性能提升到60%以上,证明了动量机制的有效性,成为后续工作的重要基线。
3.2 SimCLR v1 (ICML 2020)
论文:A Simple Framework for Contrastive Learning of Visual Representations
核心思想
一个简单的端到端框架,通过强大的数据增强和非线性投影提升表征质量。
网络架构
- Encoder :ResNet-50
- Projection Head :2层MLP(关键创新)
- 结构:Linear → ReLU → Linear
- 输入维度:2048,输出维度:128
损失函数
Normalized Temperature-scaled Cross Entropy Loss:
其中 为余弦相似度。
关键技术创新
- MLP Projector: Linear → ReLU → Linear(Projector后特征适合对比,Projector前特征适合下游任务)
- 强数据增强: RandomResizedCrop + ColorJitter + GaussianBlur + RandomHorizontalFlip(随机裁剪和随机颜色变换效果最好)
性能表现
- ImageNet线性评估 Top-1: 76.5%
历史意义
SimCLR证明了端到端训练的潜力,MLP Projector和强数据增强成为对比学习的标配。
3.3 MoCo v2 (2020)
论文:Improved Baselines with Momentum Contrastive Learning
核心思想
将SimCLR的有效组件集成到MoCo框架中,证明MoCo架构在小Batch下也能超越SimCLR。
改进点
增加MLP Projector、增强数据增强、余弦学习率调度
性能表现
- ImageNet线性评估 Top-1: 71.1%
- Batch Size仅256,可以在单机8卡下训练,性能超过需要更多机器的SimCLR v1
历史意义
MoCo v2证明了架构设计的重要性,小Batch + 好架构可以战胜大Batch + 简单架构。
3.4 SimCLR v2 (NeurIPS 2020)
论文:Big Self-Supervised Models are Strong Semi-Supervised Learners
核心思想
大模型是强半监督学习者,通过"自监督预训练 → 部分标签微调 → 知识蒸馏"三步走策略。
关键改进
更深Projector(3层MLP)、更大模型(ResNet-152 3x)、动量编码器
性能表现
- ImageNet 线性评估Top-1: 79.8%
历史意义
SimCLR v2证明了自监督预训练在半监督学习中的巨大潜力,为后续大模型预训练提供了思路。
3.5 CPC v2 (ICLR 2020)
论文:Data-Efficient Image Recognition with Contrastive Predictive Coding
核心思想
通过增大模型容量和改进训练细节提升CPC性能。
关键改进
更大模型(ResNet-161)、LayerNorm替代BatchNorm、多方向预测
性能表现
- ImageNet线性评估 Top-1: 71.5%
历史意义
CPC v2证明了预测式对比学习的潜力,但复杂度较高,后续工作较少采用。
3.6 SwAV (NeurIPS 2020)
论文:Unsupervised Learning of Visual Features by Contrasting Cluster Assignments
核心思想
对比聚类指派(Cluster Assignments)而非特征本身,通过在线聚类实现无负样本对比学习。
网络架构
- Encoder :ResNet-50
- Projection Head :2层MLP
- Prototypes :可学习的聚类中心(如3000个)
Swapped Prediction损失
给定同一图像的两个增强视角 :
- 计算特征
- 使用Sinkhorn-Knopp算法计算聚类分配
- 交换预测:用 预测 ,用 预测
关键技术创新
- Multi-crop策略:2个标准裁剪 + 6个小裁剪,大幅增加正样本对
- 在线聚类:Sinkhorn-Knopp算法求解最优传输问题
性能表现
- ImageNet线性评估 Top-1: 75.3%
历史意义
SwAV证明了聚类方法在对比学习中的有效性,Multi-crop策略被后续工作广泛采用。
第二阶段小结
| 论文 | 年份 | 核心创新 | Batch Size | 性能 (Top-1) |
|---|---|---|---|---|
| MoCo v1 | 2020 | Momentum Queue | 256 | 68.6% |
| SimCLR v1 | 2020 | MLP Projector + 强增强 | 4096 | 76.5% |
| MoCo v2 | 2020 | 集成SimCLR tricks | 256 | 71.1% |
| SimCLR v2 | 2020 | 大模型 + 半监督 | 4096 | 79.8% |
| CPC v2 | 2020 | LayerNorm + 大模型 | - | 71.5% |
| SwAV | 2020 | 在线聚类 + Multi-crop | 4096 | 75.3% |
阶段特征:
- MoCo与SimCLR的竞争推动技术快速迭代
- 性能从60%提升到75%,逼近监督学习
- MLP Projector、强数据增强、Multi-crop成为标配
4. 第三阶段:不用负样本 (2020-2021)
这一阶段的研究挑战了"对比学习必须依赖负样本"的直觉,通过非对称结构避免模型坍塌。
4.1 BYOL (NeurIPS 2020)
论文:Bootstrap Your Own Latent - A New Approach to Self-Supervised Learning
核心思想
通过一个网络预测另一个网络的输出来学习,完全不需要负样本。
网络架构
Online Network(Encoder + Projector + Predictor)+ Target Network(动量更新)
损失函数
均方误差(MSE)损失:
为什么不坍塌?
- Predictor的非对称性:Online Network有Predictor,Target Network没有
- 动量更新:Target Network缓慢演进,提供稳定的目标
- Batch Normalization:隐式地引入了负样本信息(有争议)
性能表现
- ImageNet线性评估 Top-1: 74.3%
- 无需负样本,性能超过MoCo v2
历史意义
BYOL首次证明了无负样本对比学习的可行性,引发了对"为什么不坍塌"的广泛讨论。
4.2 SimSiam (CVPR 2021)
论文:Exploring Simple Siamese Representation Learning
核心思想
探究Siamese网络在没有负样本、没有动量编码器时为何不坍塌,发现Stop-gradient是核心。
网络架构
- 对称的Encoder
- Projection Head :3层MLP
- Prediction Head :2层MLP(仅一侧有)
损失函数
负余弦相似度:
对称化损失:
关键发现:Stop-gradient是核心
消融实验:
| 配置 | 是否坍塌 | 性能 |
|---|---|---|
| 有Stop-gradient | 否 | 71.3% |
| 无Stop-gradient | 是 | 0.1% |
| 有动量更新,无Stop-gradient | 是 | 0.1% |
结论:
- Stop-gradient是防止坍塌的充分必要条件
- 动量更新不是必须的(与BYOL不同)
- Predictor + Stop-gradient构成非对称性
理论解释
SimSiam可以看作EM算法的一种形式:
- E-step:固定一侧网络(Stop-gradient),优化另一侧
- M-step:交替优化
性能表现
- ImageNet线性评估 Top-1: 71.3%
- 架构最简单,但性能略低于BYOL
历史意义
SimSiam是对比学习的总结性工作,将所有方法归纳到统一框架中,揭示了防止坍塌的本质机制。
第三阶段小结
| 论文 | 负样本 | 动量更新 | Predictor | Stop-gradient | 性能 (Top-1) |
|---|---|---|---|---|---|
| BYOL | 否 | 是 | 是 | 隐式 | 74.3% |
| SimSiam | 否 | 否 | 是 | 显式 | 71.3% |
阶段特征:
- 突破了"对比学习必须有负样本"的直觉
- 揭示了非对称结构(Predictor + Stop-gradient)的重要性
- 为后续简化对比学习框架提供了思路
5. 第四阶段:Transformer时代 (2021)
随着Vision Transformer (ViT)在CV领域的普及,对比学习也开始向Transformer架构迁移。
5.1 MoCo v3 (ICCV 2021)
论文:An Empirical Study of Training Self-Supervised Vision Transformers
核心思想
研究自监督ViT训练的不稳定性问题,并提出解决方案。
问题根源
ViT训练不稳定(梯度突变),问题定位在Patch Embedding层。
解决方案:
Fixed Random Patch Projection(冻结第一层线性投影)
性能表现
- ImageNet线性评估 Top-1: 81%
历史意义
MoCo v3首次成功将对比学习应用于ViT,性能突破80%,为后续ViT自监督学习奠定了基础。
5.2 DINO (ICCV 2021)
论文:Emerging Properties in Self-Supervised Vision Transformers
核心思想
**自蒸馏(Self-Distillation)**框架,发现自监督ViT能自动学习到物体的语义分割边界。
网络架构
- Student Network:正常梯度更新
- Teacher Network:动量更新(EMA)
其中 从0.996线性增加到1
损失函数
交叉熵损失,匹配Student和Teacher的输出分布:
其中 是经过softmax的输出分布。
关键技术创新
- Centering:减去Teacher输出均值,防止维度坍塌
- Sharpening:Student低温度,Teacher高温度
- Multi-crop:2个全局视角 + 多个局部视角
性能表现
- ImageNet线性评估 Top-1: 80.1%
历史意义
DINO不仅在性能上达到SOTA,更重要的是发现了自监督ViT的涌现特性(Emerging Properties),为理解ViT提供了新视角。
第四阶段小结
| 论文 | 架构 | 核心创新 | 性能 (Top-1) |
|---|---|---|---|
| MoCo v3 | ViT | Fixed Patch Projection | 81.0% |
| DINO | ViT | Centering + 自蒸馏 | 80.1% |
阶段特征:
- 成功将对比学习迁移到ViT架构
- 性能突破80%,达到新高度
- 发现ViT的独特性质(自动语义分割)
6. 论文演进关系图
下图展示了CV对比学习四个阶段的技术演进脉络和论文之间的继承关系:
关键演进路径:
- InstDisc → MoCo系列:Memory Bank → Queue,引入动量更新
- InvaSpread → SimCLR系列:端到端训练 → 大Batch + 强增强
- MoCo/SimCLR → BYOL/SimSiam:依赖负样本 → 无需负样本
- CNN → ViT:MoCo v2 → MoCo v3,SwAV → DINO
7. 核心技术对比总结
7.1 完整对比表格
| 论文 | 年份 | 会议 | 负样本 | 核心组件 | 关键Trick | 性能 (Top-1) |
|---|---|---|---|---|---|---|
| InstDisc | 2018 | CVPR | 是 | Memory Bank | NCE Loss | 46.5% |
| InvaSpread | 2019 | CVPR | 是 | Siamese | 端到端 | 48.8% |
| CPC v1 | 2018 | - | 是 | 预测未来 | InfoNCE | 48.7% |
| CMC | 2019 | ECCV | 是 | 多视角 | 跨模态 | - |
| MoCo v1 | 2020 | CVPR | 是 | Momentum Queue | 动量更新 | 68.6% |
| SimCLR v1 | 2020 | ICML | 是 | MLP Projector | 强数据增强 | 76.5% |
| MoCo v2 | 2020 | - | 是 | Queue + MLP | 集成tricks | 71.1% |
| SimCLR v2 | 2020 | NeurIPS | 是 | 大模型 | 半监督 | 79.8% |
| CPC v2 | 2020 | ICLR | 是 | 大模型 | LayerNorm | 71.5% |
| SwAV | 2020 | NeurIPS | 否(聚类) | Prototypes | Multi-crop | 75.3% |
| BYOL | 2020 | NeurIPS | 否 | Predictor + EMA | 非对称 | 74.3% |
| SimSiam | 2021 | CVPR | 否 | Stop-gradient | 梯度截断 | 71.3% |
| MoCo v3 | 2021 | ICCV | 是 | ViT + Queue | Fixed Patch | 81.0% |
| DINO | 2021 | ICCV | 否 | ViT + 自蒸馏 | Centering | 80.1% |
7.2 技术组件对比
| 技术组件 | 首次提出 | 采用论文 | 作用 |
|---|---|---|---|
| Memory Bank | InstDisc | InstDisc | 存储负样本特征 |
| InfoNCE Loss | CPC v1 | MoCo, SimCLR等 | 标准对比损失 |
| Momentum Update | MoCo v1 | MoCo, BYOL, DINO | 稳定特征演进 |
| MLP Projector | SimCLR v1 | 几乎所有后续工作 | 分离对比空间与表征空间 |
| 强数据增强 | SimCLR v1 | 几乎所有后续工作 | 提升不变性 |
| Multi-crop | SwAV | SwAV, DINO | 增加正样本对 |
| Predictor | BYOL | BYOL, SimSiam | 打破对称性 |
| Stop-gradient | SimSiam | SimSiam | 防止坍塌 |
| Centering | DINO | DINO | 防止维度坍塌 |
8. 技术演进脉络深度分析
8.1 负样本策略的演进
阶段1:Memory Bank(InstDisc)
- 优点:负样本数量不受Batch Size限制
- 缺点:特征不一致(更新滞后)
阶段2:Queue + Momentum(MoCo)
- 优点:特征一致性好,负样本数量大
- 缺点:需要额外的动量编码器
阶段3:大Batch(SimCLR)
- 优点:端到端训练,特征完全一致
- 缺点:需要大量计算资源
阶段4:无需负样本(BYOL/SimSiam)
- 优点:简化训练,无需大Batch或Queue
- 缺点:需要精心设计防止坍塌
8.2 防止坍塌的机制
坍塌问题:所有样本映射到相同的特征,模型失去判别能力。
解决方案演进:
-
负样本推开(InstDisc, MoCo, SimCLR)
- 通过对比损失显式推开负样本
- 需要大量负样本
-
聚类约束(SwAV)
- 通过聚类分配约束特征分布
- 使用Sinkhorn-Knopp算法保证均匀分配
-
非对称架构(BYOL, SimSiam)
- Predictor打破对称性
- Stop-gradient阻止信息流
-
Centering(DINO)
- 减去输出均值,防止某一维度主导
- 结合Sharpening控制熵
8.3 数据增强的重要性
SimCLR的消融实验表明,数据增强对性能的影响巨大:
| 增强组合 | 性能 (Top-1) |
|---|---|
| 仅RandomCrop | 48.3% |
| + ColorJitter | 61.9% (+13.6%) |
| + GaussianBlur | 66.6% (+4.7%) |
关键发现:
- ColorJitter是最重要的增强(+13.6%)
- 不同增强的组合效果优于单一增强
- 增强强度需要精心调节
8.4 架构演进:CNN → ViT
CNN时代的挑战:
- 归纳偏置强(局部性、平移不变性)
- 难以捕捉全局依赖
ViT的优势:
- 自注意力机制捕捉全局信息
- 更灵活的表征能力
ViT的挑战:
- 训练不稳定(梯度突变)
- 需要更多数据
解决方案:
- MoCo v3:Fixed Patch Projection
- DINO:Centering + 自蒸馏
9. 总结与展望
9.1 发展规律总结
-
从复杂到简单
- 早期:Memory Bank、复杂的代理任务
- 后期:简单的Siamese架构 + Stop-gradient
-
从依赖负样本到无需负样本
- 早期:大量负样本是必须的
- 后期:通过非对称结构避免坍塌
-
从小模型到大模型
- 早期:ResNet-50
- 后期:ResNet-152 (3x)、ViT-L
-
从CNN到Transformer
- 2018-2020:CNN主导
- 2021-:ViT成为主流
9.2 核心经验总结
必备组件:
- MLP Projector:分离对比空间与表征空间
- 强数据增强:ColorJitter + GaussianBlur
- 防坍塌机制:负样本 / Predictor / Centering
有效Tricks:
- Multi-crop:增加正样本对,提升性能
- 动量更新:稳定特征演进
- 温度系数:控制分布的平滑度(通常0.07-0.1)
- 长训练:800-1000 epochs
10. 参考文献
[1] Wu, Z., Xiong, Y., Yu, S. X., & Lin, D. (2018). Unsupervised feature learning via non-parametric instance discrimination. In CVPR (pp. 3733-3742). https://arxiv.org/abs/1805.01978
[2] Ye, M., Zhang, X., Yuen, P. C., & Chang, S. F. (2019). Unsupervised embedding learning via invariant and spreading instance feature. In CVPR (pp. 6210-6219). https://arxiv.org/abs/1904.03436
[3] Oord, A. v. d., Li, Y., & Vinyals, O. (2018). Representation learning with contrastive predictive coding. arXiv preprint arXiv:1807.03748. https://arxiv.org/abs/1807.03748
[4] Tian, Y., Krishnan, D., & Isola, P. (2019). Contrastive multiview coding. In ECCV (pp. 776-794). https://arxiv.org/abs/1906.05849
[5] He, K., Fan, H., Wu, Y., Xie, S., & Girshick, R. (2020). Momentum contrast for unsupervised visual representation learning. In CVPR (pp. 9729-9738). https://arxiv.org/abs/1911.05722
[6] Chen, T., Kornblith, S., Norouzi, M., & Hinton, G. (2020). A simple framework for contrastive learning of visual representations. In ICML (pp. 1597-1607). https://arxiv.org/abs/2002.05709
[7] Chen, X., Fan, H., Girshick, R., & He, K. (2020). Improved baselines with momentum contrastive learning. arXiv preprint arXiv:2003.04297. https://arxiv.org/abs/2003.04297
[8] Chen, T., Kornblith, S., Swersky, K., Norouzi, M., & Hinton, G. (2020). Big self-supervised models are strong semi-supervised learners. In NeurIPS (pp. 22243-22255). https://arxiv.org/abs/2006.10029
[9] Hénaff, O. J., Srinivas, A., De Fauw, J., Razavi, A., Doersch, C., Eslami, S. M., & Oord, A. v. d. (2020). Data-efficient image recognition with contrastive predictive coding. In ICML (pp. 4182-4192). https://arxiv.org/abs/1905.09272
[10] Caron, M., Misra, I., Mairal, J., Goyal, P., Bojanowski, P., & Joulin, A. (2020). Unsupervised learning of visual features by contrasting cluster assignments. In NeurIPS (pp. 9912-9924). https://arxiv.org/abs/2006.09882
[11] Grill, J. B., Strub, F., Altché, F., Tallec, C., Richemond, P. H., Buchatskaya, E., ... & Valko, M. (2020). Bootstrap your own latent-a new approach to self-supervised learning. In NeurIPS (pp. 21271-21284). https://arxiv.org/abs/2006.07733
[12] Chen, X., & He, K. (2021). Exploring simple siamese representation learning. In CVPR (pp. 15750-15758). https://arxiv.org/abs/2011.10566
[13] Chen, X., Xie, S., & He, K. (2021). An empirical study of training self-supervised vision transformers. In ICCV (pp. 9640-9649). https://arxiv.org/abs/2104.02057
[14] Caron, M., Touvron, H., Misra, I., Jégou, H., Mairal, J., Bojanowski, P., & Joulin, A. (2021). Emerging properties in self-supervised vision transformers. In ICCV (pp. 9650-9660). https://arxiv.org/abs/2104.14294