监督预训练,通常采用ImageNet等大规模标注数据集,一直是用于迁移学习模型初始化的一种标准做法。然而,创建此类大规模标注数据集成本高昂且耗时。此外,在特定数据集上预训练的模型可能会带有偏差,或学到一些不完全适合差异很大的目标域的特征。自监督学习 (SSL) 作为一种值得考虑的替代方法出现,它使模型能够直接从无标注数据中学习丰富的视觉表示。
SSL 的主要思想是创建一个“前置”任务,其中监督信号源自数据本身,而非人工提供的标签。通过解决这个前置任务,模型被迫学习到视觉数据中有意义的语义、模式和结构。在自监督预训练阶段学到的特征通常可以很好地迁移到分类、检测或分割等下游任务,有时甚至优于监督预训练,特别是在下游任务的标注数据稀缺时。
设计前置任务
SSL 的有效性取决于前置任务的设计。任务应足够有挑战性,以便模型需要学习高层次语义特征,但仅使用输入数据即可解决。计算机视觉中已有几种类型的前置任务被证明是成功的:
对比学习
对比方法目前是SSL最流行和最有效的方法之一。基本原理是学习表示,使同一图像的增强版本(“视图”)在嵌入空间中彼此靠近,同时使不同图像的表示彼此远离。
想象取一张图像,并创建它的两个不同变形版本(例如,通过裁剪、颜色抖动、旋转)。这些被认为是一个“正样本对”。来自不同图像的任何视图被认为是一个“负样本对”。模型,通常是CNN编码器,处理这些视图以生成特征向量(嵌入)。一个对比损失函数,例如 NT-Xent(归一化温度缩放交叉熵),然后促使正样本对的嵌入具有高相似度(例如,高余弦相似度),负样本对的嵌入具有低相似度。
流行的对比学习框架包括:
- SimCLR(视觉表示对比学习的简洁框架): 使用大批量大小以直接在批次内提供许多负样本。它在预训练期间在编码器之后使用一个投影头(一个小型MLP),该投影头在下游任务中会被丢弃。强大的数据增强是一个重要的组成部分。
- MoCo(动量对比): 解决对许多负样本的需求,而无需大的批量大小。它维护一个动态字典(队列),其中包含来自先前批次的编码键,使用动量更新的编码器来保证一致性。
- BYOL(自举潜在表示): 一种有趣的方法,它通过预测目标网络(在线网络的动量更新版本)针对同一图像的不同增强视图的输出来进行学习。它在没有明确负样本对的情况下取得了很好的结果,而是依赖于在线网络和目标网络之间的相互影响。
对比自监督学习概述。同一图像的增强视图 (A1, A2) 产生的表示 (z_A1, z_A2) 被拉近,而不同图像的表示 (z_A1, z_B1) 则被推开。
掩码图像建模 (MIM)
受自然语言处理(NLP)中掩码语言建模(MLM)(如BERT)成功的启发,掩码图像建模技术将类似理念应用于视觉。这个思想是随机遮蔽输入图像的很大一部分,并训练模型来预测被遮蔽区域的内容。
- BEiT(来自图像Transformer的双向编码器表示): 遮蔽图像块,并预测与原始被遮蔽图像块对应的离散视觉标记。这些视觉标记从预训练的离散变分自编码器(dVAE)中获得。
- MAE(掩码自编码器): 采用非对称编码器-解码器架构。编码器(通常是视觉Transformer)只处理可见图像块(一小部分,例如25%)。一个轻量级解码器然后从可见图像块的编码表示和掩码标记中重建完整的图像像素。这种非对称性使得预训练非常高效。
通过学习重建或预测被遮蔽的部分,模型必须从周围可见的部分理解上下文、物体形状和纹理,从而获得强大的表示。
其他前置任务
尽管对比学习和MIM占据主导地位,但其他方法也存在:
- 预测旋转: 训练模型来预测应用于输入图像的旋转角度(例如,0、90、180、270度)。
- 拼图: 将图像分割成图像块,打乱它们,并训练模型来预测正确的排列。
- 基于聚类的方法(例如,DeepCluster): 定期聚类网络产生的特征,并使用聚类分配作为伪标签来更新网络权重。
使用SSL预训练模型
一旦模型使用前置任务在大型无标注数据集上进行预训练,学到的编码器可作为很好的特征提取器。典型的工作流程与监督迁移学习相似:
- 预训练: 使用SimCLR或MAE等SSL方法,在大型无标注数据集上训练一个模型(例如,ResNet或ViT编码器)。
- 适应: 使用预训练的编码器(丢弃SimCLR中的投影头或MAE中的解码器等任何SSL专用头部)。
- 微调: 添加一个任务专用头部(例如,用于图像分类的线性分类器,用于物体检测的检测头部),并在目标任务的(可能很小的)标注数据集上微调整个模型或其部分。或者,将冻结的编码器用作特征提取器。
优点与考量
优点:
- 减少对标签的依赖: 使用大量易于获取的无标注数据。
- 改进的泛化能力: 相比在特定数据集上的监督预训练,可以学到更通用且可能偏差更小的表示。
- 领先的性能: SSL预训练在各种下游基准上通常能达到或超越监督预训练的性能,特别是在数据量较少的情况下。
- 适应的依据: 为本章前面讨论的域适应和少样本学习技术提供了一个很好的起始点。
考量:
- 计算成本: SSL预训练可能计算量大,通常需要大量的GPU资源和时间,尽管MAE等方法提供了更高的效率。
- 超参数敏感性: 性能可能对前置任务、数据增强、优化器设置以及其他超参数的选择敏感。
- 负迁移: 尽管现代方法中这种情况较少见,但始终存在一种可能性,即通过特定前置任务学到的特征可能无法与特定下游任务完美匹配。
自监督学习代表了在训练视觉深度学习模型方面重大的进步。通过巧妙地定义从数据本身提取监督信号的前置任务,SSL使我们能够使用无标注数据来构建强大的通用视觉编码器,为通过迁移学习和适应处理各种计算机视觉问题提供了依据。