推荐两篇综述
推荐两篇综述:
https://arxiv.org/abs/2006.08218
https://arxiv.org/abs/2304.12210
本文内容全来源自这两篇综述。目标是让大家了解一些自监督学习现在的发展,自监督学习已经不是当初认识的自监督学习了(只能做聚类之类的无监督学习),自监督学习已经发展得很强大。自监督学习(Self-supervised Learning),被称为“智能的暗物质”。
机器学习的学习范式
机器学习中的监督学习、半监督学习、无监督学习和自监督学习是常见的四种学习范式,它们在数据和标签的使用方式上各有特点。以下是简要介绍:
-
监督学习:使用带标签的数据训练模型,适合分类和回归任务。优点是效果好,缺点是需要大量标注数据,应用于图像分类、语音识别等。
-
半监督学习:结合少量标注数据和大量未标注数据,能提升泛化能力,减少对标注数据的需求。适用于标注数据获取难的场景,如医学图像分析。
-
无监督学习:无需标注数据,利用数据模式进行聚类、降维等。优点是可以发现数据中的隐藏结构,但结果的解释性较差,常用于客户分群、异常检测等。
-
自监督学习:是无监督学习的子类。从未标注数据中生成“伪标签”进行训练,广泛应用于NLP和计算机视觉。优点是不需人工标注,但任务设计复杂,应用于特征提取和预训练语言模型等。
自监督学习的范式
可以将主流的自监督方法概括为三大类,并对其具体类型进行详细划分:
- 生成式方法(Generative):训练一个编码器将输入x编码为显式向量z,并通过解码器从z重建x(例如,填空测试、图生成)。
- 对比式方法(Contrastive):训练一个编码器将输入x编码为显式向量z以测量相似性(例如,最大化互信息、实例区分)。
- 生成-对比式方法(Generative-Contrastive,或对抗性方法):训练一个编码器-解码器生成假样本,并通过判别器将其与真实样本区分开来(例如,GAN)。
自监督学习的下游目标不同,选择的范式就不同。
它们的主要区别在于模型架构和目标。下图展示了它们的详细概念比较。它们的架构可以统一为两个主要组成部分:生成器和判别器,生成器可以进一步分解为编码器和解码器。不同之处如下:
- 关于潜在分布z:在生成式和对比式方法中,z是显式的,通常被下游任务利用;而在GAN中,z是隐式建模的。
- 关于判别器:生成式方法没有判别器,而GAN和对比式方法则有。对比式判别器的参数相对较少(例如,2-3层的多层感知机)而GAN的判别器参数较多(例如,标准的ResNet [53])。
- 关于目标函数:生成式方法使用重构损失,对比式方法使用对比相似性度量(例如,InfoNCE),生成-对比式方法则利用分布性差异作为损失(例如,JS散度,Wasserstein距离)。
自监督表示学习的概览如下。缩写解释:“FOS”表示研究领域;“NS”表示负样本;“PS”表示正样本;“MI”表示互信息。类型中的字母含义为:G 生成式;C 对比式;G-C 生成-对比(对抗式)。在“Hard NS”和“Hard PS”中的符号说明:“-”表示不适用,“×”表示未采用,“X”表示已采用;“no NS”特别表示在实例-实例对比中不使用负样本。
基于生成模型的重要自监督学习方法
自回归(AR)模型
自回归(Auto-regressive,AR)模型可以视为“贝叶斯网络结构”(有向图模型)。联合分布可以被分解为条件概率的乘积:
θmax pθ(x)=t=1∑Tlogpθ(xt∣x1:t−1)
其中,每个变量的概率依赖于前面的变量。
在自然语言处理(NLP)中,自回归语言建模的目标通常是在前向自回归分解下最大化似然 [148]。GPT [105] 和 GPT-2 [106] 使用 Transformer 解码器架构 [134] 来进行语言建模。与 GPT 不同,GPT-2 移除了不同任务的微调过程。为了学习能够泛化到不同任务的统一表示,GPT-2 模型通过 p(output∣input, task) 来实现,这意味着在给定不同任务的情况下,相同的输入可以产生不同的输出。
自回归模型也被应用于计算机视觉领域,例如 PixelRNN [133] 和 PixelCNN [131]。基本思想是使用自回归方法逐像素地建模图像。例如,图像中的下(右)方像素是基于上(左)方像素生成的。PixelRNN 和 PixelCNN 的像素分布分别由 RNN 和 CNN 建模。
自编码 (AE) 模型
Denoising AE Model
DAE 的架构与普通的 Autoencoder 类似,但在输入数据上加入了噪声。例如,给定一张干净的图片作为输入,模型会先人为地加入噪声(如高斯噪声或遮挡噪声),然后再利用编码器将含噪数据映射到隐空间,再由解码器进行重建,以还原出原始的干净图片。
DAE 的目标函数是最小化重建误差,使得模型能够在噪声数据的基础上尽可能还原无噪声的原始数据。常用的重建误差度量方法是均方误差(MSE),即:
L(x,x^)=N1i=1∑N(xi−x^i)2
其中,x 表示原始数据,x^ 表示模型输出。
Variational AE Model
传统的 Autoencoder 模型虽然可以学习到数据的特征表示,但缺乏生成能力。Variational Autoencoder 在普通 Autoencoder 的基础上引入了概率模型和变分推断,使得其不仅能够学习数据的隐含特征,还能生成与输入数据相似的新数据样本。
VAE 的结构与传统 Autoencoder 相似,包含编码器和解码器部分,但引入了概率分布的概念:
- 编码器:将输入数据映射到隐空间中的概率分布参数(均值 μ 和标准差 σ)。
- 解码器:通过采样生成的隐变量,将其解码为数据分布的重建样本。
在编码阶段,VAE 不直接输出隐层表示,而是输出均值和方差参数,以构建隐变量的高斯分布。随后,通过重参数化技巧从这个分布中采样,以确保模型的可微性,使得梯度可以反向传播。
VAE 的目标函数由两部分组成:重构损失和正则化损失。
- 重构损失:确保重建数据与原始输入尽量接近,通常使用均方误差(MSE)或交叉熵。
- 正则化损失:鼓励隐变量的分布接近标准正态分布,使用Kullback-Leibler(KL)散度来衡量:
LKL=DKL(q(z∣x)∥p(z))
其中 q(z∣x) 是编码器输出的隐变量分布,而 p(z) 是先验分布(通常设为标准正态分布)。
总的损失函数为:
L=Eq(z∣x)[logp(x∣z)]−DKL(q(z∣x)∥p(z))
这一目标函数实现了数据重构与隐空间结构化的平衡。
VAE 的工作流程如下:
- 编码阶段:编码器将输入数据映射到隐变量的均值和标准差,形成隐空间的高斯分布。
- 重参数化阶段:通过重参数化技巧从隐变量分布中采样,以确保可微性。
- 解码阶段:解码器根据采样隐变量,生成与原始输入相似的重建样本。
与 VAE 相比,VQ-VAE 用量化向量字典替换了原始的隐藏分布。此外,VQ-VAE 中的先验分布被替换为一个预训练的 PixelCNN,用于建模图像的层次特征。
深度度量学习家族:SimCLR/NNCLR/MeanSHIFT/SCL
SimCLR:
NNCLR:
NNCLR和SimCLR都是基于对比学习的自监督学习方法,但它们在正样本选择和数据增强依赖上存在显著区别:
-
正样本选择:
- SimCLR:使用数据增强生成的同一图像的不同视图(例如随机裁剪、颜色扰动等)作为正样本。这些正样本实际上是同一个实例的变体,目标是让模型在潜在空间中保持这些变体的一致性。
- NNCLR:引入了“最近邻”的概念,利用潜在空间中的语义相似性,将来自支持集的最近邻样本作为正样本。也就是说,NNCLR选择的正样本不仅仅是同一图像的变体,还可能是不同图像但具有相似语义的样本。通过这种方式,NNCLR扩展了正样本的范围,提高了学习到的特征的泛化性。
-
数据增强的依赖:
- SimCLR:高度依赖于复杂的数据增强策略,以生成足够的图像变体,从而帮助模型学习有区分度的特征。例如SimCLR会应用随机裁剪、颜色抖动、高斯模糊等多种增强方法。
- NNCLR:减少了对复杂数据增强的依赖,因为通过最近邻搜索得到的正样本已经具有自然的语义多样性。实验表明,在仅使用简单随机裁剪的情况下,NNCLR的性能损失较小,这表明NNCLR在正样本构建上比SimCLR更为灵活。
-
性能表现:
- 在ImageNet分类任务中,NNCLR通过最近邻正样本构建策略显著提高了性能。在相同设置下,NNCLR比SimCLR提升了大约3.8%的Top-1准确率,这说明NNCLR的最近邻正样本策略比SimCLR的单实例变体策略效果更好。
SimCLR强调通过数据增强构造同一实例的不同视图,而NNCLR则利用潜在空间中的最近邻作为正样本,进一步扩展了正样本的语义多样性并减少了对数据增强的依赖,从而提升了模型的性能。
自蒸馏家族:BYOL/SimSIAM/DINO
BYOL 架构。BYOL(Bootstrap Your Own Latent)是一种自监督学习方法,其训练方式独特,不依赖负样本对,而是通过自举(bootstrap)机制逐步改进表示。
BYOL(Bootstrap Your Own Latent)是一种自监督学习方法,其训练方式独特,不依赖负样本对,而是通过自举(bootstrap)机制逐步改进表示。具体来说,BYOL 使用两个网络(在线网络和目标网络)来进行训练。以下是其训练过程的主要步骤:
1. 双网络结构
BYOL 包含两个神经网络:在线网络(online network)和目标网络(target network)。这两个网络结构相同,但参数独立。在线网络的参数是 θ,目标网络的参数是 ξ。
2. 数据增强与视图生成
BYOL 从数据集中随机采样一张图像,然后通过两种不同的数据增强(如裁剪、翻转、颜色扰动等)生成该图像的两个不同视图。这两个视图被输入到在线网络和目标网络中,用于学习表示。
3. 前向传播与表示学习
- 第一个增强视图 v 输入在线网络,生成表示 yθ=fθ(v),然后通过投影器生成投影 zθ=gθ(yθ)。
- 第二个增强视图 v′ 输入目标网络,生成目标表示 yξ′=fξ(v′),再通过投影器生成目标投影 zξ′=gξ(yξ′)。
4. 预测与损失计算
- 在线网络生成的投影 zθ 通过预测器 qθ 进行预测,得到预测结果 qθ(zθ)。
- 对 qθ(zθ) 和 zξ′ 进行 ℓ2 归一化,然后计算二者之间的均方误差损失:
Lθ,ξ=∥qθ(zθ)−zξ′∥22=2−2⋅⟨qθ(zθ),zξ′⟩
- 为对称化损失,BYOL 还会将增强视图交换(即将 v′ 输入在线网络,将 v 输入目标网络),计算另一个损失 L~θ,ξ。最终损失为:
LBYOL=Lθ,ξ+L~θ,ξ
5. 参数更新
- 使用随机梯度下降(SGD)或类似优化器,仅针对在线网络的参数 θ 优化损失 LBYOL,而目标网络的参数 ξ 通过 EMA 更新:
ξ←τξ+(1−τ)θ
其中,τ 是衰减因子,控制目标网络的更新速度(通常设定在 0.99 或更高,以保持稳定性)。
6. 训练细节与停止梯度
- 在目标网络中,梯度是“停止”的,即不会反向传播梯度到目标网络的参数,这种设计避免了目标网络直接受到在线网络参数更新的影响。
- BYOL 通过迭代上述过程,不断更新在线网络的参数和目标网络的 EMA,使得在线网络能够逐步学习到稳定而有用的表示。
7. 最终模型
训练结束后,只保留在线网络的编码器部分 fθ,用于下游任务。预测器和投影器部分在最终模型中通常不保留,因为它们主要用于自监督学习阶段的优化,而非下游任务的实际表示使用。
BYOL 的训练方法通过自举过程,不需要负样本对,从而避免了对比学习中的一些缺点(如对大批量数据和复杂的负样本选择的依赖)。它通过在线网络和目标网络的协同训练,实现了无监督条件下的高质量表示学习。