0
本文作者: JocelynWang | 編輯:劉曉坤 | 2020-07-28 15:58 |
早在2018年底,F(xiàn)AIR的研究人員就發(fā)布了一篇名為《Rethinking ImageNet Pre-training》的論文 ,這篇論文隨后發(fā)表在ICCV2019。該論文提出了一些關(guān)于預(yù)訓(xùn)練的非常有趣的結(jié)論。
近期,谷歌大腦的研究團(tuán)隊(duì)對這個概念進(jìn)行了擴(kuò)展,在新論文《Rethinking Pre-training and Self-training》中,不僅討論了預(yù)訓(xùn)練,還研究了自訓(xùn)練,比較了在同一組任務(wù)當(dāng)中自訓(xùn)練與監(jiān)督預(yù)訓(xùn)練、自監(jiān)督預(yù)訓(xùn)練之間的差異。
論文地址:https://arxiv.org/abs/2006.06882
作者通過實(shí)驗(yàn)得出了以下結(jié)論:
1、如果預(yù)訓(xùn)練任務(wù)和目標(biāo)任務(wù)存在差異,則預(yù)訓(xùn)練(包括監(jiān)督和自監(jiān)督)可能損害目標(biāo)任務(wù)準(zhǔn)確率;
2、自訓(xùn)練適用不同規(guī)模數(shù)據(jù)集和不同強(qiáng)度增強(qiáng)數(shù)據(jù)的訓(xùn)練;
3、自訓(xùn)練并且可以看作對預(yù)訓(xùn)練的補(bǔ)充,聯(lián)合預(yù)訓(xùn)練和自訓(xùn)練可以獲得更大的增益。
以下是機(jī)器學(xué)習(xí)研究工程師Aakash Nain對《Rethinking Pre-training and Self-training》這篇論文的解讀,文章發(fā)表在Medium上,AI科技評論對文章進(jìn)行了編譯。
在進(jìn)一步探討論文細(xì)節(jié)之前,我們先了解一些術(shù)語。預(yù)訓(xùn)練是運(yùn)用在不同領(lǐng)域(例如計(jì)算機(jī)視覺、自然語言處理、語音處理)的一種非常普遍的做法。在計(jì)算機(jī)視覺任務(wù)中,我們通常使用在某個數(shù)據(jù)集上經(jīng)過預(yù)訓(xùn)練并可直接運(yùn)用到另一個數(shù)據(jù)集的模型。例如,利用ImageNet預(yù)訓(xùn)練就是一種可廣泛運(yùn)用到目標(biāo)分割和目標(biāo)檢測任務(wù)的初始化方法。為實(shí)現(xiàn)此目的,我們常使用遷移學(xué)習(xí)和微調(diào)這兩種技術(shù)。另一方面,自訓(xùn)練也嘗試在訓(xùn)練期間結(jié)合模型對未標(biāo)記數(shù)據(jù)的預(yù)測結(jié)果,以獲得其他可用的信息來改善模型性能。例如,使用ImageNet來改進(jìn)COCO目標(biāo)檢測模型。首先在COCO數(shù)據(jù)集上訓(xùn)練模型,然后將該模型用于生成ImageNet的偽標(biāo)簽(我們將丟棄原始的ImageNet標(biāo)簽),最后將帶有偽標(biāo)簽的ImageNet數(shù)據(jù)集和有標(biāo)簽的COCO數(shù)據(jù)集結(jié)合來訓(xùn)練一個新的模型。自監(jiān)督學(xué)習(xí)是另一種常用的預(yù)訓(xùn)練方法。自監(jiān)督學(xué)習(xí)的目的不僅僅是學(xué)習(xí)高級特征。相反,我們希望模型學(xué)習(xí)的更好,有更好的魯棒性以適用于各種不同的任務(wù)和數(shù)據(jù)集。
作者希望能解決以下問題:
1、預(yù)訓(xùn)練對訓(xùn)練結(jié)果有多大程度的幫助?
2、什么情況下使用預(yù)訓(xùn)練是無效的?
3、與預(yù)訓(xùn)練相比,我們可以使用自訓(xùn)練并獲得相似或更好的結(jié)果嗎?
4、如果自訓(xùn)練優(yōu)于預(yù)訓(xùn)練(暫做這樣的假設(shè)),那它在多大的程度上比預(yù)訓(xùn)練好?
5、在什么情況下自訓(xùn)練比預(yù)訓(xùn)練更好?
6、自訓(xùn)練的靈活性和可擴(kuò)展性如何?
1、數(shù)據(jù)集和模型
1)目標(biāo)檢測:作者使用COCO數(shù)據(jù)集(11.8萬張圖片 )進(jìn)行監(jiān)督學(xué)習(xí)下的目標(biāo)檢測訓(xùn)練。ImageNet數(shù)據(jù)集(120萬張圖片 )和OpenImage數(shù)據(jù)集(170萬張圖片 )用作未標(biāo)記的數(shù)據(jù)集。使用以EfficientNet - B7為主干網(wǎng)絡(luò)的RetinaNet目標(biāo)檢測器。圖像的分辨率保持在640 x 640,金字塔等級為P3到P7,每個像素使用9個錨點(diǎn)。
2)語義分割:使用 PASCAL VOC 2012分割訓(xùn)練集(1500張圖片)進(jìn)行監(jiān)督學(xué)習(xí)下的語義分割訓(xùn)練。對于自訓(xùn)練,作者使用了增強(qiáng)的PASCAL圖像數(shù)據(jù)集(9000張圖片),標(biāo)記以及未標(biāo)記的COCO(24萬張圖片)和ImageNet(120萬張圖片)數(shù)據(jù)集。使用以EfficientNet-B7和EfficientNet-L2為主干網(wǎng)絡(luò)的NAS-FPN模型。
2、數(shù)據(jù)增強(qiáng)
在所有實(shí)驗(yàn)中都使用了四種不同強(qiáng)度的增強(qiáng)策略來進(jìn)行檢測和分割。這四種策略按強(qiáng)度從低到高依次為:1)Augment-S1:這是標(biāo)準(zhǔn)“ 翻轉(zhuǎn)和裁剪”增強(qiáng)操作,包括水平翻轉(zhuǎn)和縮放裁剪。2)Augment-S2: 這包括論文《AutoAugment: Learning Augmentation Strategies from Data》中使用的AutoAugment,以及翻轉(zhuǎn)和裁剪。3)Augment-S3:它包括大規(guī)??s放、AutoAugment、翻轉(zhuǎn)和裁剪??s放范圍比Augment-S1:更大。4)Augment-S4: 結(jié)合論文《RandAugment: Practical automated data augmentation with a reduced search space》中提出的RandAugment,翻轉(zhuǎn)和裁剪,以及大規(guī)??s放操作。此處的縮放等級與Augment-S2/S3相同。
3、預(yù)訓(xùn)練
為了研究預(yù)訓(xùn)練的有效性,作者使用了ImageNet預(yù)訓(xùn)練的檢查點(diǎn)。使用EfficientNet-B7作為架構(gòu)用于評估,對此模型,設(shè)置了兩個不同的檢查點(diǎn),如下所示:1)ImageNet:通過AutoAugment在檢查點(diǎn)上訓(xùn)練EfficientNet-B7,在ImageNet上達(dá)到84.5%了的top-1準(zhǔn)確率。2)ImageNet ++:采用論文《Self-training with Noisy Student improves ImageNet classification》中提出的Noisy Student方法在檢查點(diǎn)上訓(xùn)練EfficientNet-B7,其中利用了額外3億張未標(biāo)記的圖像,并達(dá)到了86.9%的top-1準(zhǔn)確率。采用隨機(jī)初始化訓(xùn)練的結(jié)果標(biāo)記為Rand Init。
4、自訓(xùn)練
自訓(xùn)練是基于Noisy Student方法實(shí)現(xiàn)的,有三個步驟:
在標(biāo)記的數(shù)據(jù)(例如COCO數(shù)據(jù)集)上訓(xùn)練teacher model。
使用teacher model在未標(biāo)記的數(shù)據(jù)(例如ImageNet數(shù)據(jù)集)上生成偽標(biāo)記。
訓(xùn)練一個student model,以聯(lián)合優(yōu)化人工標(biāo)簽和偽標(biāo)簽上的損失。
1、增強(qiáng)和標(biāo)記數(shù)據(jù)集大小對預(yù)訓(xùn)練的影響
作者使用ImageNet進(jìn)行監(jiān)督預(yù)訓(xùn)練,并改變帶標(biāo)簽的COCO數(shù)據(jù)集大小以研究預(yù)訓(xùn)練對結(jié)果的影響。實(shí)驗(yàn)過程中,不僅會改變標(biāo)記數(shù)據(jù)的大小,而且還使用不同增強(qiáng)強(qiáng)度的數(shù)據(jù)集,使用以EfficientNet-B7為主干網(wǎng)絡(luò)的RetinaNe模型來進(jìn)行訓(xùn)練。作者觀察到以下幾點(diǎn):
1)使用高強(qiáng)度的數(shù)據(jù)增強(qiáng)時,監(jiān)督預(yù)訓(xùn)練會損害性能:作者注意到,當(dāng)他們使用如上所述的標(biāo)準(zhǔn)增強(qiáng)方法Augment-S1時,預(yù)訓(xùn)練會對結(jié)果有所幫助。但是隨著增加增強(qiáng)的強(qiáng)度,預(yù)訓(xùn)練并未對結(jié)果有太大幫助。實(shí)際上,他們觀察到,在使用最強(qiáng)的數(shù)據(jù)增強(qiáng)(Augment-S3)時,預(yù)訓(xùn)練會嚴(yán)重?fù)p害性能。
2)更多帶標(biāo)簽的數(shù)據(jù)會降低監(jiān)督預(yù)訓(xùn)練的價值:這不是一個新發(fā)現(xiàn)。我們都知道,當(dāng)數(shù)據(jù)量較小時,預(yù)訓(xùn)練會對結(jié)果有所幫助。但是有足夠數(shù)量的標(biāo)記數(shù)據(jù)時,從頭開始訓(xùn)練也不會得到很差的結(jié)果。作者發(fā)現(xiàn)了相同的結(jié)論,這一觀點(diǎn)與FAIR的論文《Rethinking ImageNet Pre-training》相一致。
我的看法:在ImageNet上訓(xùn)練的大多數(shù)模型都沒有使用很高強(qiáng)度的增強(qiáng)方法。高強(qiáng)度增強(qiáng)數(shù)據(jù)后,模型可能無法正確收斂。實(shí)際上,模型有時可能會對增強(qiáng)過擬合,當(dāng)然這還需要進(jìn)行適當(dāng)?shù)募?xì)節(jié)研究。
2、增強(qiáng)和標(biāo)記數(shù)據(jù)集大小對自訓(xùn)練的影響
作者使用相同的模型(使用帶有EfficientNet-B7主干的RetinaNet檢測器)和相同的任務(wù)(COCO數(shù)據(jù)集目標(biāo)檢測)來研究自訓(xùn)練的影響。作者使用ImageNet數(shù)據(jù)集進(jìn)行自訓(xùn)練(這種情況下將丟棄ImageNet的原始標(biāo)簽)。作者觀察到以下幾點(diǎn):
1)即使預(yù)訓(xùn)練對結(jié)果產(chǎn)生了負(fù)面影響,自訓(xùn)練也有助于大規(guī)模數(shù)據(jù)集和高強(qiáng)度增強(qiáng)的情況:作者發(fā)現(xiàn),當(dāng)使用大量數(shù)據(jù)增強(qiáng)時將自訓(xùn)練應(yīng)用到隨機(jī)初始化模型中,這樣不僅可以提高基線結(jié)果,并且超過了同情況下預(yù)訓(xùn)練的結(jié)果。該實(shí)驗(yàn)結(jié)果如下:
2)自訓(xùn)練適用于各種不同大小的數(shù)據(jù)集,并且可以看作對預(yù)訓(xùn)練的補(bǔ)充:作者發(fā)現(xiàn)自訓(xùn)練另一個有趣的方面是,它可以作為預(yù)訓(xùn)練的補(bǔ)充。簡而言之,當(dāng)將自訓(xùn)練與隨機(jī)初始化模型或預(yù)訓(xùn)練模型結(jié)合使用時,它始終可以提高性能。在不同數(shù)據(jù)大小下,性能增益是一致的。
但,使用ImageNet ++ 預(yù)訓(xùn)練時,與使用隨機(jī)初始化和ImageNet預(yù)訓(xùn)練相比,增益相對更小。這有什么具體原因嗎?是的,ImageNet ++初始化是從檢查點(diǎn)獲得的,在該檢查點(diǎn)使用了另外3億張未標(biāo)記的圖像。
3、自監(jiān)督預(yù)訓(xùn)練 vs 自訓(xùn)練
有監(jiān)督的 ImageNet預(yù)訓(xùn)練會損害最大規(guī)模數(shù)據(jù)集和高強(qiáng)度數(shù)據(jù)增強(qiáng)下的訓(xùn)練效果。但是自監(jiān)督的預(yù)訓(xùn)練呢?自監(jiān)督學(xué)習(xí)(不帶標(biāo)簽的預(yù)訓(xùn)練)的主要目標(biāo)是構(gòu)建一種通用的表征,這種表征可以遷移到更多類型的任務(wù)和數(shù)據(jù)集中。為研究自監(jiān)督學(xué)習(xí)的效果,作者使用了完整的COCO數(shù)據(jù)集和最高強(qiáng)度的增強(qiáng)。目的是將隨機(jī)初始化與使用了SOTA自監(jiān)督算法預(yù)訓(xùn)練的模型進(jìn)行比較。在實(shí)驗(yàn)中使用SimCLR的檢查點(diǎn),然后在ImageNet上對其進(jìn)行微調(diào)。由于SimCLR僅使用ResNet-50,因此RetinaNet檢測器的主干網(wǎng)絡(luò)用ResNet-50替換。結(jié)果如下:
在這種情況下,我們觀察到自監(jiān)督下的預(yù)訓(xùn)練會損害訓(xùn)練效果,但自訓(xùn)練仍可以提高性能。
1、預(yù)訓(xùn)練和通用的特征表征
我們看到,預(yù)訓(xùn)練(監(jiān)督以及自監(jiān)督)并不總可以給結(jié)果帶來更好的效果。實(shí)際上,與自訓(xùn)練相比,預(yù)訓(xùn)練總是表現(xiàn)不佳。這是為什么?為什么ImageNet預(yù)訓(xùn)練的模型對COCO數(shù)據(jù)集的目標(biāo)檢測效果反而不好?為什么通過自監(jiān)督預(yù)訓(xùn)練學(xué)習(xí)表征無法提高性能?預(yù)訓(xùn)練并不能理解當(dāng)下的任務(wù),并可能無法適應(yīng)。分類問題比目標(biāo)檢測問題容易得多。在分類任務(wù)上預(yù)訓(xùn)練的網(wǎng)絡(luò)是否可以獲得目標(biāo)檢測任務(wù)所需要的所有信息?用我喜歡的表達(dá)方式來說:即使這些任務(wù)只是彼此的子集,不同的任務(wù)也需要不同級別的粒度。
2、聯(lián)合訓(xùn)練
正如作者所言,自訓(xùn)練范式的優(yōu)勢之一是它可以聯(lián)合監(jiān)督和自訓(xùn)練目標(biāo)進(jìn)行訓(xùn)練,從而解決它們之間不匹配的問題。為了解決任務(wù)間由于差異導(dǎo)致的不匹配問題呢,我們也可以考慮聯(lián)合訓(xùn)練的方法,例如聯(lián)合訓(xùn)練ImageNet和COCO這兩個數(shù)據(jù)集?作者在實(shí)驗(yàn)中使用了與自訓(xùn)練相同的參數(shù)設(shè)置,發(fā)現(xiàn)ImageNet的預(yù)訓(xùn)練可獲得+ 2.6AP的增益,但使用隨機(jī)初始化和聯(lián)合訓(xùn)練可獲得+ 2.9AP的更大增益。而且,預(yù)訓(xùn)練、聯(lián)合訓(xùn)練和自訓(xùn)練都是加性的。使用相同的ImageNet數(shù)據(jù)集,ImageNet的預(yù)訓(xùn)練獲得+ 2.6AP的增益,預(yù)訓(xùn)練+聯(lián)合訓(xùn)練再獲得+ 0.7AP的增益,而預(yù)訓(xùn)練+聯(lián)合訓(xùn)練+自訓(xùn)練則獲得+ 3.3AP的增益。
3、任務(wù)調(diào)整的重要性
正如我們在上文所見,任務(wù)調(diào)整對于提高性能非常重要。論文《Objects365: A Large-scale, High-quality Dataset for Object Detection》指出了類似的發(fā)現(xiàn),在Open Images數(shù)據(jù)集上進(jìn)行預(yù)訓(xùn)練會損害COCO的性能,盡管兩者都帶有邊框標(biāo)記。這意味著,我們不僅希望任務(wù)是相同的,而且標(biāo)記最好也是相同的,以使預(yù)訓(xùn)練對結(jié)果真正帶來益處。同時,作者指出了另外兩個有趣的現(xiàn)象:
1)ImageNet的預(yù)訓(xùn)練模型,即使帶有額外的人工標(biāo)簽,其效果也比自訓(xùn)練差。
2)借助高強(qiáng)度的數(shù)據(jù)增強(qiáng)方法(Augment-S4),使用PASCAL(訓(xùn)練+ 增強(qiáng)數(shù)據(jù)集)進(jìn)行訓(xùn)練實(shí)際上會損害準(zhǔn)確率。同時,通過對同一數(shù)據(jù)集進(jìn)行自訓(xùn)練而生成的偽標(biāo)簽可提高準(zhǔn)確性。
4、自訓(xùn)練的可擴(kuò)展性、通用性和靈活性
從作者進(jìn)行的所有實(shí)驗(yàn)中,我們可以得出以下結(jié)論:
在靈活性方面,自訓(xùn)練在每種條件設(shè)置下均能很好地發(fā)揮作用,無論是少數(shù)據(jù)狀態(tài)、多數(shù)據(jù)狀態(tài)、弱數(shù)據(jù)增強(qiáng)還是強(qiáng)數(shù)據(jù)增強(qiáng)。
自訓(xùn)練不依賴于模型架構(gòu)也不依賴于數(shù)據(jù)集。它可以與ResNets、EfficientNets、SpineNet等不同架構(gòu)以及ImageNet、COCO、PASCAL等不同數(shù)據(jù)集很好地結(jié)合使用。
一般意義上來看,無論預(yù)訓(xùn)練是失敗還是成功,自訓(xùn)練效果都是很好的。
在可擴(kuò)展性方面,當(dāng)我們擁有更多帶標(biāo)簽的數(shù)據(jù)和更好的模型時,自訓(xùn)練被證明表現(xiàn)良好。
5、自訓(xùn)練的局限性
盡管自訓(xùn)練可以帶來好處,但它也有一些局限性:
1)與在預(yù)訓(xùn)練模型上進(jìn)行微調(diào)相比,自訓(xùn)練需要消耗更多的計(jì)算量。
2)預(yù)訓(xùn)練的加速范圍是1.3倍至8倍,具體取決于預(yù)訓(xùn)練模型的質(zhì)量、數(shù)據(jù)增強(qiáng)的強(qiáng)度和數(shù)據(jù)集的大小。
3)自訓(xùn)練并不能完全替代遷移學(xué)習(xí)和微調(diào),這兩種技術(shù)將來也會被大量使用。
《Rethinking Pre-training and Self-training》這篇論文提出了很多有關(guān)預(yù)訓(xùn)練、聯(lián)合訓(xùn)練、任務(wù)調(diào)整和普遍表征的基本問題。解決這些問題比建立具有數(shù)十億參數(shù)的模型更為重要,可以幫助我們獲得更好的直覺,以了解深度神經(jīng)網(wǎng)絡(luò)做出的決策。
雷鋒網(wǎng)雷鋒網(wǎng)雷鋒網(wǎng)
原文鏈接:https://medium.com/@nainaakash012/rethinking-pre-training-and-self-training-53d489b53cbc
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。