未來的人工智慧,必然是半監督學習的天下。深度學習

領域在最開始的時候,大家花費了海量的人力財力去標記數據。得益於這些標記數據,深度學習才逐步發展,慢慢到達目前的精度。如果只需要上百個標記數據,再加上百萬容易獲取的未標記數據,半監督學習就能逼近監督學習的精度,那麼會發展出無數的新應用場景。

上一篇博客介紹了超強的半監督學習 MixMatch 演算法。之後發現 MixMatch 文章有個姐妹篇,Unsupervised Data Augmentation (UDA), 比 MixMatch 厲害了一點點,是半監督學習的當前最佳(state-of-the-art,簡稱SOTA)。兩個演算法真的就像姐妹,既相似又不同。這篇博客解讀後者 UDA,希望知道兩者是否能強強聯合。

文章鏈接 Unsupervised Data Augmentation 簡稱 UDA。

先說結果,在 CIFAR10 數據集上,使用4000張標記圖片,UDA 將預測誤差降低到了 5.27%。對應的 MixMatch 演算法,預測誤差為 6.24%。MixMatch文章顯示使用全部五萬張圖片,做監督學習,能達到的最低誤差是 4.13%。可以看到 MixMatch 和 UDA 都非常接近監督學習能夠達到的精度。

註:UDA 文章提到的 AutoAugment 智能數據增廣技術,可以使監督學習在CIFAR10數據集上達到測試誤差 1.48%。 MixMatch 文章中所給監督學習誤差 4.13% 的數據可能過時。

這兩篇文章都強調好的數據增廣技術能大大提高半監督學習的預測精度。MixMatch 演算法除了使用普通的數據增廣,還有一個祕訣是 Mixup 增廣術。而 UDA 的成功,得益於對特定任務使用定製的數據增廣演算法。比如,對於圖像數據使用智能增廣技術 AutoAugment,這種演算法使用強化學習搜索增廣策略以最小化訓練過程中的驗證誤差(Validation Error)。此方法非常有效,它發現對於街景門牌號數據集(SVHN),最好的增廣方法是剪切扭曲以及對背景和數字的單獨變色。而對於CIFAR10,最好的增廣方法是對顏色的微調,比如亮度調節。想起以前做數據增廣,該對圖片縮放多少,旋轉多大角度,才能達到最好效果,全部靠猜。 AutoAugment 真謂數據增廣寶器,生生將 CIFAR10 測試誤差從 2.1% 降到了 1.48%。

為何數據增廣對半監督學習重要呢?UDA這篇文章做了細緻講解。半監督學習強迫神經網路對增廣之後的未標記數據作出自洽預測 (consistency enforcing)。MixMatch 對增廣後的未標記數據預測結果使用 L2 Loss, 而 UDA 使用 KL divergence 。兩者沒有本質不同,可能 L2 loss 提供了更強的約束。這裡有一個隱含要求,數據增廣不能破壞圖片的真實標籤。比如一張圖片 x 的標籤是貓,但在數據增廣的時候,剛好截取了沒有貓的背景部分生成新的訓練數據 x。此時 x 的標籤與 x 不同。強迫神經網路對 x 和 x 作出自洽的預測(將兩者都預測為貓)毫無意義。UDA 緊抓這一點,使用智能增廣技術,AutoAugment,使得數據增廣不破壞標籤,一舉達到半監督學習的當前最強。UDA 比較了幾種圖像增廣技術,發現 AutoAugment 效果最好,但是沒有嘗試 MixMatch 方法使用的 Mixup 演算法。原因可能是 AutoAugment 智能增廣在訓練的時候並沒有加入 Mixup 這個操作,比較好奇如果 AutoAugment 加入 Mixup,是否會在增廣以及半監督學習方向達到更好表現。

比較有意思的是,UDA 同時對自然語言處理中的文本分類任務做了測試。使用對自然語言處理定製的TF-IDF關鍵詞替換方案,以及「還原翻譯」增廣技術,在語言任務上也達到了半監督學習的當前最佳。最令人印象深刻的是,在電影評論分類數據集IMDB上,使用 20 個標記數據,UDA + BERT 微調就將測試誤差降低到了 4.2%,低於使用兩萬五千組數據做監督學習能夠達到的最低誤差 4.32%。這應該是潘多拉魔盒被揭開的第一個角吧!

文章介紹的另一個技巧是逐步釋放訓練信號(Training Signal Annealing,簡稱 TSA)。TSA 的目的是防止對標記數據的過擬合。畢竟在只使用 20 個標記數據的時候,模型可以很快過擬合到訓練數據集。TSA 的具體做法是在訓練過程中,不計對標記數據預測過於自信的樣本。這部分標記數據的誤差無法反向傳遞,從而避免模型進一步過擬合到這些樣本。在 CIFAR10 上,TSA 將測試誤差從 5.67% 降到了 5.10%,算是比較有用。MixMatch 演算法中對標記數據做一次增廣,對未標記數據做 K 次增廣,並增大未標記數據 Consistency Loss 權重因子,應該是基於同樣的考慮 -- 防止模型過擬合到標記數據。

總結

因為在 MixMatch 的介紹中,已經講解了半監督學習的基本原理,這篇對 UDA 的介紹要輕鬆的多。UDA 是一篇非常有意思的文章。如果這篇介紹引起了大家的興趣,還是閱讀原文收穫比較大。

文章中的觀點非常有啟發。比如 AutoAugment 在監督學習及半監督學習中的作用。又比如 TSA 演算法,是否可以直接應用於監督學習,起到像 Gradient Boost Tree 一樣的作用。兩篇文章的方法,原則上可以同時使用,只要 AutoAugment 在強化訓練的過程中,加入 Mixup 策略。最後,Temporal Ensembling for Semi-Supervised Learning 這篇文章雖然說到對於未標記數據的consistency loss, L2 比 Cross Entropy 或 KL divergence 提供了更加嚴格的限制,卻沒有給出定量對比。對比 Cross Entropy Loss, L2 Loss 以及KL divergence,可能是有意思(很多人很好奇)的研究。另外,UDA 在 ImageNet 數據集上做了測試,如果測試 MixMatch 在 ImageNet 這個更大的數據集上的表現,並與 UDA 做一個對比,也會是很多人感興趣的內容。

參考文獻:

Unsupervised Data Augmentation?

arxiv.org

hahakity:超強半監督學習 MixMatch?

zhuanlan.zhihu.com
圖標
https://arxiv.org/pdf/1805.09501.pdf?

arxiv.org

SIGAI:樣本增廣自動化-AutoAugment論文解讀?

zhuanlan.zhihu.com
圖標
集智學園:GoogleAI新演算法:如何增強計算機視覺深度學習的效果?

zhuanlan.zhihu.com
圖標
靈魂機器:MixMatch 和 UDA比較?

zhuanlan.zhihu.com
圖標

推薦閱讀:

相關文章