半监督学习(Semi-Supervised Learning,SSL)的 SOTA 一次次被 Google 刷新,从 MixMatch 开始,到同期的 UDA、ReMixMatch,再到 2020 年的 FixMatch。ide
这四篇深度半监督学习方面的工做,都是从 consistency regularization 和 entropy minimization 两方面入手:学习
对于每个 unlabeled instance,consistency regularization 要求两次随机注入 noise 的输出近似。背后的思想是,若是一个模型是鲁棒的,那么即便输入有扰动,输出也应该近似。blog
对于 consistency regularization 来讲,如何注入 noise 以及如何计算近似,就是每一个方法的不一样之处。注入 noise 能够经过模型自己的随机性(如 dropout)或者直接加入噪声(如 Gaussian noise),也能够经过 data augmentation;计算一致性的方法,能够使用 L2,也能够使用 KL divergency、cross entropy。图片
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 近似人工标签,那么此时无标签数据的熵确定也是较小的。ip
为何这里叫作人工标签而不是伪标签?通常而言,在半监督中,伪标签(pseudo label)特指 hard label,即 one-hot 类型的或者经过 argmax 获得的。[4] 而 MixMatch、UDA、ReMixMatch 获得的人工标签并非 hard label。ssl
Entropy minimization 能够在计算 unlabeled data 部分的 loss 和 consistency regularization 一块儿实现。ci
temperature sharpening 和 pseudo label 都获得了 unlabeled data 的人工标签,当前者 temperature=0 时,二者相等。pseudo label 要比 temperature sharpening 要简单,由于少了一个 temperature 超参数。get
若是不考虑 entropy minimization,那么 temperature sharpening 和 pseudo label 其实都是不须要的,只须要两次随机注入 noise 的 unlabeled instance 输出近似,就能够保证 consistency regularization。it
或者说,获得 unlabeled data 的人工标签,能够使得 entropy minimization 和 consistency regularization 经过一项 loss 来完成。io
通常来讲,半监督学习中的 unlabeled data 会使用所有训练数据集,即有标签的样本也会做为无标签样原本使用。
半监督学习中,labeled data 的标签都是给定的,而 unlabeled data 的标签都是不知道的。那么如何得到 unlabeled data 的人工标签(artificial label),MixMatch、UDA、ReMixMatch 和 FixMatch 的作法或多或少都不相同:
获得了人工标签,咱们就能够按照监督学习的方式来训练,这种思考方式就利用了 entropy minimization。而从 unlabeled data 的 consistency regularization 角度思考,咱们须要注入不一样的 noise,使得 unlabeled data 的 predictions 和它们的人工标签一致。
MixMatch、UDA、ReMixMatch 和 FixMatch 都利用 data augmentation 改变输入样原本注入 noise,不一样的是 data augmentation 的具体方式和强度:
从 UDA 和 ReMixMatch 开始,strong augmentation 引入了半监督训练。UDA 使用了做者以前提出的 RandAugment 的 strong augmentation 方式,而 ReMixMatch 提出了一种 CTAugment。FixMatch 就把 UDA 和 ReMixMatch 中用到的 strong augmentation 都拿来用了一遍。
对于 unlabeled data 部分的 loss:
FixMatch 简化了 MixMatch、UDA 和 ReMixMatch,而后得到了更好的效果:
[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