SimCLR对比学习框架详解
解释SimCLR(Simple Framework for Contrastive Learning of Visual Representations)的核心设计。
回答
专业代码师
SimCLR (Chen et al., 2020) 是Google提出的自监督对比学习方法,无需标签学习视觉表征。
核心流程:
- 对每个图像x应用两种随机数据增强(裁剪、翻转、颜色抖动等),得到两个视图
x_i, x_j - 用共享权重的编码器(ResNet)提取特征
h_i, h_j - 用投影头(MLP)映射到对比空间
z_i, z_j - 计算NT-Xent损失(Normalized Temperature-Scaled Cross Entropy),拉近正对(同一图像的两种视图)、推远负对(不同图像的视图)
关键设计发现:
- 数据增强组合至关重要:随机裁剪+颜色抖动是最佳组合
- 投影头(Projector)显著提升效果(对比空间vs特征空间)
- 大batch size(4096)提供足够负样本;或使用内存队列
- 温度τ控制聚焦程度:小τ更关注难样本
对比MoCo:SimCLR需要大batch;MoCo使用动量编码器+队列解耦了batch size限制。后续SimCLRv2加入了蒸馏微调策略。