本文转自:【半监督学习】MixMatch、UDA、ReMixMatch、FixMatch

半监督学习(Semi-Supervised Learning,SSL)的 SOTA 一次次被 Google 刷新,从 MixMatch 开始,到同期的 UDA、ReMixMatch,再到 2020 年的 FixMatch。

目录

  • Consistency Regularization
  • Entropy Minimization
  • 结合 Consistency Regularization 和 Entropy Minimization
  • FixMatch: Simplifying SSL with Consistency and Confidence
  • References

这四篇深度半监督学习方面的工作,都是从 consistency regularization 和 entropy minimization 两方面入手:

  • consistency regularization:一致性正则,给输入图片或者中间层注入 noise,模型的输出应该尽可能保持不变或者近似。
  • entropy minimization:最小化熵,模型在 unlabeled data 上的熵应该尽可能最小化。Pseudo label 也隐含地用到了 entropy minimization。

Consistency Regularization

对于每一个 unlabeled instance,consistency regularization 要求两次随机注入 noise 的输出近似。背后的思想是,如果一个模型是鲁棒的,那么即使输入有扰动,输出也应该近似。

对于 consistency regularization 来说,如何注入 noise 以及如何计算一致性,就是每个方法的不同之处。注入 noise 可以通过模型本身的随机性(如 dropout)或者直接加入噪声(如 Gaussian noise),也可以通过 data augmentation;计算一致性的方法,可以使用 L2,也可以使用 KL divergency、cross entropy。

Entropy Minimization

MixMatch、UDA 和 ReMixMatch 通过 temperature sharpening 来间接利用 entropy minimization,而 FixMatch 通过 Pseudo label 来间接利用 entropy minimization。可以认为,只要通过得到 unlabeled data 的人工标签然后按照监督学习的方法(如 cross entropy loss)来训练的,都间接用到了 entropy minimization。因为人工标签都是 one-hot 或者近似 one-hot 的,如果 unlabeled data 的 prediction 近似人工标签,那么此时无标签数据的熵肯定也是较小的。

为什么这里叫做人工标签而不是伪标签?一般而言,在半监督中,伪标签(pseudo label)特指 hard label,即 one-hot 类型的或者通过 argmax 得到的。[4] 而 MixMatch、UDA、ReMixMatch 得到的人工标签并不是 hard label。

Entropy minimization 可以在计算 unlabeled data 部分的 loss 和 consistency regularization 一起实现。

temperature sharpening 和 pseudo label 都得到了 unlabeled data 的人工标签,当前者 temperature=0 时,两者相等。pseudo label 要比 temperature sharpening 要简单,因为少了一个 temperature 超参数。

如果不考虑 entropy minimization,那么 temperature sharpening 和 pseudo label 其实都是不需要的,只需要两次随机注入 noise 的 unlabeled instance 输出近似,就可以保证 consistency regularization,如 Π-model。

或者说,得到 unlabeled data 的人工标签,可以使得 entropy minimization 和 consistency regularization 通过一项 loss 来完成。

结合 Consistency Regularization 和 Entropy Minimization

一般来说,半监督学习中的 unlabeled data 会使用全部训练数据集,即有标签的样本也会作为无标签样本来使用。

半监督学习中,labeled data 的标签都是给定的,而 unlabeled data 的标签都是不知道的。那么如何获得 unlabeled data 的人工标签(artificial label),MixMatch、UDA、ReMixMatch 和 FixMatch 的做法或多或少都不相同:

  • MixMatch:平均 K 次 weak augmentation(如 shifting 和 flipping)的 predictions ,然后经过 temperature sharpening;
  • UDA:一次 weak augmentation 的 prediction,然后经过 temperature sharpening;
  • ReMixMatch:一次 weak augmentation 的 prediction,然后经过 distribution alignment,最后经过 temperature sharpening;
  • FixMatch:一次 weak augmentation 的 prediction,然后 argmax 得到 hard label(pseudo label)。

Fig.1 MixMatch 人工标签 (soft label)

得到了人工标签,我们就可以按照监督学习的方式来训练,这种思考方式就利用了 entropy minimization。而从 unlabeled data 的 consistency regularization 角度思考,我们需要注入不同的 noise,使得 unlabeled data 的 predictions 和它们的人工标签一致。

MixMatch、UDA、ReMixMatch 和 FixMatch 都利用 data augmentation 改变输入样本来注入 noise,不同的是 data augmentation 的具体方式和强度:

  • MixMatch:一次 weak augmentation 得到 prediction,这就和正常的监督训练一样,只是 unlabeled loss 用的是 L2 而已;
  • UDA:一次 strong augmentation(RandAugment) 得到 prediction;
  • ReMixMatch:多次 strong augmentation(CTAugment)得到 predictions,然后同时参与 unlabeled loss 的计算,即一个 unlabeled instance 一个 step 多次增强后计算多次 loss;
  • FixMatch:一次 strong augmentation(RandAugment 或 CTAugment)得到 prediction。

Fig.2 FixMatch 流程图

从 UDA 和 ReMixMatch 开始,strong augmentation 引入了半监督训练。UDA 使用了作者之前提出的 RandAugment 的 strong augmentation 方式,而 ReMixMatch 提出了一种 CTAugment。FixMatch 就把 UDA 和 ReMixMatch 中用到的 strong augmentation 都拿来用了一遍。

Fig.3 weak augmentaion、strong augmentation 及 temperature sharpening 使用情况

对于 unlabeled data 部分的 loss:

  • MixMatch:L2 loss;
  • UDA:KL divergency;
  • ReMixMatch:cross entropy(包括自监督的 rotation loss 和没有使用 mixup 的 pre-mixup unlabeled loss);
  • FixMatch:带阈值的 cross entropy。

FixMatch: Simplifying SSL with Consistency and Confidence

FixMatch 简化了 MixMatch、UDA 和 ReMixMatch,然后获得了更好的效果:

  • 首先,temperature sharpening 换成 pseudo label,这是一个简化;
  • 其次,FixMatch 通过设定一个阈值,在计算 unlabeled loss 时,对 prediction 的 confidence 超过阈值的 unlabeled instance 才算入 unlabeled loss,这样使得 unlabeled loss 的权重可以固定,这是第二个简化。

Fig.4 Error rates for CIFAR-10, CIFAR-100 and SVHN on 5 different folds.

References

[1] Berthelot, D., Carlini, N., Goodfellow, I., Papernot, N., Oliver, A., Raffel, C. (2019). MixMatch: A Holistic Approach to Semi-Supervised Learning arXiv https://arxiv.org/abs/1905.02249
[2] Berthelot, D., Carlini, N., Cubuk, E., Kurakin, A., Sohn, K., Zhang, H., Raffel, C. (2019). ReMixMatch: Semi-Supervised Learning with Distribution Alignment and Augmentation Anchoring arXiv https://arxiv.org/abs/1911.09785
[3] Xie, Q., Dai, Z., Hovy, E., Luong, M., Le, Q. (2019). Unsupervised Data Augmentation for Consistency Training arXiv https://arxiv.org/abs/1904.12848
[4] Sohn, K., Berthelot, D., Li, C., Zhang, Z., Carlini, N., Cubuk, E., Kurakin, A., Zhang, H., Raffel, C. (2020). FixMatch: Simplifying Semi-Supervised Learning with Consistency and Confidence arXiv https://arxiv.org/abs/2001.07685

MixMatch、UDA、ReMixMatch、FixMatch相关推荐

  1. 【开源】对基于图像背景的字体生成、人体姿势预测、关键点检测、超分辨率等探讨...

    本文推荐本周值得关注的已开源论文,包含文本识别.关键点检测.人体姿势预测.Transformer.图像超分辨率等 10 篇.       01       Font Style that Fits a ...

  2. CVPR 2022 | 腾讯优图实验室30篇论文入选,含场景文本语义识别、3D人脸重建、目标检测、视频场景分割和视频插帧等领域...

    关注公众号,发现CV技术之美 本文转载自腾讯优图 近日,CVPR 2022官方公布了接收论文列表(CVPR 2022 接收论文公布! 总计2067篇!),来自腾讯优图实验室共计30篇论文被CVPR收录 ...

  3. etcd 笔记(05)— etcd 代码结构、各模块功能、整体架构、各模块之间的交互、请求和应答流程

    1. etcd 项目结构和功能 etcd 项目代码的目录结构如下: $ tree ├── auth ├── build ├── client ├── clientv3 ├── contrib ├── ...

  4. VS Code 配置调试参数、launch.json 配置文件属性、task.json 变量替换、自动保存并格式化、空格和制表符、函数调用关系、文件搜索和全局搜索、

    1. 生成配置参数 对于大多数的调试都需要在当前项目目录下创建一个 lanch.json 文件,位置是在当前项目目录下生成一个 .vscode 的隐藏文件夹,在里面放置一些配置内容,比如:settin ...

  5. 计图(Jittor) 1.1版本:新增骨干网络、JIT功能升级、支持多卡训练

    计图(Jittor) 1.1版本:新增骨干网络.JIT功能升级.支持多卡训练 深度学习框架-计图(Jittor),Jittor的新版本V1.1上线了.主要变化包括: • 增加了大量骨干网络的支持,增强 ...

  6. 对端边缘云网络计算模式:透明计算、移动边缘计算、雾计算和Cloudlet

    对端边缘云网络计算模式:透明计算.移动边缘计算.雾计算和Cloudlet 概要 将数据发送到云端进行分析是过去几十年的一个突出趋势,推动了云计算成为主流计算范式.然而,物联网时代设备数量和数据流量的急 ...

  7. Shiro01 功能点框图、架构图、身份认证逻辑、身份认证代码实现

    基本功能点 功能点框图 功能点说明 1.Authentication:身份认证/登录,验证用户是不是拥有相应的身份: 2.Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个 ...

  8. PyTorch 笔记(16)— torch.nn.Sequential、torch.nn.Linear、torch.nn.RelU

    PyTorch 中的 torch.nn 包提供了很多与实现神经网络中的具体功能相关的类,这些类涵盖了深度神经网络模型在搭建和参数优化过程中的常用内容,比如神经网络中的卷积层.池化层.全连接层这类层次构 ...

  9. 机器学习入门(15)— 全连接层与卷积层的区别、卷积神经网络结构、卷积运算、填充、卷积步幅、三维数据卷积、多维卷积核运算以及批处理

    卷积神经网络(Convolutional Neural Network,CNN)CNN 被用于图像识别.语音识别等各种场合,在图像识别的比赛中,基于深度学习的方法几乎都以 CNN 为基础. 1. 全连 ...

最新文章

  1. 只有20%的iOS程序员能看懂:详解intrinsicContentSize 及 约束优先级/content Hugging/content Compression Resistance
  2. WCFAppFabric :异常消息: 内存入口检查失败
  3. JavaScript中的true和false
  4. Java线程通俗讲解
  5. mysql5.1 mysiam,将MySQL 5.1 MyISAM 转换成 INNODB 存储引擎
  6. 线程组之间的JMeter传递变量
  7. python形参中的:*args和**kwargs区别
  8. python wget安装_Macbook系统环境安装wget的2个方法 - 传统包及Homebrew安装
  9. 句柄泄漏与应用程序体验查找服务(AELookupSvc)
  10. JS中的!=、== 、!==、=== 的用法和区别
  11. 2021-eclipse的安装及环境配置
  12. A(AI)、B(BigData)、C(Cloud)通俗介绍
  13. easypanel b.php,KangleWebServer Easypanel API接口详解
  14. 百度地图清除指定覆盖物(Overlay),保留某种覆盖物( disableMassClea),清除保留的覆盖物(enableMassClear)
  15. 2021SCAU数据结构复习(实验1-实验3)
  16. Android-图像识别项目OpenCV(2):运行官方例子中的脸部识别程序
  17. 大学计算机a实验实验报告数组,广州大学电路实验报告
  18. 零基础学游戏建模需要多长时间?
  19. A-Z,a-z,0-9的unicode编码表
  20. asp.net 中的gridview 之gridview 分页

热门文章

  1. SDJZU_新生_递推动规_HDU 2041- 超级楼梯
  2. 旧款Mac开启随航(sideCar)功能
  3. 从起源到再生:古代与中世纪哲学笔记
  4. 脑电图源成像:分析步骤的实践回顾
  5. 英语对话计算机,关于计算机的英语对话
  6. 附带有背景图、文字的二维码
  7. 渗透测试-----信息收集(通过DNS解析找IP地址、CDN、IP查询、IP物理地址、搜索引擎、网站信息收集)
  8. web应用使用skype教程
  9. 深入浅出带你学习报错注入
  10. 编程小知识 之 序列 rotate