SimCLR: A Simple Framework for Contrastive Learning of Visual Representations
Chen et al. (Google)
用最简单的两段式增广 + InfoNCE 把 contrastive SSL 推上 ImageNet linear probe 76.5% —— 证明数据增广 + 大 batch 就够。
arXiv:2002.05709#ssl#contrastive#vision#foundational
核心贡献
- 01两次随机增广得到正样本对,同 batch 其他样本作为负样本
- 02Projection head(2 层 MLP)显著提升下游性能,论文做完了下游迁移就丢掉
- 03Batch size 越大效果越好(4096→8192 收益还在)
- 04InfoNCE 损失 + 温度参数 τ ≈ 0.1 是黄金参数
SimCLR 的最大贡献是做减法:把 contrastive SSL 的复杂度降到最低。流程:图片 x → 两次随机增广 → 两个 view → encoder + projection head → InfoNCE。同一图片的两个 view 互为正样本,其他图片的 view 都是负样本。Crop + Color jitter 这两个增广就是性能命根;少了任一个性能掉一半。
为什么需要 projection head? 表征空间需要保留下游任务有用的信息,contrastive loss 直接作用在 representation 上会过度压缩;用 head 做"过渡",head 后的空间专门服务 contrastive,head 前留给下游。为什么大 batch 重要? 负样本数 = batch_size - 1,多负样本让对比更难、信号更强。这也是 MoCo 用 queue 想绕开的痛点。SimCLR vs MoCo? SimCLR 靠大 batch,MoCo 靠 momentum encoder + queue,CLIP 把 negatives 换成跨模态。