3.6 迁移学习与自监督预训练
3.4–3.5 节讲的都是「怎么造一个骨干」。但绝大多数真实项目的正确做法不是造骨干,而是拿一个别人已经训好的骨干,改造成自己的模型。这一节讲两件事:怎么正确地迁移(工程手法),以及在没有标签的情况下怎么得到一个好骨干(自监督)。
这两件事在近五年里发生了地位互换:2015 年前后,「预训练」几乎等同于「在 ImageNet 上用 1000 类标签监督训练」;2020 年之后,自监督预训练(对比学习、掩码建模)成为主流,因为它不需要标签、表示的通用性更好。理解这条转变的动机,比记住一堆缩写更重要。
3.6.1 迁移学习:为什么几乎总是从预训练开始
把在源任务(source task,如 ImageNet 1000 类分类)上预训练好的网络参数,迁移到目标任务(target task)上作为初始化,再在目标任务数据上继续训练。两种基本策略:
- 特征提取 / 冻结(feature extraction / freeze):把预训练网络当作固定的特征提取器,冻结其权重(不让梯度更新),只训练新加的任务头。适合目标数据少、且与源任务相近。
- 微调(fine-tuning):解冻部分或全部层,用较小的学习率继续训练,让特征适配新任务。适合目标数据较多或与源任务差异较大。
3.4.1 提到骨干学到了层次化特征:浅层是边缘、颜色、纹理,中层是部件,深层是类别语义。层次越浅,越通用——「边缘检测」这件事对 X 光片和街景照片是一样的需求。
于是迁移的有效性可以这样理解:目标任务的输入端往往与源任务共享低层结构,因此从预训练权重出发,等于把「如何看图像」这一部分免费拿到,只需要重学「如何把这些特征映射到我的标签」。这就是为什么源任务与目标任务的相似度越高、迁移收益越大——共享的前缀越长。
反过来,如果目标任务的输入分布与源任务完全不同(例如把自然图像骨干直接搬到频谱图或点云上),浅层特征也不再通用,迁移收益就会大幅下降,甚至不如从零训练。这是条件性结论,不是普适定律。
1. 选骨干:在足够大的数据上预训练的模型(ImageNet 监督、CLIP、DINOv2、MAE 等)
- 先确认它的输入预处理(分辨率、归一化统计、通道顺序)与你的数据一致
- 用与骨干匹配的预处理([3.3.5](sec33.md#sec-3.3.5)),否则初始 loss 会异常高
2. 换头:把原分类头替换为适配自己类别数的新头(随机初始化)
- 分类:Linear(d_model, n_classes)
- 检测 / 分割:换成对应的检测头 / 解码器,骨干保持不变
3. 两阶段训练(推荐)
阶段 A(warmup):冻结骨干,只训新头
- 学习率可以大(1e-3 量级),因为只有几万个参数要学
- 训练 1-3 个 epoch,直到训练 loss 明显下降
- 目的:让随机初始化的头先"学会读特征",避免它用大梯度把骨干打乱
阶段 B(微调):解冻骨干(全部或后段),用更小的学习率联合训练
- 骨干学习率约为头的 1/10(或更小)
- 典型:头 1e-3、骨干 1e-4;大数据时可整体 1e-4 ~ 3e-5
- 用余弦退火 + warmup;配合早停(验证集)
4. 常规防护:数据增强、标签平滑、EMA、混合精度(注意 loss scaling)、固定随机种子
5. 判断是否该继续:验证指标连续 N 轮不升 → 早停;训练 loss 远低于验证 → 过拟合,转回更冻结的方案或加正则
四条判据(数据量 × 相似度):
| 与源任务相似 | 与源任务差异大 | |
|---|---|---|
| 目标数据少 | 只训头(冻结骨干) | 只微调后段;强增强;考虑自监督预训练骨干 |
| 目标数据多 | 微调全网络(小学习率) | 微调全网络或从零训练;考虑领域自监督预训练 |
某任务用 ResNet-50 骨干( 参数),目标任务有 张图、 类。分别计算「只训头」与「全网络微调」两种方案下的可训练参数量、每 epoch 的梯度显存量级差异(用参数量粗略估计),并说明哪个方案更可能过拟合。
可训练参数量
- 只训头:新头为
Linear(2048, 20),参数量 (约 )。 - 全网络微调:。
比值:约 倍。
显存中的梯度量级(以 fp32 计,梯度张量本身约 字节 / 参数)
- 只训头: MB
- 全网络: MB
若使用 Adam 类优化器,还要为每个可训练参数保存一阶、二阶动量(各 4 字节,fp32 下共 字节 / 参数),于是:
- 只训头:约 MB
- 全网络:约 MB
过拟合风险判断:目标数据只有 张、 类(平均每类 张),却要更新 个参数——每个参数平均只有 个样本支撑。这个比例下全网络微调通常需要很强的正则(小学习率 + 早停 + 强增强 + 权重衰减)才不崩;而「只训头」把可训练参数压到 ,过拟合风险低得多。
结论(工程默认):小数据先只训头,观察验证集表现;只有在「训练 loss 与验证 loss 都还在下降、且验证明显欠拟合」时才逐步解冻后段。不要一上来就全网络微调——这是小数据项目最常见的翻车方式。
∎3.6.2 学习率分层与领域偏移 {#sec-3.6.2}
微调时对不同深度的层使用不同学习率,越浅的层学习率越小(因为它们承载的是更通用的特征,不需要大幅改动):
其中 是层数(或阶段数), 越小表示越浅。以 、四个阶段为例:
| 阶段 4(最深) | 阶段 3 | 阶段 2 | 阶段 1(最浅) | |
|---|---|---|---|---|
实践建议: 取 – 比 更常见; 会让最浅层几乎不动,只有在你确信浅层特征完全通用时才用。Transformer 骨干(ViT 系)微调时分层衰减尤其常见,因为它的浅层与深层功能分化更明显。
浅层学的是通用特征(边缘、纹理),这些特征在目标任务里同样有用,因此不希望它们被目标任务的小数据带偏——小学习率相当于「轻推,不改架构」。深层学的是与源任务标签强相关的语义,需要更大程度的重塑。任务头是随机初始化的,必须用最大学习率。
这条规则还有一个更朴素的检查法:如果你把骨干学习率设得和头一样大,会发生什么? 骨干会在前几十步被大梯度"打乱"(随机初始化的头产生的梯度包含大量噪声方向),浅层通用特征被破坏,之后需要很长时间才能恢复——表现为训练初期 loss 抖动剧烈、需要更长的 warmup。先冻结、只训头,正是这个问题的极端解法。
- 领域偏移:输入分布 变化而任务的输入输出关系 大致不变。例:白天街景 → 夜间街景;自然图像 → 内窥镜图像。
- 任务偏移 / 标签偏移:输出分布或语义定义变化。例:源任务是"1000 类物体",目标任务是"病灶良恶性"——标签体系完全不同。
领域偏移的诊断信号:模型的浅层特征统计出现明显漂移;在无标签目标域上,BN 的运行统计量(3.3.3)与源域不匹配。任务偏移的诊断信号:只有最后几层的输出分布与源域差异大,浅层仍然相似。
3.3.3 讲过:BatchNorm 在推理时用的是训练期间累积的运行统计量。当领域偏移发生时(例如训练集是晴天、部署时是雨天),输入的均值与方差变了,而推理阶段的 BN 仍在用晴天统计量做归一化——于是每一层都被施加了一个系统性偏移,误差逐层累积。
三种缓解手段(按代价从低到高):
- 重估 BN 统计量(BN re-estimation):冻结所有参数,只用目标域的无标签数据跑前向、重新累积 running statistics。这是最便宜的领域适配手段——通常几十到几百个 batch 就够,且不需要任何标签。
- 测试时自适应(test-time adaptation):在推理时根据当前样本动态调整归一化统计(如只更新 BN 参数或统计量)。
- 领域自监督预训练:在目标域的无标签数据上做自监督预训练(3.6.3),让骨干从一开始就见过目标域分布。代价最高,但收益也最大。
- 「预训练权重是万能的,随便换数据就行」:必须对齐预处理(分辨率、归一化统计、通道顺序)。用错统计量会导致初始 loss 异常高、收敛变慢,是「微调不收敛」的高频原因(3.3.5)。
- 「全网络微调一定比只训头好」:小数据下相反(例 3.6.1)。正确顺序是「冻结 → 观察 → 逐步解冻」。
- 「骨干学习率应该和头一样」:会导致骨干被随机头的噪声梯度破坏;应小 倍左右(或使用分层衰减)。
- 「迁移学习一定能提升」:源域与目标域差异很大(如把自然图像骨干直接用到点云 / 频谱图)时收益可能为负。要给出条件的判断,而不是默认结论。
- 「冻结骨干就不用管了」:冻结时若骨干带 BN,它的运行统计量在微调阶段仍会随前向数据更新(
train()模式下),这会影响结果。冻结骨干的正确做法通常是把 BN 也切到eval(),或使用 GroupNorm 骨干。
3.6.3 对比学习:InfoNCE 与它的推导 {#sec-3.6.3}
有标签的预训练需要 ImageNet 量级的标注。自监督的核心想法是:让「同一张图的不同视图」在表示空间里靠近,让「不同图」的表示远离——监督信号来自数据自身的结构,不需要人工标签。
给定一批 个样本,每个样本生成两个增强视图,得到 个表示 。对每个锚点 ,记其正样本(同一图的另一视图)为 ,其余 个为负样本。相似度用余弦相似度
其中 是温度(temperature)。InfoNCE 损失( 个锚点求平均)为
把每个视图的表示当作一个"类别",那么「找出 的正样本」就是一个 类的分类任务( 个负样本 + 1 个正样本)。于是 (3.11) 与交叉熵完全同形——这解释了它为什么有效:它把表示学习变成了「在表示空间里做最近邻分类」。
三个直接推论:
- 负样本越多,任务越难,表示越好。分母求和里的负样本数决定了"班级规模"。这正是 SimCLR 需要大 batch(每张图有 个负样本)、MoCo 需要大队列的原因。
- 温度控制分布的"锐度"。 越小, 被放大得越厉害,softmax 越接近 argmax,模型被逼着把正负样本分得很开; 太大则所有 logits 都接近,梯度太弱,学不到判别性。
- 负样本的多样性决定学到的表示。如果负样本与锚点本身很相似(如同图的另一视图被误当负样本),会引入错误的排斥信号——这是数据增强与匹配逻辑必须小心的原因。
记 (负样本上的 softmax 分布),。对锚点 的损失 求关于 的偏导。
第一步:一般情形。设 、,则 ,于是
对 :。
第二步:代入损失。,故
第三步:换回 ,得
读法: 是梯度下降的方向,它把 往正样本拉、从负样本推开,权重分别是 与 。所以:
- 越"难"的负样本( 大,即当前被判得越像正样本)被推得越用力——难负样本主导学习;
- 若正样本已经被分对(),它的吸引权重 ,该项不再贡献梯度;
- 温度 在分母上: 越小,梯度整体越大(需要更小的学习率配合)。
这也解释了 (3.11) 与「在表示空间做最近邻分类」是同一件事——梯度就是分类器在调整决策边界时的力。
∎| 方法 | 负样本来源 | 关键机制 | 是否需大 batch |
|---|---|---|---|
| SimCLR(2020,arXiv:2002.05709) | 当前 batch 内( 个) | 强增强组合(裁剪 + 颜色抖动 + 模糊…)+ 投影头(MLP),损失在投影后的空间算 | 是(论文主结果用大批量;具体数值需核实) |
| MoCo(2019/2020,arXiv:1911.05722) | 队列(queue,跨 batch 累积动量编码器产生的表示) | 动量编码器(key encoder 的参数是 query encoder 的滑动平均)保证队列中特征一致 | 否(队列与 batch 解耦) |
| CLIP(2021,arXiv:2103.00020) | 同一 batch 内的其他图文对 | 双塔(图像编码器 + 文本编码器),对称 InfoNCE:图像→文本与文本→图像两个方向的对比 | 是(4 亿图文对训练) |
投影头的作用(SimCLR 的一个反直觉发现):在表示后接一个小型 MLP(如 ),损失在投影空间计算,下游任务使用投影之前的表示。原文报告这能显著提升下游线性评估精度——一种解释是投影头承担了「丢弃与增强无关信息」的任务,从而让主干表示保留更多通用信息。
(a)SimCLR 风格:batch 大小 ,每张图两个视图。求每个锚点的负样本数与正样本数。(b)MoCo 风格:队列长度 (需核实具体数值)。对比两者的负样本规模。(c)计算余弦相似度 在不同温度下的 logit 值,说明温度的影响。
(a) 每批共 个视图。对某个锚点 :正样本 个(同图的另一视图),负样本 个。注意: 而不是 ——因为同图的另一视图既是别人的锚点也可能是自己的正样本,计数时要去掉自身与正样本。
(b) MoCo 的队列提供 个负样本(跨多个 batch 累积),与当前 batch 大小解耦。所以 MoCo 在小 batch 下也能有与 SimCLR 大批量相近的负样本规模——这是它设计上的核心动机。(队列长度与动量系数取值的具体数字以原论文为准。)
(c) :
| 0.5 | 0.2 | 0.1 | 0.07 | 0.05 | |
|---|---|---|---|---|---|
| 时的 logit | 0.60 | 1.50 | 3.00 | 4.29 | 6.00 |
读法: 从 降到 ,同一个相似度对应的 logit 放大了 倍。softmax 对 logit 尺度极度敏感: 时分布近乎均匀(梯度弱、学不到东西), 时分布接近 one-hot(梯度强但对噪声敏感、可能不稳定)。所以 必须与学习率、batch 大小一起调,不能单独看。
∎3.6.4 不用负样本:BYOL 与 DINO
对比学习有一个内在张力:性能依赖大量负样本,而负样本要么需要大 batch(显存爆炸),要么需要队列(实现复杂、特征一致性难保证)。于是出现了一条「不要负样本」的路线。
同时维护两个网络:在线网络(online,,带预测器)与目标网络(target,,不接收梯度)。损失要求在线网络对同一图的一个视图的预测,去拟合目标网络对另一个视图的表示:
其中 是预测器(predictor,额外的一层 MLP), 表示停止梯度(stop-gradient),目标网络的参数按在线参数的滑动平均更新(BYOL):
直觉上的担忧:如果只有「拉近」这一条力,网络可以把所有表示都映射到同一个常数向量——这样损失直接为 0,表示完全无用。这个现象叫表示崩塌(collapse)。
BYOL 靠什么避免崩塌(原文给出的机制,属于正文的假说而不是摘要级结论,引用时须明确):
- 预测器 :在线分支多一层 MLP。两个分支的函数形式不对称,因此"输出恒等式"不是最优点。
- 停止梯度 + 动量目标网络:目标分支不接收梯度、且更新缓慢,它扮演了「稳定的移动靶」,使在线网络无法通过同时修改两侧来作弊。
- BatchNorm 的存在:有研究指出 BN 对防止崩塌有实质贡献(它的批统计阻止了所有样本收敛到同一常数)。
后续的理论工作给出了不同的解释(例如把这类方法理解为「隐式地做了特征去相关」或「等价于谱方法」),说明「为什么不用负样本也能work」并没有一个被普遍接受的单一解释。这是本教程必须明确区分的一类情况:观测到的现象(能稳定训练且效果好)与机制解释(为什么)之间存在差距。
实践上的结论:BYOL / SimSiam 一类方法可以省掉负样本与大 batch,对显存友好;但它们对预测器结构、增强强度、权重衰减更敏感,调参空间小、复现难度更高。工程选型时,团队熟悉的路线往往比"理论上更优雅"的路线更可靠。
DINO(2021,arXiv:2104.14294)把自蒸馏从「回归 MSE」换成「分类式交叉熵」,并显式加了两把"防崩塌"手段:
结构:student 与 teacher 共享架构(ViT / ResNet),teacher = student 的动量平均
输入:多裁剪(multi-crop)——2 个全局视图 + 若干局部小视图
student 吃全部视图,teacher 只吃全局视图("局部预测全局")
损失:H(teacher(global), student(crop)),对每个 (student, teacher) 视图对求交叉熵
防崩塌的两个手段:
1. centering(居中):teacher 输出的每个维度减去一个滑动平均的均值
→ 抑制某个维度长期占优
2. sharpening(锐化):teacher 输出除以一个较小的温度(softmax 温度低)
→ 避免所有维度趋于均匀(那也是一种退化)
center 与 sharpen 必须同时使用:只用 centering 会导致输出均匀化(崩塌),
只用 sharpening 会导致某几维主导(另一种崩塌)。
结果(摘要口径):DINO 表示在 k-NN 分类上达 78.3%、线性评估达 80.1%;注意力图自带显式的语义分割信息(这一现象在摘要中被明确报告)。这是「自监督学到的东西不只是分类特征,还包含对目标边界的理解」的一个著名证据。
设在线网络参数 、目标网络 。如果直接用同一组参数(,即没有动量、没有 stop-gradient),损失为 。说明这个损失为什么存在平凡的崩塌解,以及动量 + stop-gradient 如何消除它。
平凡解的存在性:令 输出恒为常数向量 (即对所有输入 都有 ),并令预测器 。则
这是全局最小值,而且与输入无关——网络只要学会"什么都输出同一个东西"就完成任务,表示完全无用。这就是崩塌。
动量 + stop-gradient 为什么消除它:
- stop-gradient 让 在反传中是一个常数(不接收 的梯度)。于是优化目标变成「让 去匹配一个当前被冻结的目标值」——网络不能通过同时改变两侧来作弊达到 0 损失。
- 动量更新(, 接近 1)让目标网络变化很慢:它提供的是「历史上的一致表示」这一稳定信号。在线网络必须持续产出与这个慢变目标一致的表示,而崩塌解需要两侧同时塌陷才成立,慢变目标使这一同步过程无法完成——目标网络总是"落后"于崩塌的尝试。
- 不对称结构(预测器): 只存在于在线分支,因此两侧不是同一函数,"输出恒等式 + 同一函数"这条最省力的路径被切断。
但要如实说明:以上是机制解释的要点,不同论文对哪一项起决定作用存在分歧(有的工作认为 BN 是关键,有的强调预测器)。结论层面可确定的是:这套组合在实践中能稳定训练,且下游性能良好;机制层面尚未有被普遍接受的单一解释。
∎3.6.5 小数据场景的实操清单
第 0 步:先做基线,不要上复杂度
- 用最简单的方案(预训练骨干 + 冻结 + 线性头)跑出一个验证指标
- 记录这个数字,之后所有改动都与它比较(没有基线就没有"提升")
第 1 步:数据层面(收益最大、成本最低)
- 检查标签质量:小数据下标签噪声的伤害远大于数据量不足
- 合理增强:随机裁剪 + 水平翻转 + 颜色抖动 + RandAugment(注意:翻转可能不适用于垂直语义的任务,
如"上下"有意义的医学影像或字符识别)
- 分层划分训练/验证:确保每个类别在各划分中比例一致,避免验证集分布偏移
- 若数据极少:考虑 k 折交叉验证,而不是单一划分(避免"验证集选型"带来的乐观偏差)
第 2 步:预训练权重(第二大的收益来源)
- 优先顺序:与目标域接近的自监督骨干(DINOv2 / MAE 系)> CLIP 系(若涉及图文)> ImageNet 监督骨干
- 对齐预处理(分辨率、归一化统计、通道顺序)
- 记录骨干的来源与版本(可复现性)
第 3 步:训练策略
- 先冻结骨干只训头 → 观察验证集 → 再考虑解冻后段
- 学习率:头 1e-3、骨干 1e-4 起步;配合余弦退火 + warmup
- 早停:以验证指标为准;保存最优权重而非最后一轮
- 小数据下优先用 BatchNorm-free 骨干或调小 batch 时改 GroupNorm([3.3.3](sec33.md#sec-3.3.3))
- 类别不平衡:用加权采样或 focal loss,不要用"准确率"当唯一指标
第 4 步:只在必要时才加复杂度
- 加模块 / 改结构 / 自监督预训练 —— 每一项都需要用第 0 步的基线来证明收益
- 每次只改一个变量(否则无法定位是哪个改动在起作用)
第 5 步:诚实评估
- 分群指标([3.9 节](sec39.md)):检查不同子群体的表现差异,而不是只看总体平均
- 报告多次运行的均值与方差(小数据下随机性极大)
- 明确"没做什么"(未调参、未做数据清洗等),避免过度声称
- 「自监督一定优于监督预训练」:条件性结论。自监督的优势在标签稀缺与跨域通用性;在有充足同域标签时,监督预训练仍然很有竞争力。此外自监督骨干的下游性能对微调配方更敏感(因为它的表示没有对齐任何标签体系)。
- 「对比学习必须用大 batch」:SimCLR 需要,MoCo 用队列解耦了 batch 与负样本规模,BYOL / SimSiam 甚至不需要负样本。所以「大 batch 是硬约束」不成立——但大 batch + 强增强 + 长训练确实是 SimCLR 路线的主结果配置。
- 「BYOL 能 work 是因为某个 X」:要区分现象与机制。论文报告了结果并给出机制假说,但「为什么不用负样本也不崩塌」在文献中存在多种解释且尚无共识。引用时不要把它写成已确立的定理。
- 「投影头没用,直接在主表示上算损失就行」:SimCLR 明确报告投影头对下游线性评估有显著影响,且下游应使用投影前的表示。照搬实现时这一点常被漏掉。
- 「自监督预训练可以不做增强」:增强是自监督信号的唯一来源——没有「什么是同一张图的合理变换」这一假设,就没有正样本对。增强策略决定了模型学到什么不变性(例如不做颜色抖动,模型可能把颜色当作主要判别依据)。
- 「迁移学习不收敛就是数据问题」:先检查三件事——预处理是否与骨干匹配、学习率是否过大(骨干被破坏)、warmup 是否足够。这三条覆盖了大多数"微调不收敛"的情形。
Q1 用小数据做图像分类,为什么「先冻结骨干只训头」比「一上来全网络微调」更稳?给出参数量的量级对比思路。
Q2 写出 InfoNCE 损失,并说明它在形式上等价于什么任务。 的作用是什么?
Q3 SimCLR 与 MoCo 在「负样本来源」上的区别是什么?MoCo 为什么要用动量编码器?
Q4 BYOL 不用负样本,为什么不会立刻崩塌?请分别说出「可观测的现象」与「存在争议的机制解释」。
Q5 目标域数据分布与源域差异大(如自然图像 → 医学影像),除了微调还有哪些低成本手段?
参考要点
Q1 因为随机初始化的头会产生大而嘈杂的梯度,直接全网络微调会破坏骨干中已经学好的通用浅层特征。只训头把可训练参数压到 量级(vs 骨干的 量级,相差约 倍),梯度只作用在小头上,骨干特征保持完整;等头学会读特征后,再用小学习率逐步解冻。这也是「两阶段训练」的标准做法。
Q2 ,其中 。它与 softmax 交叉熵同形:把「找出 的正样本」看作一个 类分类问题。 控制 softmax 分布的锐度: 小 → 分布尖锐、逼模型强分离、梯度大; 大 → 分布平坦、梯度弱、判别性差。
Q3 SimCLR 的负样本来自当前 batch( 个),因此负样本数量与 batch 大小绑定,需要大显存;MoCo 用队列跨 batch 累积负样本,与 batch 解耦。MoCo 用动量编码器的原因是:如果队列里的表示由快速变化的编码器产生,那么队列内新旧特征来自不同的映射,与当前特征比较时不可比(特征分布漂移)——动量更新让 key encoder 缓慢演化,保证队列内特征的一致性。
Q4 现象:只用「拉近」的损失存在平凡崩塌解(输出常数向量使损失为 0);BYOL / SimSiam / DINO 一类结构在实践中能稳定训练并取得良好下游性能。机制解释:候选包括预测器带来的不对称、stop-gradient 切断作弊路径、动量目标网络的慢变稳定信号、BatchNorm 的批统计约束;文献对哪一项起决定作用存在分歧,尚无共识,引用时不能写成已确立的定理。
Q5 ① 重估 BN / LN 的运行统计量:冻结全部参数,只用目标域无标签数据前向,重新累积统计量——最便宜且常用;② 测试时自适应:推理时动态调整归一化;③ 目标域自监督预训练(MAE / 对比学习)后再微调;④ 领域随机化增强(模拟目标域的成像特性,如噪声、模糊、对比度变化)。这四条都不需要目标域标签。
- SimCLR:Chen et al., A Simple Framework for Contrastive Learning of Visual Representations(2020,arXiv:2002.05709)。
- MoCo:He et al., Momentum Contrast for Unsupervised Visual Representation Learning(2019,arXiv:1911.05722)。
- InfoNCE 出处:van den Oord, Li & Vinyals, Representation Learning with Contrastive Predictive Coding(2018,arXiv:1807.03748)。
- BYOL:Grill et al., Bootstrap Your Own Latent: A New Approach to Self-Supervised Learning(2020,arXiv:2006.07733);SimSiam:Chen & He, Exploring Simple Siamese Representation Learning(2020,arXiv:2011.10566);对「不崩塌」的分析可继续读 Understanding Dimensional Collapse in Contrastive Self-supervised Learning(2021,arXiv:2110.09348)。
- DINO:Caron et al., Emerging Properties in Self-Supervised Vision Transformers(2021,arXiv:2104.14294)。
- CLIP:Radford et al., Learning Transferable Visual Models From Natural Language Supervision(2021,arXiv:2103.00020)。
- 视觉自监督综述与基准:DINOv2: Learning Robust Visual Features without Supervision(2023,arXiv:2304.07193)——含无需微调的密集预测基准。
本节小结:迁移学习是工程默认起点——先冻结、再逐步解冻,骨干学习率比头小一个量级,预处理必须与骨干匹配;领域偏移下最便宜的手段是重估归一化统计量。自监督预训练把「监督信号」从标签换成数据自身的结构:InfoNCE(推导见 3.6.3)等价于在表示空间做 类分类,负样本规模与温度是它的两个关键旋钮;MoCo 用队列解耦 batch、BYOL / DINO 用预测器与动量目标去掉负样本(机制解释尚有争议);MAE 一类掩码建模则从「重建」路线进入自监督。下一节把骨干接到具体的视觉任务上:检测、分割,以及把分割变成「提示式」交互的视觉基础模型。