为学校网站做网站推广策划,建设手机网站设计,wordpress开放用户注册,国家企业信息填报系统登录前言
2019 年#xff0c;Google 的研究团队提出了半监督学习技术MixMatch。MixMatch 可以认为是近几年半监督学习技术的集大成者#xff0c;融入了Consistency Regulation、伪标签思想、entropy regularization 以及 MixUp 技术#xff0c;最终实现了显著优于之前半监督学习…前言
2019 年Google 的研究团队提出了半监督学习技术MixMatch。MixMatch 可以认为是近几年半监督学习技术的集大成者融入了Consistency Regulation、伪标签思想、entropy regularization 以及 MixUp 技术最终实现了显著优于之前半监督学习技术的效果。
目前半监督学习的几种方法一个是熵最小化也就是说尽可能让模型对无标签样本的预测置信度高另外一个是连续性当样本出现扰动的时候模型的输出还是非常的 robust还有一个是泛化能力模型应该有很好的泛化能力。
这篇 paper作者主要抓住了两点一个是熵最小化一个是连续性。熵最小化文章里提出了一种对数据做增广用模型预测取平均然后再做一个 sharpen连续性主要就是样本增广结合 Mixup 的方法。
论文链接https://arxiv.org/pdf/1905.02249.pdf githubhttps://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也叫做带有随机变化和扰动项的正则化将下列式子加入了损失函数 对于未标记的x数据点我们需要注意Augment(x) 是一个随机变换所以上式中Augment(x)中的两项是不相同的。该方法通过旋转、剪切、加性高斯噪声等复杂的增强过程应用于图像分类基准。例如“Mean teacher” 将上式中的一项替换为模型的输出这个模型利用了模型中参数的指数移动平均。这提供了一个更稳定的目标并在实践中发现显著改善结果。这些方法的一个缺点是它们使用领域特定的数据增强策略. “虚拟对抗性训练。VATVirtual Adversarial Training解决这个问题的方法是计算一个加性扰动来应用于最大程度地改变输出类分布的输入。MixMatch通过对图像使用标准数据增强随机水平翻转和裁剪利用了一致性正则化的一种形式。
2.2Entropy Minimization/ Entropy regularization 熵最小化
在许多半监督学习方法中一个常见的基本假设是分类器的决策边界不应该通过边缘数据分布的高密度区域。实现这一点的一种方法是要求分类器对未标记的数据输出低熵预测。
VAT这是在显式地通过简单地添加一个损失项来实现的该损失项使Pmodel(y | x;0)未标注数据,这种形式的熵最小化与VAT相结合得到了更强的结果Pseudo-Label ‘Pseudo-Label 伪标签’ 通过对未标记数据的高置信度预测构建硬标签并在标准的交叉熵损失中使用这些硬标签作为训练目标隐式地实现了熵的最小化sharpenMixMatch还通过对未标记数据的目标分布使用“锐化”函数隐式地实现熵的最小化
2.3Traditional regularization 传统正则化
正则化是指施加的约束模型的一般方法难以记忆的训练数据,因此希望把它推广更好的看不见的数据无处不在的正则化方法是添加一个损失项惩罚L2范数模型的参数,可以被视为执行为identity-covariance高斯之前的重量值。当使用简单的梯度下降法时这个损失项等于指数衰减权值趋向于零。
3MixMatch
MixMatch 是一个“整体”的方法, 它整合了前面提到的一些ideas 和一些来自主流SSL的组件。给定一个已经标签的 batch X 和同样大小未标签的batch U. MixMatch生成一批经过处理的增强标签数据X‘和一批带猜测标签的U’然后分别计算带标签数据和未标签数据的损失项。更正式地半监督学习的综合损失L计算如下 其中 H ( p , q ) H(p,q) H(p,q)表示分布 p p p和 q q q之间的交叉熵损失 T T T K K K α \alpha α λ U \lambda_{\mathcal{U}} λU 是超参数整个算法流程如下:
3.1 数据增强 Data Augmentation
缓解标记数据不足的常见方法是使用数据增强。数据增强引入了一个函数 A u g m e n t ( x ) Augment(x) Augment(x)该函数以其标签不变的方式对输入数据点x进行随机转换。重申一下不同的增广应用将产生不同的(随机)输出。与许多SSL方法中的典型方法一样我们对标记的和未标记的数据都使用数据增强。对于批次标记数据 X X X中的每个 x b xb xb我们生成一个转换后的版本 A u g m e n t ( x b ) Augment(xb) Augment(xb) 。对于批次未标记数据 U U U中的每个 u b ub ub我们生成 K K K个增强 u b ub ub, k A u g m e n t ( u b ) kAugment(ub) kAugment(ub) K 属于 ( 1 … K ) (1… K) (1…K)。这些单独的扩展用于为每个 u b ub ub生成一个“猜测的标签” q b qb qb
3.2 标签猜测 Label Guessing
对于的每个未标记的训练数据 U U UMixMatch使用模型的预测为示例的标签生成一个“guess”。这个guess后来被用于无监督损失术语。为此我们计算了该模型预测的分类分布在 u b ub ub的所有 K K K个增量上的平均值。在一致性正则化方法中使用数据增强为未标记的示例获取人工目标是常见的。
总结上述过程就是运用数据增强技术对无标签数据进行K次的变换模型分别对 K 次变换进行预测然后取这K次结果的平均作为无标签的期望结果。
3.3 Sharpening 锐化
Sharpening是一个很重要的过程这个思想相当于深度学习中的relu过程在取平均之后不进行锐化会对结果影响很大。在生成标签猜测时我们执行了一个额外的步骤灵感来自于半监督学习中熵最小化的成功。在给定平均预测量的基础上应用锐化函数减小了标签分布的熵。在实际应用中对于锐化函数我们使用了调整这个分类分布的“温度”的常用方法即操作 T是超参数。
3.4MixUp
作为MixMatch的最后一步使用了MixUp。为了在半监督学习中使用mixup将它同时应用于带猜测标签的数据和没有标签的示例。与过去使用MixUp工作不同将标记的示例与未标记的示例“混合”在一起反之亦然发现改进了性能。在组合损失函数中使用单独的损失术语来表示标记的和未标记的数据。这将导致在最初建议的表单中使用MixUp时出现问题;相反对于两个具有相应(one-hot)标签(cz1, pl) (x2, p2)的示例我们定义了一个稍微修改过的混合即计算(x’ p’)
4.实验结果 参考
https://blog.csdn.net/u012420553/article/details/100294213?utm_mediumdistribute.pc_relevant.none-task-blog-baidujs-2 https://blog.csdn.net/puchapu/article/details/92755534?utm_mediumdistribute.pc_relevant.none-task-blog-baidujs-3 https://zhuanlan.zhihu.com/p/138085660