解讀RealMix:Towards Realistic Semi-Supervised Deep Learning Algorithms

來源:https://arxiv.org/pdf/1912.08766.pdf

官方代碼:https://github.com/uizard-technologies/realmix

主要貢獻:

1.在cifar10數據集上僅僅只利用每類250個標籤數據實現了sota(error rate:9.79%) 

2.在標籤數據和無標籤數據完全 mismatch的情況下,依然能夠surpass baseline performance。

3.論證了realmix 能夠surpass遷移學習,並且遷移學習對半監督學習有一個很好的補償作用。

算法過程:(這篇文章相當於集成了uda+mixmatch中的一些trick)

GenerateTarget部分:

Augment(x)是爲了保證訓練一致性,裏面包括了隨機左右翻轉和隨機crop,就是對同一組數據同時做兩次不同的增強(隨機)。

Extend(x)是對無標籤數據的擴充,文章中是對cifar10中當標籤數據設定爲每類數量爲250的時候,無標籤數據則擴充50倍,用的是cutout(效果最好),當然也可以用其它普通的增強技術。

該篇文章所用到的一些方法:

Mixup(該方法來自於MixMatch,對普通的mixup做了一個小的改動)

EM熵最小化+Sharpen function+EMA(指數滑動平均)(MixMatch 和UDA 都用了該操作,後面的sharpen作用主要減少對無標籤數據錯例的敏感性)

該博主做了很好的解釋:https://blog.csdn.net/matrix_space/article/details/90732655

TSA(Training signal annealing出自於UDA,主要思想是從總損失中移除預測值大於設定閾值的樣本損失,目的爲了減輕少量標籤數據過擬合造成的影響,主要有三種方式:log,exp,linear,針對的是標籤數據)

詳細算法移步:https://blog.csdn.net/daixiangzi/article/details/102989630

該篇文章還利用了 Out-of-distribution function 策略去減輕 distribution mismatch ,即標籤數據和無標籤數據分佈不一致帶來的影響:具體是針對無標籤數據的,它是相當於把預測值低於 設定的超參閾值的樣本損失丟棄掉,只僅僅計算預測值高於設定的超參閾值樣本的對損失的貢獻。下圖解釋:

注意:在這裏解釋一下什麼是mismatch,舉個例子:cifar10數據集中包含6個動物類和4個交通工具類。假設標籤數據爲6個動物類,那麼0%mismatch就表示另外的4類無標籤數據都爲動物類,100%mismatcqh則表示另外4類無標籤數據都爲交工具類。

實驗結果:

在cifar10和svhn數據上的實驗結果

在遷移學習上的表現(可以發現realmix+遷移可以進步一步提升效果) 

消融實驗: 

主要對兩個因素做了對比實驗一個是Extend(x)數據增強部分和Out Of Distribution MASK(x)部分

數據增強部分:

Simple Augs:a copy+水平翻轉+隨機crop

25 Augs:25 copys+水平翻轉+隨機crop

RealMix:50 copys+cutout

 oodmask上的表現,這裏僅僅只在mismatch爲75%的時候,做一個簡單的對比(下面還是顯示有oodmask效果要更好一點)

最後,文章中也有指出oodmask超參不好調,並且也指出希望在未來把它作爲一個SSL評估的一個重要標註,因爲在現實中標籤數據和無標籤數據很多時候都是來自於不同分佈的。附上原話:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章