ImageNet時代將終結?何愷明新作:Rethinking ImageNet Pre-training

譯者 | 劉暢 林椿眄

整理 | Jane

出品 | AI科技大本營

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 這樣大數據集的成本被忽略掉了,而在數據集上進行預訓練步驟的成本也是龐大的。如果在大規模的分類數據集上預訓練的收益呈指數型下降減少,那麼在目標域上收集數據將會是更有效的做法。
  • 我們應該追求通用的模型性能嗎?毫無疑問,我們的目標是模型能夠學習到通用的特徵表徵。我們所取得的結果也沒有偏離這一目標。其實,我們的研究表明在計算機視覺領域,我們應該更加註意評估預訓練的特徵(例如對於自監督過程的特徵學習),就像現在我們學到的那樣,即使是隨機初始化過程也能得到出色的結果表現。

-【完】-

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