AI領域的預訓練與自訓練
最近一年,AI領域出現了很多遷移學習(transfer learning)和自學習(self-learning)方面的文章,比較有名的有MoCo,MoCo v2,SimCLR等。這些文章一出現,就受到了很多研究人員的追捧,因為在現實任務上,標簽數據是非常寶貴的資源,受制于領域標簽數據的缺失,神經網絡在很多場景下受到了很多限制。但是遷移學習和自學習的出現,在一定程度上緩解甚至解決了這個問題。我們可以在標簽豐富的場景下進行有監督的訓練,或者在無標簽的場景下,進行神經網絡無監督的自學習,然后把訓練出來的模型進行遷移學習,到標簽很少的場景下,利用這種方式來解決領域標簽數據少的問題。
我們在維陣產品中,設計針對漏洞檢測的圖神經網絡的時候,大量使用了自學習和遷移學習。
今天分享一篇谷歌大腦的文章《Rethinking Pre-training and Self-training》,希望能對大家的研究有幫助。
視覺任務往往具有一定的通用性,例如在某個分類任務數據集上訓練的模型,在遷移到別的分類任務上時,只需要重新訓練分類層以及對其他層權重進行微調便能獲得不俗的結果。所以在面對下游任務時,采用經過別的任務訓練后的模型叫做預訓練技術。預訓練方法通常分為監督、半監督、無監督法。
最常用的監督預訓練技術是:首先在帶有標注的大型數據集上訓練模型,之后將該模型當作預訓練模型執行下游任務。例如在目標檢測任務上通常會采用在Imagenet數據集上經過訓練的模型當作特征提取網絡。
半監督方法的代表是自訓練,其使用少量的標記數據和大量的未標記數據對模型進行聯合訓練。自訓練可以分為5個步驟:
使用少量帶有標簽的數據訓練模型
使用步驟1中得到的模型對未標記數據進行預測,預測結果作為偽標簽
將標記數據和未標記數據結合標簽和偽標簽一起訓練模型
在測試集上評估模型
重復1-4步,對模型迭代
無監督方法在無標簽的數據集上訓練,通過對比損失、互信息最大化等方法獲得對數據的通用表示。在下游任務中,絕大多數采用經過預訓練方法的骨干網絡通常會使結果得到提升。例如在目標檢測任務中,通過監督法得到的預訓練模型因為其穩定、簡單、容易獲取而成為多數目標檢測的骨干網絡模型。但谷歌最新的研究表明,在數據量足夠的情況下,至少在目標檢測任務上,采用自訓練得到的預訓練模型對檢測結果的提升要顯著優于監督預訓練與無監督預訓練模型。
01 使用監督學習獲得預訓練模型
作為實驗,研究者首先在Imagenet上訓練分類網絡作為預訓練模型,之后監督得到的預訓練模型作為骨干網絡在COCO數據集上進行訓練。此外,對訓練集進行數據增強往往能獲得更加通用的表征和更高的魯棒性。所以研究者還研究了在不同強度的數據增強下得到的預訓練模型對目標檢測效果的影響。對于使用監督算法得到的預訓練模型,研究者分別在使用了四種不同強度的數據增強的Imagenet上分別訓練了EfficientNet-B7,之后將這些模型當作骨干網絡在COCO數據集上訓練目標檢測模型。

實驗參數

橫軸為數據增強強度,縱軸為目標檢測結果,Imagenet表示僅在Imagenet數據集上訓練,Imagenet++表示使用了額外的數據擴充,Rand init表示骨干網絡不使用預訓練模型
通過結果表明,在監督環節進行數據增強可以得到更好的目標檢測結果。在較低程度的數據增強下,使用監督預訓練模型比不使用的效果要好。但隨著數據增強的加大,使用預訓練模型反而會損害結果。

橫軸-使用COCO數據集的比例
第二個實驗表明,如果主任務(目標檢測)的訓練集尺寸較小,使用監督方式的預訓練模型可以幫助提高檢測結果,但隨著主任務訓練集的增大,使用監督法得到的預訓練模型的收益越來越低,甚至最終會損害目標檢測結果。綜上,研究者得到了在目標檢測任務上使用由監督法得到的預訓練模型并不能獲得收益,且對數據增強不兼容的結論。
02 使用自訓練獲得預訓練模型
文中使用的自訓練方法為noisy student training。在此使用Imagenet當作未標記的數據(不使用標簽),而COCO數據集當作標記數據對預訓練模型進行聯合訓練,以此更好的改善最終目標檢測的效果。作為與監督預訓練的對比結果如下:

不同數據增強模式下基線、監督式預訓練、自訓練式預訓練下的目標檢測結果對比

不同數據增強模式下基線、監督式預訓練、自訓練式預訓練下的目標檢測結果對比

統一實驗條件下三種預監督方法對比
作為與監督預訓練與無監督預訓練的對比,對照實驗表明使用自訓練方法得到的預訓練模型在各種數據增強模式,不同主任務訓練集尺寸的情況下都能獲得明顯受益,且顯著優于基線(不使用預訓練模型)和監督式預訓練方法。在語義分割方面,研究者也證明了自訓練的預訓練方式比監督式預訓練可以達到更好的效果:

EfficientNet-B7 和L2進行自訓練相比監督式預訓練可以達到更高的精度
03 結論
通過以上一系列實驗證明,監督預訓練方法與無監督預訓練方法對學習通用表示形式具有局限性,其原因研究者猜測,這兩種預訓練方法無法意識到當下要關注的任務,因此可能無法適應。切換到下游任務時通常需要根據任務對預訓練的模型進行有目的的調整,例如COCO目標檢測任務需要目標的位置信息,而在Imagenet分類模型上這些位置信息對分類可能沒有幫助,以至于被模型拋棄。而自訓練的預訓練方法可以更加靈活的融合不同任務之間不同特性,所以其作為預訓練的模型更加合適。
論文引用:
Zoph, Barret, et al. “Rethinking pre-training and self -training.” arXiv preprint arXiv:2006.06882 (2020)