選自arXiv
作者:Quoc V. Le等人
機器之心編譯
參與:魔王、杜偉
預訓練是當前計算機視覺領域的主要範式,但發現,預訓練對目標檢測和分割任務的影響有限。因而,重新探究預訓練和自訓練的效果成為一個非常重要的課題。在這篇谷歌團隊的論文中,Quoc V. Le 等研究者發現,當具有大量的標註數據時,自訓練的運行效果要優於預訓練,並在 COCO 檢測和 PASCAL 分割任務上實現了 SOTA 結果。
眾所周知,預訓練是計算機視覺領域的主導範式,研究人員也熱衷於預訓練。
但是,預訓練真的有用嗎?
早在 2018 年,何愷明等人在論文《Rethinking ImageNet Pre-training》中重新思考了 ImageNet 預訓練模型。他們發現這種利用預訓練模型抽取「通用」特徵,並藉此解決大多數視覺任務的方法是值得質疑的。因為即使在比 ImageNet 還大 3000 倍的數據集上進行預訓練,它們對目標檢測任務的性能提升仍然不是很大。
近日,谷歌大腦研究團隊首席科學家 Quoc V. Le 公布了其團隊的一項新研究,主題是「重新思考預訓練和自訓練」。在這篇論文中,谷歌研究者展示了當標註數據很多時,預訓練不起作用。相比之下,當標註數據很多時,自訓練可以運行良好,並在 PASCAL 分割和 COCO 檢測數據集上實現 SOTA 效果。
關於自訓練,谷歌團隊先前已經展開相關研究,分別是在 ImageNet 數據集上實現 SOTA 的 Noisy Student Training 和在 LibriSpeech 數據集上實現 SOTA 的 Noisy Student Training for Speech。
而這項新研究則是對先前研究成果的延續,該研究發現:在大型數據集上取得優秀結果需要自訓練(w/Noisy Student)。
接下來,我們來看這項研究的具體內容。
論文連結:https://arxiv.org/pdf/2006.06882.pdf
預訓練是計算機視覺領域中的主要範式。例如,監督式 ImageNet 預訓練常用於初始化目標檢測和分割模型的主幹網絡。但是,何愷明等人的研究展示了一個令人驚訝的結果,即 ImageNet 預訓練對 COCO 目標檢測任務的影響有限。
於是,谷歌大腦的研究人員將自訓練作為另一種在相同設置上利用額外數據的方法進行研究,並將其與 ImageNet 預訓練進行對比。該研究展示了自訓練的通用性和靈活性,並發現以下三點洞見:
更強的數據增強和更多標註數據,卻使得預訓練的價值降低;
與預訓練不同,在提供更強大的數據增強時,自訓練通常起到積極作用,不論是在低數據機制還是高數據機制下;
在預訓練有用的情況下,自訓練比預訓練更有用。
例如,在 COCO 目標檢測數據集上,研究人員使用 1/5 的標註數據時,預訓練起到積極影響,但當使用全部標註數據時,準確率反而下降。而自訓練在所有數據集規模下都能帶來 1.3 至 3.4AP 的性能提升,即自訓練在預訓練不起作用的場景下依然有效。在 PASCAL 分割數據集上(該數據集比 COCO 小很多),儘管預訓練起到很大的作用,但自訓練帶來的性能提升更大。
在 COCO 目標檢測任務中,自訓練實現了 54.3AP,相比最強大的預訓練模型 SpineNet 提升了 1.5AP;在 PASCAL 分割任務中,自訓練實現了 90.5 mIOU,相比之前的最優結果(來自 DeepLabv3+)提升了 1.5%。
如何對比預訓練和自訓練
方法和控制因子
這部分涉及數據增強、預訓練和自訓練三個方面。
1. 數據增強
該研究使用四種適用於目標檢測和分割任務的不同數據增強策略,分別是:FlipCrop、AutoAugment、具備更高 scale jittering 的 AutoAugment 以及具備更高 scale jittering 的 RandAugment。(下文中,這四種數據增強策略分別寫作 Augment-S1、Augment-S2、Augment-S3 和 Augment-S4。)
2. 預訓練
為了評估預訓練的效果,研究者對不同質量的 ImageNet 預訓練模型檢查點進行了研究。此外,為了控制模型容量,所有檢查點均使用同樣的模型架構,不過由於訓練方法不同,它們在 ImageNet 上的準確率有所不同。
該研究使用 EfficientNet-B7 架構 [51] 作為預訓練的強基線方法。EfficientNet-B7 架構有兩個可用的檢查點:1)使用 AutoAugment 訓練的 EfficientNet-B7 檢查點,它在 ImageNet 上的 top-1 準確率為 84.5%;2)使用 Noisy Student 方法訓練的 EfficientNet-B7 檢查點,它利用額外 300M 無標註圖像,實現了 86.9% 的 top-1 準確率。該研究將這兩個檢查點分別寫為 ImageNet 和 ImageNet++。基於隨機初始化進行訓練的模型即 Rand Init。
下表 1 展示了該研究所用數據增強和預訓練檢查點的定義:
3. 自訓練
該研究使用的自訓練實現基於 Noisy Student training [10],共有三個步驟:1)基於標註數據(如 COCO 數據集)訓練教師模型;2)教師模型基於無標註數據(如 ImageNet 數據集)生成偽標籤;3)訓練學生模型,對人類標籤和偽標籤上的損失進行聯合優化。
學生模型中的主要噪聲來源是數據增強和相關模型之前使用過的其他噪聲擾動方法。
預訓練 VS 自訓練,誰贏?
數據增強和標註數據量對預訓練的影響
谷歌研究人員將前述何愷明的研究進行了擴展,發現了以下幾點:
1. 在使用強大的數據增強時,預訓練會損傷模型性能。
研究者改變數據增強的強度,並分析對預訓練的影響。如下圖 1 左圖所示,在使用標準數據增強(Augment-S1)時,預訓練起到積極作用。但隨著數據增強強度的增加,預訓練的價值逐漸減退。
圖 1:數據增強和數據集規模對預訓練的影響。
2. 更多標註數據反倒會降低預訓練的價值。
研究者分析了標註數據集規模變化時,預訓練的影響。如上圖 1 右圖所示,在低數據機制(20%)下預訓練產生積極影響,但在高數據機制下,預訓練的作用是中性甚至有害的。
這一結果與何愷明的觀察基本一致。不過該研究還有一項新發現:檢查點質量與低數據機制下的最終性能有關(ImageNet++ 在 20% COCO 數據集上的性能最優)。
數據增強和標註數據集規模對自訓練的影響
研究者對自訓練展開分析,並將其與上述結果進行了對比。出於一致性的考慮,研究人員繼續使用 COCO 目標檢測任務,並以 ImageNet 數據集作為自訓練數據源。與預訓練不同,自訓練將 ImageNet 數據集僅作為無標註數據。
1. 自訓練在高數據 / 強數據增強的機制下能夠起到積極作用,而預訓練則不能。
研究者首先分析了數據增強強度對目標檢測器性能的影響。下表 2 展示了使用四種數據增強策略時自訓練的性能變化,並將這些結果與監督學習(Rand Init)和預訓練(ImageNet Init)進行了比較。
表 2:使用四種數據增強方法時自訓練的性能變化,以及與監督學習和預訓練的比較。
2. 自訓練適用於不同規模的數據集,是對預訓練的補充。
研究者接下來分析了不同 COCO 標註數據集規模對自訓練性能的影響。
如下表 3 所示,自訓練在小數據集和大數據集上都對目標檢測器起到積極作用。最重要的是,在 100% 標註數據集規模的高數據機制下,自訓練顯著提升了所有模型的性能,而預訓練則損害了模型性能。
表 3:自訓練可以在所有規模的標註數據集上提升模型性能,而預訓練無法實現該效果。
自訓練在高數據/強數據增強機制下起到積極作用,自監督預訓練則不能
研究者還研究了另一種流行的預訓練方法:自監督學習。
如下表 4 所示,自監督預訓練檢查點在 COCO 數據集上對性能的損害與監督預訓練方法相當。與使用隨機初始模型(randomly initialized model)相比,自監督和監督預訓練模型的性能均下降了 0.7AP。相較於它們,自訓練模型將性能提升了 0.8AP。
此外,儘管自監督學習和自訓練都忽略了標籤,但在使用無標註 ImageNet 數據增強 COCO 數據集方面,自訓練似乎更有效。
表 4:在 COCO 數據集上,自監督 / 監督預訓練與自訓練對模型性能的影響。
探索自訓練和預訓練的極限
研究者結合了數據增強、自訓練和預訓練的相互作用來提升 SOTA 結果,具體如下表 5 和下表 6 所示:
表 5:在 COCO 目標檢測數據集上的結果。
表 6:在 PASCAL VOC 語義分割數據集上的結果。
重新思考預訓練和自訓練
重新思考預訓練和通用特徵表示
計算機視覺的目標之一是開發能夠解決多項任務的通用特徵表示。而該研究實驗通過預訓練和自訓練的性能差異,展示了在分類和自監督任務中學習通用表示的局限性。
研究人員對預訓練性能較弱的直觀見解是,預訓練無法感知要處理的特定任務,因而無法進行適應。而在任務發生變化時,這樣的適應是必要的。例如,適合 ImageNet 的特徵可能缺失對 COCO 數據集有用的位置信息。
谷歌研究者得出的結論是:將自訓練目標和監督學習進行聯合訓練,更有利於適應特定任務。這或許能夠使自訓練產生更普遍的積極影響。
聯合訓練的意義
自訓練機制的優勢在於,它能聯合訓練監督和自訓練目標,從而解決二者之間的不匹配。那麼,聯合訓練 ImageNet 和 COCO 是否也能解決這種不匹配呢?
下表 7 展示了將 ImageNet 分類和 COCO 目標檢測聯合訓練的結果:
表 7:預訓練、自訓練和聯合訓練在 COCO 數據集上的對比結果。
自訓練的優勢:可擴展性、通用性和靈活性
實驗結果表明自訓練具備以下優勢:
靈活性:自訓練可以很好地應對實驗中的每一種設置,如低數據、高數據、弱數據增強和強數據增強。同時自訓練對不同的架構(ResNet、EfficientNet、SpineNet、FPN、NAS-FPN)、數據源(ImageNet、OID、PASCAL、COCO)和任務(目標檢測、分割)都有效;
通用性:對於預訓練失敗或成功的場景,自訓練都能夠應對;
可擴展性:在使用更多標註數據和更好模型時,自訓練也能實現優秀的性能。
機器學習領域的一個苦澀教訓是:在具備更多標註數據、更多算力或更好的監督訓練方法時,大部分方法會失敗,不過這種情況並沒有出現在自訓練這裡。
自訓練的局限性
現有的自訓練方法也有局限。相比基於預訓練模型進行微調,自訓練需要更多算力。根據預訓練模型的質量、數據增強的強度和數據集規模,預訓練可實現 1.3 至 1.8 倍的加速。此外,低數據應用(如 PASCAL 分割)也需要優秀的預訓練模型。
原標題:《預、自訓練之爭:谷歌說預訓練雖火,但在標註數據上自訓練更有效》
閱讀原文