Computer Vision 雜誌對何愷明 Rethinking ImageNet Pre-training 的最新評論
雷鋒網 AI 科技評論按,2018 年 11 月,何愷明在 arxiv 上提交論文 「Rethinking ImageNet Pre-training」,這篇論文由他與 Ross Girshick,Piotr Dollar 合作,系統地對預訓練模型是不是必須的問題進行了研究,在坊間引起諸多討論。兩個多月過去,Computer Vision News 也對這篇文章開始了一輪 review,全面且系統地介紹了這篇 paper 中的研究方法、創新點、實驗結果等諸多關鍵點,雷鋒網 AI 科技評論將這篇 review 整理如下,以饗讀者。
「Rethinking ImageNet Pre-training」這篇驚艷的論文向我們展示了:使用從隨機初始化的狀態開始訓練的標準模型在 COCO 數據集上也可以在目標檢測和實例分割任務中取得十分出色的結果,其結果可以與使用 ImageNet 預訓練的模型所得到的結果相媲美。研究人員驚奇地發現,使用隨機初始化的模型具有很強的魯棒性。在以下三種情況下,模型的結果仍然能保持在比較高的水平上:(1)即使僅僅使用 10% 的訓練數據,(2)使用更深和更寬的模型,(3)處理多任務並使用多種評價指標。
實驗表明,使用 ImageNet 預訓練可以在訓練早期加速收斂,但不一定能起到正則化的作用或提高模型在最終的目標任務上的準確率。
引言從 RCNN 驚天出世開始,在早期的將深度學習應用於目標檢測的任務中,使用在 ImageNet 數據集上為圖像分類預訓練的神經網路,然後再在數據集上進行調優,這取得了許多突破。受到這些結果的啟發,目前大多數用於目標檢測的神經網路和許多其它的計算機視覺演算法都遵循「先使用預訓練初始化,再進行調優」的訓練範式。學界最近發表的一些論文在大小相當於 6-3000 倍 ImageNet 的數據集(JTF 為 6 倍,ImageNet-5k 為 300 倍,Instagram 為 3000 倍)上進行了預訓練,從而又進一步推廣了這樣的訓練範式。儘管這種範式在圖像分類訓練中展現出了相當大的性能提升,但它在目標檢測任務中卻收效甚微(提升大約能達到 1.5%)。而相對於預訓練的數據集,目標檢測任務的數據集越大,這種提升就越小。
研究方法和創新點在本文中,作者說明了:
1. 儘管使用 ImageNet 進行預訓練可以加速模型訓練收斂速度,在給定充足的訓練時間的情況下,從頭開始訓練的模型也可以得到與前者相當的準確率。請注意,在從頭開始訓練的過程中,網路必然會學到在預訓練過程中通常會學到的低級和中級特徵(如邊緣、紋理等特徵)。
2. 當我們認為預訓練的訓練範式更加高效時,我們往往並沒有考慮到預訓練所需要的時間。
3. 本文作者說明了:如果我們謹慎地選取超參數從而克服過擬合,那麼,從隨機初始化的狀態開始在僅僅 10% 的 COCO 數據集上進行訓練可以得到與使用預訓練參數進行初始化的訓練過程旗鼓相當的結果。在使用與預訓練的網路相同的超參數設置的情況下,即使在僅僅 10% 的數據集上進行訓練,隨機初始化的訓練也能得到幾乎相同的結果。
4. 當目標任務/評價指標對於局部的空間信息更敏感時,在 ImageNet 上進行預訓練幾乎沒有作用。
對於目前最先進的工作來說,本文得到的結果是十分令人驚訝的,它們會對「使用 ImageNet 進行預訓練的訓練範式究竟有多大影響」提出挑戰。使用 ImageNet 預訓練的範式在目前以及在未來的一段時間內將仍然繼續成為從業人員的首選方案,特別是在以下兩種情況下 :(1)當開發者擁有的用於在其目標任務中從頭開始訓練的數據和計算資源不足時;(2)得益於前人所做的標註工作、以及使用 ImageNet 預訓練過的模型較為容易獲得,ImageNet 預訓練被廣泛認為是一種「免費開放」的資源。
模型實現接下來,讓我們研究一下本文的工作所使用的網路框架、學習率、優化和歸一化方法以及超參數設置:
網路架構:
本文研究了使用 ResNet 的 Mask R-CNN、ResNeXt+ 特徵金字塔網路(FPN)主幹架構。
歸一化方法:
那些人們通常在訓練標準的預訓練網路時所使用的歸一化方法往往並不太適用於檢測和分割任務的訓練,因為這些歸一化方法需要載入大量的訓練數據(解析度非常高的圖像,並且為每個像素都打上了標籤)。這將導致我們在每一批中只能處理數量非常有限的圖像(因為顯存有限),從而使正則化非常困難。而我們通過調優範式網路可以避免這種困難,它能利用預訓練時學到的歸一化參數。
在從隨機初始化狀態開始訓練的檢測和分割任務中,作者採用了以下兩種歸一化方法:
1.群組歸一化(GN):執行獨立於批維度的計算,其準確率對批大小不敏感 。
2.同步批量歸一化(SyncBN):是批量歸一化的一種實現方式,它通過使用多個 GPU 運算提升了批量歸一化(BN)時有效批處理的規模。
註:群組歸一化(GN)也是本文作者何愷明於 2018 年發表的一份工作(https://arxiv.org/abs/1803.08494)。
學習率:
學習率的更新策略是,學習率更新策略是在最後 60k 迭代中將學習率降低 10 倍。在最後的 20k 次迭代中再降低 10 倍。作者指出,沒有必要在訓練結束前更早地降低學習率,也沒有必要長時間以較低的學習率進行訓練,這隻會導致過擬合。
超參數:
所有其它(學習率之外的)超參數都遵循 Detectron 中的超參數。具體而言,初始學習率是 0.02(使用線性的熱啟動操作,https://arxiv.org/abs/1706.02677)。權重衰減為 0.0001,動量衰減為 0.9。所有的模型都在 8 個 GPU 上使用同步的隨機梯度下降進行訓練,每個 GPU 的 Mini-batch 的規模為 2 張圖像。根據 Detectron 的默認設置,Mask R-CNN 在測試不使用數據增強技術,僅僅訓練中使用水平翻轉增強。在較短的邊上,圖像的尺寸是 800 個像素點。
實驗結果實際上,從下圖中可以看出,在給定充足的數據的情況下,任何網路都可以被訓練到較好的狀態。亮藍色的橫條代表用於 ImageNet 預訓練的數據量,深藍色的橫條代表調優所使用的數據量,紫色的橫條代表從頭開始訓練所使用的數據量。最上方的一欄橫條代表的是用於訓練的訓練過的圖像數量;中間一欄代表物體的數量(每個圖像中可能包含不止一個物體);最下面的紫色橫條代表所處理的所有像素點的數量(不同的數據集中的圖像規模差別很大),我們可以將其換算為數據的體量。讀者可以從最下方的一欄中的紫色橫條中看出,整體而言,網路處理的經過了預訓練再進行調優的數據量和從頭開始訓練(隨機初始化)處理的數據量是相當的。
如下圖所示,在驗證集上的邊界框平均精度 bbox AP 曲線被並排排列了出來,圖中顯示了以 ResNet-101(R101)為主幹架構,以及使用 ResNet-50(R50)作為主幹架構的實驗結果。每一組曲線都對比了從隨機初始化開始訓練的模型與先在 ImageNet 上進行預訓練再進行調優的模型的性能。
下圖則將對比使用 Mask R-CNN 對不同系統從隨機初始化開始訓練與先進行預訓練再調優的方法的比較,具體包括:(1)使用 FPN 和 GN 的對比基線,(2)使用訓練時多尺度增強的對比基線,(3)使用級聯 RCNN 和訓練時增強的對比基線,(4)加上測試時多尺度增強的對比基線。左圖:R50;右圖:R101。
作者重複使用不同的方法、不同的配置和不同的架構進行訓練,並且將從隨機初始化狀態開始訓練的網路的性能與先預訓練再進行調優的網路性能進行比較,說明了無論是從頭開始還是使用預訓練的網路,整體而言,所需要的數據都是等價的,這不可能僅僅是偶然。實驗所使用的方法也是相同的。
作者進行的另一項實驗旨在研究訓練預訓練的網路去找到最優的超參數設置。作者使用了通過訓練預訓練網路發現的超參數設置去訓練他們從頭開始訓練的隨機初始化的網路。實驗結果表明,他們僅僅使用了三分之一的數據就獲得了同等水平的模型性能。下圖顯示了訓練的準確率(紫色的線表示隨機初始化的訓練情況,灰色的線表示先進行預訓練再進行調優的訓練情況)。
訓練用於 COCO 人體關鍵點檢測任務的 Mask RCNN 模型:對於人體關鍵點檢測任務,隨機初始化的網路可以比先進行預訓練再調優的網路快得多地學習,不需要使用額外的訓練時間。關鍵點監測是對於局部空間信息預測非常敏感的任務。這說明,對於局部空間信息預測來說,ImageNet 預訓練的作用非常有限,對於這樣的任務,從頭開始訓練模型的效果和使用預訓練再調優的效果幾乎是一樣的。
本文的觀點的總結在目標任務中幾乎不對架構進行修改,從頭開始訓練網路(使用隨機初始化)是可行的。
從頭開始訓練往往需要經過更多的迭代才能收斂,而預訓練的網路收斂得更快。
在許多不同的設置和情況下,從頭開始訓練的網路可以獲得與先預訓練再調優的網路相媲美的性能,甚至包括僅僅在一萬張 COCO 圖像上進行訓練的情況。
除了訓練數據集極其小的情況,在 ImageNet 上進行預訓練並不一定能夠幫助緩解過擬合現象。
相對於物體的類別信息,如果目標任務與物體位置信息更加相關,那麼在 ImageNet 上進行預訓練將收效甚微。
via:https://www.rsipvision.com/ComputerVisionNews-2019January/4/
雷鋒網 AI 科技評論編譯整理。
※榮耀海報泄天機!榮耀V20或將搭載三項嚇人技術
※獨家|十四問Roadstar.ai 創始人佟顯喬、衡量,了解解聘風暴始末
TAG:雷鋒網 |