半監督學習(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