计算机视觉-14:自监督学习
人工标签只告诉模型少量任务相关结论,例如“这张图是狗”,而图像本身还包含姿态、部件、材质和空间关系等丰富结构。无标签数据数量更大,自监督学习便从数据中隐藏、变换或配对一部分信息,让另一部分去预测它;目标值由数据自动产生,优化仍可使用分类或回归。只要完成这种任务必须辨认稳定的视觉结构,编码器学到的表示就能迁移到分类、检测和分割,而不必为每个任务从像素开始学习。
预训练时输入 经编码器得到 ,预测头用 完成自动构造的任务;迁移时通常丢弃预测头,只保留编码器。冻结编码器并训练线性分类器,能检验语义是否已经以近似线性可分的形式写入 ;全量微调则检验它能否作为良好初始化适应新目标。预训练任务本身的高准确率未必代表好表征,因为模型可能找到仅对代理任务有效的捷径,最终仍需看线性评估、跨数据集泛化和下游微调效果。
预文本任务
早期方法通过人工设计的预文本任务规定模型应从图像中发现什么。旋转预测将同一张图旋转 、、 或 ,训练四分类;判断朝向通常需要识别物体、重力方向和场景布局,所以分类梯度会推动编码器学习这些结构。它也可能依赖插值边缘或数据集固定朝向等捷径,因此代理任务需要既足够困难,又不能靠与语义无关的伪影解决。
图像的空间布局也能构造监督信号。相对位置预测要求判断两个图块的方位,拼图任务则恢复被打乱的排列;单看局部纹理往往有多个可能位置,模型需要发现眼睛与鼻子、天空与地面等部件和上下文关系。为了防止网络利用图块边缘的色差或裁剪痕迹,数据处理还要刻意去除这些捷径。此类方法能迁移,却把“应学习的不变性”写死在特定任务中,善于复原拼图不保证保留颜色或细粒度类别所需的信息。
图像修补遮住一块输入,让编码器和解码器根据周围内容补全。模型只有识别场景与物体形状,才可能判断空白处应出现什么。像素重建误差把每个位置拉向唯一真值;当缺失区域存在多种合理答案时,逐像素平均会产生模糊结果。Context Encoder 加入对抗损失,让判别器评价补全是否像真实图像,从而偏向清晰、自然的解,但这项分布级约束不保证逐像素忠实,也带来对抗训练不稳定。
着色任务把颜色作为隐藏信息。例如可以由亮度预测色度,或让两个分支分别由亮度预测颜色、由颜色预测亮度,即 Split-Brain Autoencoder 的跨通道预测。视频着色进一步利用时间一致性:给定一帧有颜色的参考帧和后续灰度帧,模型在学习到的特征空间中建立参考位置与目标位置的对应关系,再以注意力加权复制参考颜色。若某一区域在后续帧中保持同色,模型必须追踪对应物体或区域;因此这一任务中可以自然出现用于传播分割掩码和姿态关键点的注意力。
MAE将重建思想扩展到 Vision Transformer。图像被划分为 patch 后随机遮挡约 ,重型编码器只接收可见的 ;轻量解码器再把编码结果与遮挡位置的共享 mask token 合并,补上位置编码并重建像素。若编码器也处理大量 mask token,大部分计算会花在没有图像内容的位置,非对称结构则把算力留给真正可见的证据。
其中 是被遮挡位置,只在这些位置计算损失可防止大量可见 patch 的简单复制主导梯度。自然图像局部冗余很强,遮得太少只需延续纹理,高遮挡率迫使编码器利用对象形状与全局布局;同时 Transformer 的主要开销随 token 数快速增长,只编码四分之一 patch 允许使用更大模型。解码器承担像素细节恢复,预训练后丢弃,下游只保留更偏语义的编码器。MAE 不需要负样本或复杂增强,但像素重建也可能重视下游不需要的低层细节,其优势通常在充分微调时更明显。

对比学习
预文本任务需要逐项猜测哪种代理目标能产生通用语义。对比学习改为直接规定表示空间的相对关系:同一图像经过两次不破坏语义的增强后应接近,不同实例应能区分。仅把正样本拉近会让所有输入映射到同一个向量也取得零距离,负样本提供“不能全部相同”的排斥约束。令 为锚点、 为正样本、 为负样本,一个正样本和 个负样本的 InfoNCE 损失为:
分子提高正对相似度,分母让它与所有候选竞争,因此每个锚点都在做一次“从 个候选中找出同源视图”的交叉熵分类。温度 将相似度除后再指数化:较小温度会放大相似度差异,把梯度集中在最难区分的候选上,过小则容易造成不稳定。InfoNCE 还可写成两个视图表示互信息的下界,在相应采样假设下更多负样本能收紧该界;实践中更直接的作用是提供更丰富的竞争对象。相似度通常取余弦相似度:
SimCLR对每张图随机增强两次形成正对,其余图像视图作为负样本。随机裁剪告诉模型物体局部与整体应一致,颜色扰动防止它只靠颜色直方图区分实例,模糊抑制像素级高频捷径;这些增强实际定义了哪些变化应被表示忽略。编码器 输出 ,投影头 再得到用于 InfoNCE 的 。对比目标需要主动丢弃增强差异,下游任务却可能仍需颜色或位置;把强不变性主要施加在 空间,可让下游使用的 保留更丰富信息,预训练后因此丢弃 。一个批量的 张原图产生 个视图,每个视图轮流找自己的配对;方法简单,但候选字典受当前批量限制,大批量带来更多负样本和更稳定的比较,也显著增加显存。
实例身份并不等同于语义类别,把同类的两只狗视作负样本会产生 false negative,迫使表示保留区分实例的细枝末节并推远本应接近的语义。增强过弱时网络又可通过像素级捷径认出同一图片,增强过强则会删除下游需要的颜色、姿态或局部结构。对比学习的效果因此很大程度取决于正负样本究竟编码了何种不变性。

MoCo把负样本字典做成跨批次的先进先出队列,从而解耦字典大小与当前批量。查询 经可学习编码器产生,键 写入队列;如果键编码器也被每一步梯度剧烈更新,历史键和当前键将来自不同表示空间,比较失去一致尺度。于是键分支停止梯度,并由查询编码器的指数滑动平均更新:
接近 1 时键空间缓慢移动,队列中的旧表示仍可与新表示比较;太接近 1 又会让教师落后于查询网络。队列用较小批量保存大量负样本,代价是这些键具有一定陈旧性。MoCo v2 再加入 SimCLR 的非线性投影头和强增强,把稳定字典与更合适的不变性结合。

CPC把对比关系延伸到序列。先将序列样本编码为 ,再用自回归模型 将历史上下文汇总为 ;课件中的原始实现使用 GRU-RNN。模型需要在候选未来表示中找出正确的 ,并用随时间步变化的双线性评分:
对每个未来步计算 InfoNCE,可使表征保留能预测未来的因素。CPC 可用于音频序列,也可将图像按行切成 patch 序列,用上方图块预测下方图块;它表达了时间和空间的上下文结构,但图像特征学习中通常不如较新的实例级方法。
自蒸馏
负样本能防止坍塌,却带来大字典和 false negative。BYOL尝试只让同一图像的两个视图一致:在线分支由编码器、投影头和额外预测头组成,目标分支只有编码器和投影头;在线预测去拟合停止梯度的目标表示,目标参数再由在线参数的指数滑动平均更新。若两边同时接收同一损失的梯度,它们可以一起迅速滑向常数解;停止梯度把目标暂时固定,动量更新提供缓慢变化的学习方向,非对称预测头则让在线分支承担追赶任务。BYOL 的确切防坍塌机理还与归一化、优化动态和架构共同相关,不能把其中任一组件单独视为普遍保证,但它说明显式负样本并非学习不变表示的必要条件。
DINO沿用教师—学生自蒸馏,并把两个视图映射为原型概率分布。学生输出 ,教师输出停止梯度的 ,交叉熵 让局部裁剪也去预测较全局视图所表达的对象结构。教师不通过反向传播训练,而由学生参数的指数滑动平均更新:
教师的变化是学生历史状态的低通平均,比当前学生更稳定。若所有图都输出同一分布,匹配损失仍会很小,DINO 便对教师 logits 做中心化与锐化:中心化抑制某几个维度对所有样本都占优势,较低教师温度又避免输出变成完全均匀,两者把“使用多个输出维度”和“每个样本给出明确目标”同时写入训练动态。学生由此既要跨视图保持一致,也要追随一个缓慢而有区分度的教师。ViT 最后层注意力在这种训练后会聚焦对象区域,DINO v2 的 patch 特征还能在跨视角图像中对应相似部位,说明全局一致性目标没有抹掉局部空间结构。

从预文本任务到对比学习、自蒸馏,核心设计逐渐从“预测哪个人工目标”转向“哪些视图应共享表示,以及怎样避免所有表示相同”。InfoNCE 用负样本维持可区分性,BYOL 和 DINO 用停止梯度、动量教师及结构不对称建立稳定目标,MAE 则通过高比例遮挡让重建无法走局部捷径。它们的预训练分数只反映代理目标完成情况,真正有用的表示应在冻结、微调和迁移时保持可分、稳定,并保留下游所需的信息。





