Google 最新的研究成果 BERT 的熱度還沒褪去,大家都還在討論是否 ImageNet 帶來的預訓練模型之風真的要進入 NLP 領域了。如今,Facebook AI Research 的何愷明、Ross Girshick 及 Piotr Dollar 三位大佬共同完成的最新研究論文 Rethinking ImageNet Pre-training,卻引起了大家對 CV 領域預訓練必要性的熱議。
有人說大神的研究直接終結了“train from scratch”問題,激發了深度學習領域的活力;有人認為在某些情況下 ImageNet 預訓練模型也不再能提升最終的效果;有人發出感慨“是時候需要重新思考了”,也有人表示“ImageNet 時代或將很快過去”。而在這篇 Paper 中,大神們也在最后寫到“希望這篇文章給大家在重新思考計算機視覺領域中像 ImageNet 預訓練模型類似的方法時,提供新的實驗證據和討論觀點。預訓練加微調的方法是否真的是萬能的?”
下面AI科技大本營就先為大家分析一下這篇 paper 的方法、實驗及主要貢獻,也歡迎大家留言討論~
摘要
在目標檢測和實例分割兩個領域,我們使用隨機初始化方法訓練的模型,在 COCO 數據集上取得了非常魯棒的結果。其結果并不比使用了 ImageNet 預訓練的方法差,即使那些方法使用了 MaskR-CNN 系列基準的超參數。在以下三種情況,得到的結果仍然沒有降低:(1)僅使用 10% 的訓練數據;(2)使用更深和更寬的模型以及(3)使用多個任務和指標。
實驗表明,使用 ImageNet 的預訓練模型可以在訓練早期加快收斂速度,但不一定能帶來正則化的效果或最終提高目標任務的準確率。文中闡述了在不使用任何額外數據的情況下,COCO 數據集上物體檢測結果為 50.9 AP 的方法,而這一結果與使用 ImageNet 預訓練的 COCO 2017 競賽方法結果相同。根據這些觀察還發現,使用 ImageNet 預訓練這一方法并不能帶來最終效果的提升。
引言
深度卷積神經網絡方法為計算機視覺領域帶來了新的活力,換言之,是因為發現使用預訓練任務中學到的特征表示,能夠將其中有用的信息傳遞給另一目標任務。近年來,一個通用的方法(模式)是使用大規模數據(例如 ImageNet )對模型進行預訓練,然后在具有較少訓練數據的目標任務上對模型進行微調。預訓練模型已經在許多任務上實現了最先進(state of the art)的結果,包括物體檢測,圖像分割和動作識別等任務。但這種方法(預訓練加微調)真的能解決計算機視覺領域的問題嗎?我們提出了質疑。因此,通過實驗展示了在 COCO 數據集上,我們使用隨機初始化方法訓練取得了和使用 ImageNet 預訓練方法相媲美的結果,而且我們還發現僅使用 10% 的COCO 數據也能訓練到差不多的結果。
另外,我們還發現可以從零開始訓練一個大型模型,即使這個模型比 ResNet101 還大 4 倍,也不會過擬合。基于這些實驗,得出以下三個結論:
使用 ImageNet 預訓練能夠加快收斂速度,特別是在訓練初期。但是隨機初始化的訓練方法可以在訓練了一段時間后趕上,該時間大致相當于 ImageNet 預訓練加上微調的時間之和。 由于在研究目標任務時經常忽略 ImageNet 預訓練的成本,因此會有使用預訓練能縮短時間成本的假象,相反也忽略了隨機初始化訓練方法的真正作用。
使用 ImageNet 預訓練的方法并不能自動提供更好的正則化效果。 當用較少的圖像(低至 COCO 數據集的 10%)進行訓練時,我們發現必須選擇新的超參數來進行微調(微調初始參數來自預訓練)以避免過擬合。 但是,當使用這些初始超參數進行隨機初始化訓練時,該模型可以達到使用預訓練方法的精度并且不需要額外的正則化,即使僅使用 10% 的 COCO 數據。
當目標任務/指標是需要更多使用局部空間信息來進行預測的任務時,ImageNet 預訓練方法并沒有展現出更強大的地方。我們觀察到,當從頭開始訓練時,高重疊區域的 AP 會明顯改善;我們還發現了需要精準空間定位的關鍵點 AP,從頭開始收斂速度相對較快。直觀地說,基于分類的,類似 ImageNet 圖片集的預訓練任務和對局部敏感的目標任務,三者之間的差異可能會限制預訓練方法發揮其功能。
方法
我們的目標是通過控制實驗(有無ImageNet預訓練)來探究ImageNet預訓練對模型性能的影響。考慮到這個問題,模型結構的改進并不是我們這項研究的目的;實際上,為了能夠更好地理解ImageNet預訓練的作用,我們將基于當前最典型的模型結構,以最少的微調操作來探究預訓練操作對模型性能的影響。下面,我們具體闡述在此研究中兩個必要修改。
▌正則化
在圖像分類任務中,正則化的引入能夠輔助模型的優化過程。在以往的研究中,有效的正則化策略包括標準的參數初始(normalized parameter initialization)和激活正則化層(activation normalization layers)。對于目標檢測任務,在不采用預訓練模型而從頭開始訓練一個檢測器時,往往會面臨與從頭訓練一個分類器相似的問題。
批標準化(BN)是當前最流行的正則化方法,但在從頭開始訓練一個模型時,它的作用也變得微乎其微。特別地,不同于圖像分類任務中的輸入,目標檢測器通常使用高分辨率的圖像輸入進行訓練,BN策略的引入雖然可以減少批量大小內存,但是小批量的輸入會嚴重降低模型的準確性。
在這項研究中,我們應用最近提出的兩種正則化策略,它們能夠有助于緩解小批量輸入的問題:
Group Normalization (GN):這是我們最近提出的,作為BN的一種替代策略。GN方法的計算與輸入的批量維度無關,因此引用該正則化方法時,模型準確性對輸入的批量大小并不敏感。
Synchronized Batch Normalization (SyncBN):這是BN的一種跨設備(GPU)實現,能夠統計多個設備的批量大小情況。當使用多個GPU時,該正則化方法能夠增加BN的有效批量大小,從而避免小批量輸入的問題。
我們的實驗表明,當從頭開始訓練一個檢測器時,GN和SyncBN的正則化策略都是有效的。此外,我們還進一步探索了,使用合適的隨機正則初始化策略,基于VGG架構的目標檢測器能夠在沒有BN或GN方法的情況進行訓練。
▌收斂性
顯然,通過隨機初始化過程的模型收斂速度與經ImageNet預訓練初始化的收斂速度是相去甚遠的。因為經預訓練后,模型可能直接利用已學習的低級特征(邊緣、紋理等)而無需重新學習。此外,從頭開始訓練的模型需要學習目標的低級和高級語義,這可能需要更多的迭代過程才能更好地收斂。因此,在這項研究中我們考慮三種不同的sample定義:分別是圖像和實例數量,以及在所有訓練迭代過程中的像素數量。下圖2顯示了在COCO數據集上,一個從頭開始訓練的模型相比于預訓練的模型,需要超過3倍的迭代數才能達到收斂狀態。
圖2:在所有訓練迭代過程中模型所見到的圖像、實例和像素的總數。其中綠條表示經預訓練微調的模型,而紫色條表示隨機初始化的模型。
我們的實驗結果表明,從頭開始訓練的檢測器,在總樣本數量足夠大(像素目標而言)的情況下,以隨機初始化開始訓練也能很好地收斂,其性能也能夠匹配上經預訓練微調的模型。
實驗設置
我們對基準模型進行了微小的改變,總的來說,我們的基準設置和超參數都遵循 Mask R-CNN模型,你可以在開源的 Detectron項目中找到。此外,我們額外添加了正則化策略,并改變了模型迭代的步數,具體如下:
模型結構:我們采用 Mask R-CNN,ResNet或 ResNeXt,并采用特征金字塔網絡(FPN)作為我們模型的主體結構,并采用端到端的方式(end-to-end)來訓練 RPN和 Mask R-CNN。此外,GN/SyncBN代替所有 frozen BN層(逐通道的仿射變換)。為了公平比較,在研究過程中我們對預訓練模型同樣采用 GN或 SyncBN正則化策略進行微調。
學習率方案:Detectron中原始版本的 Mask R-CNN模型進行了 90k步的微調迭代過程(1×schedule)或 180k步的迭代(2×schedule)。對于本文中的模型,我們采用相似的術語,探究更長的訓練過程。例如,所謂的 6×schedule是帶 540k步迭代的微調過程。不論最終的迭代步數是多少,我們都遵循 2×schedule策略,在最后的 60k和 20k時將學習率降低 10倍(即總是在運行相同的迭代步數后降低學習率)。在實驗中,我們發現對于第一個(大)學習率,訓練更長的時間是有用的,但對于較小的學習率,訓練太久往往會導致過擬合現象的發生。
超參數:其他所有的超參數都遵循 Detectron中的設置。特別是,初始學習率設置為 0.02,并采用 linear warm-up策略,權重衰減率為 0.0001,動量參數設定為 0.9。我們在 8 個 GPU上,采用 synchronized SGD,每個 GPU上 mini-batch大小為 2,來訓練所有模型。
默認情況下,Detectron中的 Mask R-CNN在測試過程不使用數據擴充操作,在訓練過程也只引入水平翻轉的增強操作。在此,我們使用相同的設置,在無特別說明的情況下,圖像較短邊的像素值是 800。
實驗結果與分析
▌從頭開始訓練以匹配準確性
實驗中,我們發現當只使用 COCO數據集時,從頭開始訓練的模型性能是能夠匹配預訓練模型的性能。我們在 COCO train2017上訓練模型,并在 COCO val2017上驗證模型的性能。訓練數據集共有 118k張圖片,而驗證集包含 5k張圖片。對于檢測任務,我們評估了 bbox和 AP(Aversage Precision)指標;對于實例分割,我們以 mask AP作為評價標準。
Baselines with GN and SyncBN
下圖 3,圖 4和圖 5分別展示了 ResNet50+GN,ResNet101+GN 以及 ResNet50+SynaBN 在驗證集上的 bbox和 AP性能曲線。每張圖上我們的偶可以對比隨機初始化訓練的模型和經預訓練微調的模型之間的性能差異。可以看到,在標準的 COCO數據集上,從頭開始訓練的模型在 bbox和 AP上的表現,完全可以匹配經預訓練微調的模型性能。而 ImageNet數據集的預訓練主要能夠加速模型的收斂速度,并不會或很少提高模型最終的檢測性能。
圖 3在 COCO val2017數據集上,以 ResNet50+GN為主體結構的 Mask R-CNN模型的 bbox和 AP性能曲線。
圖 4 在 COCO val2017數據集上,以 ResNet101+GN為主體結構的 Mask R-CNN模型的 bbox和 AP性能曲線。
圖 5 在 COCO val2017數據集上,以 ResNet50+SyncBN為主體結構的 Mask R-CNN模型的 bbox和 AP性能曲線。
Multiple detection metric
下圖 6我們進一步比較了兩種情況下模型在多種檢測指標上的性能,包括分別在 IoU閾值為 0.5和 0.75的情況下,Mask R-CNN模型的 box-level AP,segmentation-level AP。
圖 6 從頭開始訓練 Mask R-CNN+FPN+GN為結構的模型與經預訓練的模型之間在多種檢測指標上的性能對比
Models without BN/GN--VGG nets
為了研究模型性能的泛化能力,我們以 VGG-16作為主體結構,參考先前 Faster R-CNN模型的實現過程,沒有引入 FPN架構,并采用標準的超參數方案,從頭開始訓練模型,并將其與在 ImageNet上預訓練的模型性能進行比較分析。我們發現,即使經 ImageNet預訓練的模型,其收斂的速度也很緩慢,而從頭開始訓練的模型最終也能達到與之相匹配的檢測性能。
▌用更少的數據從頭開始訓練
實驗過程中,我們還發現,隨著數據量的減少,從頭開始訓練的模型性能并不會隨之下降,仍然還能取得與預訓練模型相匹配的性能。
35k COCO training samples vs 10k COCO training samples
我們分別從 COCO數據集中隨機選擇 35k和 10k張訓練數據,用于從頭開始訓練或基于預訓練模型進行微調操作。下圖 7展示了二者在更少的訓練數據上的 bbox和 AP性能對比。可以看到,盡管用更少的數據,從頭開始訓練的模型最終也能趕上預訓練模型的性能。此外,經 ImageNet預訓練并不會有助于防止過擬合現象的發生。
圖 7 以更少的 COCO樣本訓練的 Mask R-CNN+ResNet50-FPN+GN模型在 val2017上的 bbox和 AP性能。左圖:以 35k COCO樣本訓練,采用默認的超參數設置,模型在改變學習率的過程中發生了過擬合現象。中圖:以 35k COCO樣本訓練,采用與隨機初始化模型相同的超參數設置。右圖:以 10k COCO樣本訓練,采用與隨機初始化模型相同的超參數設置。
此外,我們還在 COCO和PASCAL VOC數據集上進行了 breakdown regime實驗,詳細的內容可以查閱我們的論文。
結論與討論
在這項研究中,我們主要研究了 ImageNet預訓練對模型性能的作用,并通過消融控制實驗來分析不同正則化方法對模型性能及收斂速度的影響,總結如下:
在不需要對模型結構進行大幅度修改的情況下,可以在一個新的任務中從頭開始訓練一個模型。
從頭開始訓練一個模型通常需要更多的迭代步數才能獲得充分的收斂。
從頭開始訓練的模型性能能夠匹配的上經預訓練的模型性能,即使是在只有 10k COCO 訓練數據的情況下。
經 ImageNet預訓練的模型,在一個新的任務中能夠加快收斂速度。
經 ImageNet預訓練的模型并不一定有助于減少過擬合現象的發生,除非我們采用非常小的數據。
如果我們的目標是比定位和分類更敏感的任務,那么 ImageNet預訓練對于模型的幫助將變得更小。
基于這些觀察,我們嘗試回答如下幾個關鍵性的問題,希望能夠鼓勵研究者重新審視并思考ImageNet預訓練的作用:
ImageNet預訓練是否有必要?事實并非如此,如果我們有足夠的目標數據和計算資源的話,也許我們可以不依賴 ImageNet的預訓練。我們的實驗結果表明,ImageNet預訓練可以幫助模型加速收斂過程,但是并不一定能提高最終的準確性,除非數據集特別小(例如,<10k COCO images)。這表明,在未來的研究中,收集目標數據的標注信息(而不是預訓練數據)對于改善目標任務的表現是更有幫助的。
ImageNet有用嗎?確實是有用的。ImageNet預訓練一直以來是計算機視覺領域許多任務性能輔助工具。它能夠減少了訓練的周期,更容易獲得有前途的結果,經預訓練的模型能夠多次使用,訓練成本很低。此外,經預訓練的模型能夠有更快的收斂速度。我們相信 ImageNet預訓練仍然有助于計算機視覺研究。
我們需要大數據嗎?的確需要。但如果我們考慮數據收集和清理的成本的話,一個通用的大規模分類的數據集并不是理想的選擇。因為收集諸如 ImageNet這樣大數據集的成本被忽略掉了,而在數據集上進行預訓練步驟的成本也是龐大的。如果在大規模的分類數據集上預訓練的收益呈指數型下降減少,那么在目標域上收集數據將會是更有效的做法。
我們應該追求通用的模型性能嗎?毫無疑問,我們的目標是模型能夠學習到通用的特征表征。我們所取得的結果也沒有偏離這一目標。其實,我們的研究表明在計算機視覺領域,我們應該更加注意評估預訓練的特征(例如對于自監督過程的特征學習),就像現在我們學到的那樣,即使是隨機初始化過程也能得到出色的結果表現。
-
Google
+關注
關注
5文章
1765瀏覽量
57536 -
計算機視覺
+關注
關注
8文章
1698瀏覽量
45993 -
深度學習
+關注
關注
73文章
5503瀏覽量
121170
原文標題:ImageNet時代將終結?何愷明新作:Rethinking ImageNet Pre-training
文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論