数据不足下的学习 Part 1:半监督学习

Posted on Wed, Jun 29, 2022 📖Note ML

当面对一个只有有限带标签数据的监督学习任务时,有四种方法经常会被谈及。

  1. 预训练+微调:在一个大规模的无监督数据语料库上预训练一个强大的无特定任务的模型,例如自由文本上的预训练语言模型,或者通过自监督学习在无标签图像上的预训练视觉模型,之后再用小规模的有标签样本集在下游任务上微调模型。
  2. 半监督学习:从带标签和不带标签的样本中一起学习。实际已经有许多视觉任务的研究用这种方法开展了。
  3. 主动学习:打标签很昂贵,但我们仍想在给定的一个开销预算下收集更多标签。主动学习学习挑选最有价值的无标签样本接下来被收集,帮助我们在受限预算下明智地行动。
  4. 预训练+数据集自动生成:给定一个有能力的预训练模型,我们可以用它来自动生成更多的带标签样本。在小样本学习的成功的驱使下在语言领域这种方法特别流行。

什么是半监督学习?

半监督学习既使用带标签数据也使用不带标签数据来训练模型。

有趣的是大多数现有的半监督学习的文章关注于视觉任务,而语言任务更常用的方法是预训练+微调。

在半监督学习中,损失函数包含两个部分:L=Ls+μ(t)Lu\mathcal{L}=\mathcal{L}_s+\mu(t)\mathcal{L}_u。监督损失 Ls\mathcal{L}_s 在给定所有带标签样本的条件下很容易得到。需要关注的是如何设计无监督损失 Lu\mathcal{L}_u。常见的权重项 μ(t)\mu(t) 的选择是使用斜坡函数来随着时间增加 Lu\mathcal{L}_u 的重要性,其中tt是训练步数。

本篇不包含关注于模型架构修改的半监督学习方法。这篇综述介绍了如何在半监督学习中使用生成模型和基于图的方法。

记号

假设

在半监督学习方法中有几个假设用于支持某些设计的决定。

一致性正则化

一致性正则化,也称为一致性训练,假设神经网络(例如带有 Dropout)或数据增广变换带有的随机性在给定相同输入的条件下不会改变模型预测。这种思想的每种方法都是用一致性正则损失作为 Lu\mathcal{L}_u

这种思想已经被几种自监督学习方法采用,比如 SimCLR、BYOL 和 SimCSE 等等。同一样本的不同增广版本应产生相同的表示。语言模型中的交叉可视训练和自监督学习中的多视图学习也基于同样的思想。

Π\Pi-model

图1. Π\Pi-model. 同一输入不同随机增广和 dropout 掩码的两个版本通过网络,输出应当一致。

Sajjadi 等人(2016[1])提出了一个无监督学习损失来最小化带有随机变换(例如 dropout,随机最大池化)的相同数据点的输入两次通过神经网络的差别。标签没有被显式地使用,因此损失函数可以被用于无标签数据集。之后 Laine 和 Aila(2017[2])为这样一种设置命名为 Π\Pi-model

LuΠ=xDMSE(fθ(x),fθ(x))\mathcal{L}_u^\Pi=\sum_{\mathbf{x}\in\mathcal{D}}\text{MSE}(f_\theta(\mathbf{x}),f_\theta^\prime(\mathbf{x}))

其中 ff^\prime 是应用带有不同随机增广或 dropout 掩码的相同神经网络。这个损失函数使用整个数据集。

Temporal ensembling

图2. Temporal Ensembling. 每个样本的EMA标签预测是学习目标。

Π\Pi-model 要求网络对每个样本跑两遍,使计算开销加倍。为了缩减开销,Temporal Ensembling(Laine 和 Aila 2017[2])维护了一个每个训练样本作为训练目标随时间的模型预测的指数滑动平均(EMA),每个 epoch 只被计算和更新一次。由于集成输出 z~i{\widetilde{\mathbf{z}}}_i 被初始化为 0\mathbf{0},使用 (1αt)(1-\alpha^t) 来修正这个启动偏差。Adam 优化器由于相同原因也有这样的偏置修正项

z~i(t)=αz~i(t1)+(1α)zi1αt{\widetilde{\mathbf{z}}}_i^{(t)}=\frac{\alpha{\widetilde{\mathbf{z}}}_i^{(t-1)}+(1-\alpha)\mathbf{z}_i}{1-\alpha^t}

其中 z~(t){\widetilde{\mathbf{z}}}^{\left(t\right)} 是在 epoch tt 的集成预测,ziz_i 是当前轮的模型预测。注意由于 z~(0)=0{\widetilde{\mathbf{z}}}^{\left(0\right)}=\mathbf{0},修正后 z~(1){\widetilde{\mathbf{z}}}^{\left(1\right)} 直接等于 epoch 1 的 zi\mathbf{z}_i

Mean teacher

图3. Mean Teacher 架构.

Temporal Ensembling 为每个训练样本作为学习目标跟踪记录一个模型预测的 EMA 。然而,这个标签预测只有在每个 epoch 才改变,这使得这个方法在当数据集很大时不够灵活。Mean Teacher(Tarvaninen 和 Valpola 2017[3])被提出来克服目标更新的缓慢,通过跟踪模型权重的滑动平均而非模型输出的。设权重为的原来的模型为 student 模型,对连续的学生模型进行滑动平均的权重为 θ\theta^\prime 的模型为 mean teacher

θβθ+(1β)θ\theta^\prime\gets\beta\theta^\prime+(1-\beta)\theta

一致性正则化损失是 student 和 teacher 的预测间的距离,student 和 teacher 间的差距应当被最小化。Mean teacher 应当比 student 提供更准确的预测,在经验实验中得到了确认,如图 4 所示。

图4. SVHN 上 Mean Teacher 和 Π\Pi-model 的分类误差. Mean teacher(橙色)比 student 模型(蓝色)的表现更好。

根据他们的消融研究,

将噪声样本作为学习目标

最近的几个一致性训练方法通过学习来最小化原本无标签样本和它对应的增广版本间的预测差异。这和 Π\Pi-model 非常相似,但是一致性正则化损失被用于无标签数据。

图5. 带有噪声样本的一致性训练.

对抗训练(Goodfellow 等人 2014[4])把对抗噪声应用到输入上,训练模型对于这样的对抗攻击变得足够稳健。这种设置以监督学习方法工作,

Ladv(xl,θ)=D[q(yxl),pθ(yxl+radv)]radv=arg maxr;rϵD[q(yxl),pθ(yxl+radv)]radvϵgg2ϵsigngwhereg=rD[y,pθ(yxl+r)]\begin{aligned} \mathcal{L}_\text{adv}(\mathbf{x}^l,\theta)&=D[q(y\mid\mathbf{x}^l),p_\theta(y\mid\mathbf{x}^l+r_\text{adv})]\\ r_\text{adv}&=\argmax_{r;\|r\|≤ϵ}D[q(y\mid\mathbf{x}^l),p_θ(y\mid\mathbf{x}^l+r_\text{adv})]\\ r_{adv}&\approx\epsilon \frac{g}{\|g\|_2}≈ϵ\text{sign}g \quad \text{where}\, g=∇_rD[y,p_θ(y\mid\mathbf{x}^l+r)] \end{aligned}

其中 q(yxl)q(y\mid\mathbf{x}^l) 是真实分布,以真实正确标签 yy 的独热编码来近似。pθ(yxl)p_\theta(y\mid\mathbf{x}^l) 是模型预测。D[.,.]D\left[.,.\right] 是衡量两个分布的散度的距离函数。

Virtual Adversarial TrainingVAT;Miyato 等人 2018[5])把这种想法扩展到半监督学习下工作。由于 q(yxl)q(y\mid\mathbf{x}^l) 是未知的,VAT 把它替换成了现在带有权重 θ^\hat{\theta} 的模型对原始输入的预测。注意 θ^\hat{\theta} 是模型权重的一个固定的副本,因此在 θ^\hat{\theta} 上没有梯度更新。

LuVAT(x,θ)=D[pθ^(yx),pθ(yx+rvadv)]rvadv=arg maxr;rϵD[pθ(yx),pθ(yx+r)]\begin{aligned} \mathcal{L}_u^{\text{VAT}}(\mathbf{x},\theta)&=D[p_{\hat{\theta}}(y\mid\mathbf{x}),p_\theta(y\mid\mathbf{x}+r_{\text{vadv}})]\\ r_{\text{vadv}}&=\argmax_{r;\|r\|≤ϵ}D[p_θ(y\mid x),p_θ(y\mid\mathbf{x}+r)] \end{aligned}

VAT 损失应用在带标签样本和无标签样本上。它是当前模型预测流形在每个数据点上的负平滑度度量。这样的损失的最优化使得流形更加光滑。

Interpolation Consistency TrainingICT;Verma 等人 2019[6])通过增加更多的插值数据点改进了数据集,并期望模型预测和对应标签的插值一致。MixUp(Zheng 等人 2018)操作通过一种简单的加权和混合两个图像,结合上标签平滑。跟随 MixUp 的思路,ICT 希望预测模型在 mixup 样本上产生标签,匹配相应输入的预测的插值:

mixupλ(xi,xj)=λxi+(1λ)xjp(mixupλ(yxi,xj))λp(yxi)+(1λ)p(yxi)\begin{aligned} \text{mixup}_\lambda(\mathbf{x}_i,\mathbf{x}_j)&=\lambda\mathbf{x}_i+(1-\lambda)\mathbf{x}_j\\ p(\text{mixup}_\lambda(y\mid\mathbf{x}_i,\mathbf{x}_j))&\approx\lambda p(y\mid\mathbf{x}_i)+(1-\lambda)p(y\mid\mathbf{x}_i) \end{aligned}

其中 θ\theta^\primeθ\theta 的滑动平均,是 mean teacher。

图6. Interpolation Consistency Training. MixUp 应用于产生更多带有插值标签的插值样本作为学习目标。

因为两个随机选择的无标签样本属于不同类别的概率很高(例如在 ImageNet 中有 1000 个物体类),在两个随机无标签样本间应用 mixup 的插值很有可能发生在决策边界附近。根据低密度分离假设,决策边界易于被定位在低密度区域。

LuICT=Eui,ujUEλBeta(α,α)D[pθ(ymixupλ(ui,uj)),mixupλ(pθ(yui),pθ(yuj))]\mathcal{L}_u^{\text{ICT}}=\mathbb{E}_{\mathbf{u}_i,\mathbf{u}_j∼\mathcal{U}}\mathbb{E}_{\lambda∼\text{Beta}(\alpha,\alpha)}D[p_\theta(y\mid\text{mixup}_\lambda(\mathbf{u}_i,\mathbf{u}_j)),{\text{mixup}}_\lambda(p_{\theta^\prime}(y\mid\mathbf{u}_i),p_{\theta^\prime}(y\mid\mathbf{u}_j))]

其中 θ\theta^\primeθ\theta 的滑动平均。