本篇是整理Google在2019年發表的2篇DSSL (深度半監督式學習)的論文 UDA & MixMatch的差異比較
前言:
寫這篇文章的時候我還沒看ReMixMatch, FixMatch等最新的DSSL論文, 搞不好看完之後會有想法又變了也說不定, 寫這篇主要是給自己做個整理, 內容會整理幾篇知乎文章與自己的想法:
1. 何謂consistency regularization?
一致性正則是UDA, MixMatch, 是當今DSSL方法中最重要的核心概念, 是unlabeled data如何傳遞unsupervised signal的方法, 概念非常簡單:
進行SSL時會用到大量的unlabeled data, 對於unlabeled data增加一些擾動 (noise / augmentation), 增加擾動是為了讓model更robust。
但unlabeled data增加擾動很容易有風險(因為本身label就不明確), 因此要考慮增加擾動後是否與增加前一致。
也就是augment前後, model都能對unlabeled data做出一致的預測
這裡就可透過KL divergence或是MSE來計算original unlabeled data & augmented unlabeled data之間的差異, UDA是使用KL散度, MixMatch使用MSE中的L2 loss。
Q. 那為何SSL中的unlabeled data一定要augmentation和搞啥consistency training, 為啥不直接靠unlabeled data + pseudo label, 就直接跟labeled data training?
其實這就是self-training的概念, 論文pesudo-label就是這樣, 效果也不錯但consistency training更好。
2. 快速複習MixMatch
詳細可參考之前文章
3. 快速複習UDA
詳細可參考之前文章
4. MixMatch, UDA的LOSS FUNCTION
- 對於labeled data, 都使用cross-entropy
- 對於unlabeled data, MixMatch使用L2 loss, UDA使用KL散度, L2 loss比起KL散度更嚴謹 (可參考此篇文章底下的"一致性正则的数学选择")
- unsupervised loss部分都有λ權重
- unlabeled data都有訓練細節: MixMatch不讓guessed label的梯度傳回model, UDA則是original unlabeled data使用固定住model參數
5. MixMatch, UDA特別之處
MixMatch
- 將unlabeled data DA k次, 這k個augmentation的label都是同個guessed label, 並在label guessing過程使用averaging, sharpening
- 將augmented labeled data & augmented unlabeled data MixUp
UDA
- Training Signal Annealing for Low-data Regime (TSA), 緩慢地釋放labeled data中的training signals
- 使用SOTA DA方法, 並強調都要保有valid & diverse
6. 發展的可能性:
- MixMatch中的augment K次unlabeled data 和 UDA中的TSA, 都是為了解決SSL容易overfitting在labeled data上的問題
- UDA沒使用MixUp, 但MixMatch的消融測試表示MixUp的效果很棒
- UDA也許可使用SOTA DA來對unlabeled data DA K次, 因為對unlabeled data進行DA是為了獲取unsupervised signals
- 為UDA找到更SOTA的DA方法
- 合併2個LOSS FUNCTION (?? 不確定
- 將supervised loss改成這篇文章介紹的技巧 (也許可行吧
- 還是先看ReMixMatch, FixMatch的論文再說