弱监督学习--半监督学习(4):MixMatch: A Holistic Approach to Semi-Supervised Learning

前言

2019 年,Google 的研究团队提出了半监督学习技术MixMatch。MixMatch 可以认为是近几年半监督学习技术的集大成者,融入了Consistency Regulation、伪标签思想、entropy regularization 以及 MixUp 技术,最终实现了显著优于之前半监督学习技术的效果。

目前半监督学习的几种方法:一个是熵最小化,也就是说,尽可能让模型对无标签样本的预测置信度高;另外一个是,连续性,当样本出现扰动的时候,模型的输出还是非常的 robust;还有一个是泛化能力,模型应该有很好的泛化能力。

这篇 paper,作者主要抓住了两点,一个是熵最小化,一个是连续性。熵最小化,文章里提出了一种对数据做增广,用模型预测,取平均,然后再做一个 sharpen;连续性,主要就是样本增广,结合 Mixup 的方法。

论文链接:https://arxiv.org/pdf/1905.02249.pdf
github:https://github.com/YU1ut/MixMatch-pytorch

1.介绍

最近在训练大型深度神经网络方面取得的成功,在一定程度上要归功于大型标记数据集的存在。然而,对于许多学习任务来说,收集标记数据是昂贵的,因为它必然涉及到专家知识。这一点或许可以从医学任务中得到最好的说明,在医学任务中,使用昂贵的机械和标签进行测量是耗时分析的结果,通常来自多位人类专家的结论。此外,数据标签可能包含被认为是私有的敏感信息。相比之下,在许多任务中,获取未标记的数据要容易得多,也便宜得多

半监督学习(SSL)通过允许模型利用未标记的数据,试图在很大程度上减轻对标记数据的需求。最近的许多半监督学习方法都增加了一个损失项,这个损失项是在未标记的数据上计算的,它鼓励模型更好地泛化至到不可见的数据中。在最近的许多工作中,这个损失项可分为三类:

  • 1.熵最小化——它鼓励模型对未标记的数据输出有信心的预测;
  • 2.一致性正则化——当模型的输入受到扰动时,它鼓励模型产生相同的输出分布
  • 3.泛型正则化——这有助于模型很好地泛化,避免对训练数据的过度拟合。

MixMatch,这是一种SSL算法,它引入了单个损失,将这些主要方法优雅地结合到半监督学习中。与之前的方法不同,MixMatci rget一次获得所有属性,我们发现它有以下好处:

  • 实验表明,MixMatch在所有标准的图像基准测试(第4.2节)上都获得了最先进的结果,例如,在包含250个标签的CIFAR-10上获得了11.08%的错误率(其次是最佳方法,获得了38%的错误率);

  • 此外,模型简化测试中表明,MixMatch 的效果比各个trick 混合之和要好;

  • 我们在第4.3节中演示了MixMatch对于不同的私有学习是有用的,使PATE框架[34]中的学生能够获得最新的结果,同时增强所提供的隐私保障和所达到的准确性。

简而言之,MixMatch为未标记的数据引入了一个统一的损失项,它无缝地减少了熵,同时保持一致性,并保持与传统正则化技术的兼容性。

2.相关工作介绍

2.1Consistency Regularization 一致性正则化

在监督学习中,一种常见的正则化技术是数据增强,它应用于对输入进行转换,同时假定这种转换不影响类语义分类。例如,在图像分类中,输入图像通常会发生弹性变形或添加噪声,这可以在不改变图像标签的情况下显著改变图像的像素内容。粗略地说,这可以通过近乎无限生产新数据或者说修改数据,人为地扩大了训练集的大小。一致性正则化将数据增强应用于半监督学习,它利用了这样一种思想 : 即使对未标记的示例进行了增强,分类器也应该输出相同的类分布。更正式地说,一致性正则化强制未标记的示例x应该与Augment(x)归为一类,其中Augment是一个随机数据增强函数,类似于随机空间平移或添加噪声。

最简单的例子,Π-Model,也叫做带有随机变化和扰动项的正则化,将下列式子加入了损失函数
弱监督学习--半监督学习(4):MixMatch: A Holistic Approach to Semi-Supervised Learning
对于未标记的x数据点,我们需要注意:Augment(x) 是一个随机变换,所以上式中Augment(x)中的两项是不相同的。该方法通过旋转、剪切、加性高斯噪声等复杂的增强过程,应用于图像分类基准。例如,“Mean teacher” 将上式中的一项替换为模型的输出,这个模型利用了模型中参数的指数移动平均。这提供了一个更稳定的目标,并在实践中发现显著改善结果。这些方法的一个缺点是,它们使用领域特定的数据增强策略. “虚拟对抗性训练。VAT(Virtual Adversarial Training)解决这个问题的方法是,计算一个加性扰动来应用于最大程度地改变输出类分布的输入MixMatch通过对图像使用标准数据增强(随机水平翻转和裁剪),利用了一致性正则化的一种形式。

2.2Entropy Minimization/ Entropy regularization 熵最小化

在许多半监督学习方法中,一个常见的基本假设是分类器的决策边界不应该通过边缘数据分布的高密度区域。实现这一点的一种方法是要求分类器对未标记的数据输出低熵预测。

  • VAT:这是在显式地通过简单地添加一个损失项来实现的,该损失项使Pmodel(y | x;0)未标注数据,这种形式的熵最小化与VAT相结合,得到了更强的结果
  • Pseudo-Label: ‘Pseudo-Label 伪标签’ 通过对未标记数据的高置信度预测构建硬标签,并在标准的交叉熵损失中使用这些硬标签作为训练目标,隐式地实现了熵的最小化
  • sharpen:MixMatch还通过对未标记数据的目标分布使用“锐化”函数隐式地实现熵的最小化

2.3Traditional regularization 传统正则化

正则化是指施加的约束模型的一般方法难以记忆的训练数据,因此希望把它推广更好的看不见的数据,无处不在的正则化方法是添加一个损失项惩罚L2范数模型的参数,可以被视为执行为identity-covariance高斯之前的重量值。当使用简单的梯度下降法时,这个损失项等于指数衰减权值趋向于零。

3MixMatch

MixMatch 是一个“整体”的方法, 它整合了前面提到的一些ideas 和一些来自主流SSL的组件。给定一个已经标签的 batch X 和同样大小未标签的batch U. MixMatch生成一批经过处理的增强标签数据X‘和一批带猜测标签的U’,然后分别计算带标签数据和未标签数据的损失项。更正式地,半监督学习的综合损失L计算如下:
弱监督学习--半监督学习(4):MixMatch: A Holistic Approach to Semi-Supervised Learning
其中H(p,q)H(p,q)表示分布ppqq之间的交叉熵损失,TTKKα\alphaλU\lambda_{\mathcal{U}} 是超参数,整个算法流程如下:
弱监督学习--半监督学习(4):MixMatch: A Holistic Approach to Semi-Supervised Learning

3.1 数据增强 Data Augmentation

缓解标记数据不足的常见方法是使用数据增强。数据增强引入了一个函数Augment(x)Augment(x),该函数以其标签不变的方式对输入数据点x进行随机转换。重申一下,不同的增广应用将产生不同的(随机)输出。与许多SSL方法中的典型方法一样,我们对标记的和未标记的数据都使用数据增强。对于批次标记数据XX中的每个xbxb,我们生成一个转换后的版本Augment(xb)Augment(xb) 。对于批次未标记数据UU中的每个ubub,我们生成KK个增强 ubub,k=Augment(ub)k=Augment(ub), K 属于(1K)(1,…, K)。这些单独的扩展用于为每个ubub生成一个“猜测的标签”qbqb

3.2 标签猜测 Label Guessing

对于的每个未标记的训练数据UU,MixMatch使用模型的预测为示例的标签生成一个“guess”。这个guess后来被用于无监督损失术语。为此,我们计算了该模型预测的分类分布在ubub的所有KK个增量上的平均值。在一致性正则化方法中,使用数据增强为未标记的示例获取人工目标是常见的。
弱监督学习--半监督学习(4):MixMatch: A Holistic Approach to Semi-Supervised Learning

总结上述过程就是运用数据增强技术对无标签数据进行K次的变换,模型分别对 K 次变换进行预测,然后取这K次结果的平均作为无标签的期望结果。

3.3 Sharpening 锐化

Sharpening是一个很重要的过程,这个思想相当于深度学习中的relu过程,在取平均之后不进行锐化会对结果影响很大。在生成标签猜测时,我们执行了一个额外的步骤,灵感来自于半监督学习中熵最小化的成功。在给定平均预测量的基础上,应用锐化函数减小了标签分布的熵。在实际应用中,对于锐化函数,我们使用了调整这个分类分布的“温度”的常用方法,即操作
弱监督学习--半监督学习(4):MixMatch: A Holistic Approach to Semi-Supervised Learning
T是超参数。

3.4MixUp

作为MixMatch的最后一步,使用了MixUp。为了在半监督学习中使用mixup,将它同时应用于带猜测标签的数据和没有标签的示例。与过去使用MixUp工作不同,将标记的示例与未标记的示例“混合”在一起,反之亦然,发现改进了性能。在组合损失函数中,使用单独的损失术语来表示标记的和未标记的数据。这将导致在最初建议的表单中使用MixUp时出现问题;相反,对于两个具有相应(one-hot)标签(cz1, pl), (x2, p2)的示例,我们定义了一个稍微修改过的混合,即计算(x’, p’)
弱监督学习--半监督学习(4):MixMatch: A Holistic Approach to Semi-Supervised Learning

4.实验结果

弱监督学习--半监督学习(4):MixMatch: A Holistic Approach to Semi-Supervised Learning

参考

https://blog.csdn.net/u012420553/article/details/100294213?utm_medium=distribute.pc_relevant.none-task-blog-baidujs-2
https://blog.csdn.net/puchapu/article/details/92755534?utm_medium=distribute.pc_relevant.none-task-blog-baidujs-3
https://zhuanlan.zhihu.com/p/138085660