1. 程式人生 > >Rethinking ImageNet Pre-training

Rethinking ImageNet Pre-training

何愷明、Ross Girshick等大神於2018-11-21日晚在arxiv貼出一篇重磅論文—Rethinking ImageNet Pre-training,讓似乎本已經平靜的ImageNet湖面再掀波瀾。
論文地址:https://arxiv.org/abs/1811.08883

結論

  • 無需改變結構,可以從頭開始訓練目標任務
    Training from scratch on target tasks is possible without architectural changes.
  • 從頭開始訓練需要更多迭代來達到完全收斂
    Training from scratch requires more iterations to sufficiently converge.
  • 在大多數情況下,從頭開始訓練不比 ImageNet 預訓練效果更差(少於10k COCO影象效果會降低)
    Training from scratch can be no worse than its ImageNet pre-training counterparts under many circumstances, down to as few as 10k COCO images.
  • ImageNet 預訓練在目標任務上能加速收斂
    ImageNet pre-training speeds up convergence on the target task
  • ImageNet 預訓練並不有助於減小過擬合,除非資料非常非常少

    ImageNet pre-training does not necessarily help reduce overfitting unless we enter a very small data regime.
  • 如果目標任務是比分類更敏感的定位任務,ImageNet 預訓練作用很小
    ImageNet pre-training helps less if the target task is more sensitive to localization than classification

實驗設定

  • 模型結構:研究ResNet/ ResNeXt+FPN主體結構 的Mask R-CNN,,採用端到端的方式來一起訓練 RPN 和 Mask R-CNN。此外,GN/SyncBN 代替所有 frozen BN 層。為了公平比較,在研究過程中我們對預訓練模型同樣採用 GN 或 SyncBN 正則化策略進行微調。
  • 學習率方案:Detectron 中原始版本的 Mask R-CNN 模型進行了 90k 步的微調迭代過程(1×schedule)或 180k 步的迭代(2×schedule)。本文采用相似的術語,探究更長的訓練過程。不論最終的迭代步數是多少,我們都遵循 2×schedule 策略,即在最後的 60k 和 20k 時將學習率分別降低 10倍。在實驗中,我們發現對於第一個(大)學習率,訓練更長的時間是有用的,但對於較小的學習率,訓練太久往往會導致過擬合現象的發生。
  • 超引數:其他所有的超引數都遵循 Detectron 中的設定。特別指出,初始學習率設定為 0.02(採用 linear warm-up 策略),權重衰減率為 0.0001,動量引數設定為 0.9。所有模型採用 synchronized SGD在 8 個 GPU 上訓練,每個 GPU 上 mini-batch 大小為 2。

結果與分析

Training from scratch to match accuracy

  • 實驗發現,當只使用 COCO 資料集時,從頭開始訓練的模型可達到預訓練+微調的精度。
  • 我們在 118k的COCO train2017 上訓練模型,並在 5k的COCO val2017 上驗證模型的效能。對於檢測任務,我們評估了 bbox 和 AP(Aversage Precision)指標;對於例項分割,我們評估了mask AP 。

Baselines with GN and SyncBN

  • 下圖 分別展示了 ResNet50+GN,ResNet101+GN 以及 ResNet50+SynaBN 在驗證集上的 bbox 和 AP 效能曲線。 每張圖上我們都對比隨機初始化訓練的模型和預訓練+微調的模型之間的差異。
    在這裡插入圖片描述
    在這裡插入圖片描述
    在這裡插入圖片描述
  • 從上圖曲線上可以看出,在標準的 COCO 資料集上,從頭開始訓練的模型在 bbox 和 AP 上的表現,完全能達到預訓練+微調的模型效能。而 ImageNet 資料集的預訓練主要能夠加速模型的收斂速度,但並沒有證據表明能提高模型最終的檢測精度。

Multiple detection metrics

  • 進一步比較了從頭開始訓練和預訓練模型在不同的檢測標準上的效能,包括bbox、AP, A P 50 AP_{50} (IOU>=0.5)、 A P 75 AP_{75} (IOU>=0.75),如下圖所示。
    在這裡插入圖片描述
  • 從上表可看出,從頭開始訓練結果都不比預訓練結果差,甚至更優,尤其是 A P 75 AP_{75} 優勢更明顯,達到1.0

Large models trained from scratch

  • 見原文。。。。。。

Models without BN/GN — VGG nets

  • 預訓練模型訓練 9× schedule後,bbox AP為35.6;從頭開始訓練 11× schedule 後,bbox Ap為35.2。(注:訓練時間更長都會導致AP下降)

Training from scratch with less data

在這裡插入圖片描述

  • 上圖最左圖在更多次迭代後AP下降,表明ImageNet 預訓練並不有助於減小更擬合
  • 35k(~1/3) COCO訓練集上,從頭開始訓練與預訓練都達到了36.3 AP (match)
  • 10K(~1/10)COCO訓練集上,預訓練在60k次迭代後AP為26.0,從頭開始訓練在220次迭代後AP為25.9 (match)
  • 1k(~1/100)COCO訓練集上,在loss曲線上從頭開始訓練並沒有比預訓練並沒有更差,但是收斂更慢。然而,在驗證集上,預訓練AP為9.9,從頭開始訓練為3.5。作者認為可能是資料缺乏導致了過擬合 (down)
  • 在VOC資料集上,預訓練模型在迭代18k次後mAP為82.7,從頭開始訓練144k次迭代後mAP為77.6,作者懷疑VOC資料集上例項(類別)較少,與COCO小資料集一樣,都是由於資料不夠而產生的不好影響 (down)

幾個關鍵問題

  • ImageNet 預訓練是否必需?NO。如果我們有足夠的目標資料和計算資源的話,也許我們可以不依賴 ImageNet 的預訓練。我們的實驗結果表明,ImageNet 預訓練可以幫助模型加速收斂過程,但是並不一定能提高最終的準確性,除非資料集特別小(例如,<10k COCO images)。這表明,在未來的研究中,收集目標資料的標註資訊(而不是預訓練資料)對於改善目標任務的表現是更有幫助的。
  • ImageNet有用嗎?Yes。ImageNet 預訓練一直以來是計算機視覺領域許多工效能輔助工具。它能夠減少了訓練的週期,更容易獲得更好的結果,經預訓練的模型能夠多次使用,訓練成本很低。此外,經預訓練的模型能夠有更快的收斂速度。我們相信 ImageNet 預訓練仍然有助於計算機視覺研究。
  • 我們需要大資料嗎?Yes。但如果我們考慮資料收集和清理的成本的話,一個通用的大規模分類的資料集並不是理想的選擇。因為收集諸如 ImageNet 這樣大資料集的成本被忽略掉了,而在資料集上進行預訓練步驟的成本也是龐大的。如果在大規模的分類資料集上預訓練的收益呈指數型下降減少,那麼在目標域上收集資料將會是更有效的做法。
  • 我們應該追求通用的模型效能嗎?Yes。我們的目標是模型能夠學習到通用的特徵表示。我們所取得的結果也沒有偏離這一目標。其實,我們的研究表明在計算機視覺領域,我們應該更加註意評估預訓練的特徵(例如對於自監督過程的特徵學習),就像現在我們學到的那樣,即使是隨機初始化過程也能得到出色的結果。