何愷明拋出重磅炸彈!ImageNet並非必要


新智元報道

來源:arxiv

新智元編輯部

【新智元導讀】何愷明、Ross Girshick等大神深夜扔出“炸彈”:ImageNet預訓練並非必須。大神們使用隨機初始化變得到了媲美COCO冠軍的結果,無情顛覆“預訓練+微調”思維定式——再看此前預訓練與此後微調所付出的種種,嗚呼哀哉,好不苦矣!

ImageNet 有用嗎?

當然有用。

但 ImageNet 預訓練卻並非必須!

剛剛,何愷明等人在arxiv貼出一篇重磅論文,題爲《重新思考“ImageNet預訓練”》,讓似乎本已經平靜的ImageNet湖面,再掀波瀾!

Facebook 人工智能研究所何愷明、Ross Cirshick 和 Piotr Dollar 三人在arxiv上貼出最新論文:重新思考ImageNet預訓練

過去幾年來,使用ImageNet這套大規模數據集進行預訓練的視覺模型,對於執行計算機視覺任務而言都是必不可少的存在。雖然並沒用多少時間,但人們似乎都默認,計算機視覺任務需要使用ImageNet預訓練模型。

然而,何愷明等人卻站出來說——

不!

ImageNet 預訓練模型並非必須,ImageNet 能做的只是加速收斂,對最終物體檢測的精度或實例分割的性能並無幫助

他們使用隨機初始化的模型,不借助外部數據,取得了不遜於COCO 2017冠軍的結果。

大神不愧爲大神——此前我們預訓練ImageNet模型再辛辛苦苦微調,都是爲了什麼?!

不用ImageNet預訓練,隨機初始化就能媲美COCO冠軍!

何愷明等人研究表明,在COCO數據集上進行隨機初始化訓練,其效果能做到不次於在ImageNet上進行預訓練。

而且,即使只用COCO中10%的訓練數據進行訓練,依然有可能實現上述結果。

他們還發現,可以在相當於ImageNet規模4倍大的數據集上,使用隨機初始化訓練,而結果不發生過擬合。

圖1:我們在COCO train2017數據集上使用ResNet-50 FPN[26]和GroupNorm[48]訓練Mask R-CNN[13],並在val2017數據集上評估邊界框AP,通過隨機權重或ImageNet預訓練初始化模型。我們通過改變學習率降低(準確率提高)的迭代來探索不同的訓練計劃。從隨機初始化訓練出來的模型需要更多的迭代來收斂,但是隻收斂到一個與finetuning相似的解決方案。

實驗表明,ImageNet的預訓練在訓練的早期加速了收斂,但並不一定提供正則化或提高最終目標任務的精度

具體說,何愷明等人通過實驗觀察到以下情況:

1、ImageNet預訓練方式加快了收斂速度,特別是在訓練早期,但隨機初始化訓練可以在訓練一段時間後趕上來。考慮到前者還要進行模型的微調,訓練總時間二者大體相當。由於在研究目標任務時經常忽略ImageNet預訓練的成本,因此採用短期訓練進行的“對照”比較可能會掩蓋隨機初始化訓練的真實表現。

2、ImageNet預訓練不能自動提供性能更優的正則化。在使用較少的圖像(不到COCO數據集的10%)進行訓練時,我們發現必須選擇新的超參數進行微調(來自預訓練)以避免過度擬合。當用這些同樣的超參數進行隨機初始化訓練時,該模型精度可以達到預訓練模型的水平,無需任何額外的正則化處理。

3、當目標任務或指標對空間定位預測更敏感時,ImageNet預訓練模型沒有表現出任何優勢。我們觀察到,採用隨機初始化訓練時,預測性能出現明顯改善。我們還發現,採用隨機初始化訓練的收斂速度也較預訓練模型快。直觀地說,基於分類任務的類ImageNet的預訓練方式,與本地化的敏感目標任務之間的任務間存在鴻溝,這可能會限制預訓練模型的優勢。

有沒有ImageNet預訓練,區別真沒那麼大

作者在論文中寫道,他們的結果挑戰了ImageNet對依賴任務進行預訓練的傳統思想,他們的發現將鼓勵人們重新思考當前計算機視覺中“預訓練和微調”的“範式”。

那麼,完全從零開始訓練,與使用ImageNet預訓練相比,最大的不同在哪裏呢?

答案是“時間”。

使用ImageNet做預訓練的模型已經具備了邊緣、紋理等低級表徵,而完全從零開始訓練的模型需要迭代更久,因此需要更多的訓練時間。

但是,從所需要的訓練樣本的像素(而非實例數)來看,隨機初始化與使用ImageNet預訓練,兩者其實相差不太多

圖2:在所有訓練迭代中看到的圖像、實例和像素的總數,分別表示預訓練+微調(綠色條)vs.隨機初始化(紫色條)。我們考慮到ImageNet預訓練需要100 epochs,fine-tuning採用2× schedule (∼24 epochs over COCO),隨機初始化採用6× schedule (∼72 epochs over COCO)。我們計算ImageNet實例爲1 per image (COCO是∼7),和ImageNet像素爲224×224,COCO爲800×1333。

下圖展示了另一個例子,使用隨機初始化(深紅和深綠)和ImageNet預訓練(淺紅和淺綠),在多種情況下,兩者的結果都是可比的。

區別大嗎?

真的沒有那麼大!

圖5:使用Mask R-CNN對不同系統進行隨機初始化與預訓練的比較,包括:(i)使用FPN和GN的baseline,(ii)使用訓練時間多尺度增強的baseline,(iii)使用Cascade RCNN[3]和訓練時間增強的baseline,以及(iv)加上測試時間多尺度增強的baseline。上圖:R50;下圖R101。

此論文實驗部分寫得非常漂亮,瞭解詳情推薦閱讀原文(地址見文末)。

“ImageNet時代完結”,從零開始訓練完全可行

何愷明等人在這篇論文中,探討了以下幾點:

  • 無需更改架構,就能對目標任務進行從頭開始的訓練。
  • 從頭開始訓練需要更多的迭代,以充分收斂。
  • 在許多情況下,從頭開始的訓練並不比ImageNet預訓練的同個模型差,甚至在只有10k COCO圖像的情況下也是如此。
  • ImageNet預訓練加速了目標任務的收斂。
  • ImageNet預訓練不一定有助於減少過擬合,除非數據量真的非常小。
  • 如果目標任務對定位比對分類更敏感,那麼ImageNet預訓練的幫助較小。

從目前的文獻來看,這些結果是令人驚訝的,並對當前凡是計算機視覺任務就先拿ImageNet來預訓練的做法不啻一記當頭棒喝。

這些結果表明,當沒有足夠的目標數據或計算資源來對目標任務進行訓練時,ImageNet預訓練方式是一種基於“歷史”的解決方法(並且可能會持續一段時間)

現在看,ImageNet標註方便、應用廣泛,似乎是“免費”資源,拿來用即可。

但不是的,拋開構建ImageNet花費了多少人力物力和時間不說,對於某些任務而言,如果目標數據與ImageNet相差太大,用在微調ImageNet預訓練模型上的時間和精力,還不如直接從頭開始訓練。

這項工作也並非要我們徹底拋棄預訓練模型,而是表明(至少視覺檢測任務)除了用 ImageNet 預訓練之外,還存在另一種訓練方式,從零開始訓練也完全可以。

這篇論文貼出來沒多久,知乎上便出現了討論“如何評價何愷明等 arxiv 新作 Rethinking ImageNet Pre-training?”

截止發稿前,點贊最高的回答來自中科院計算所博士“王晉東不在家”:

我不是排斥使用ImageNet pretrained network,我只是覺得,應該找一些領域,讓ImageNet真正有用。不妨試試用這些預訓練好的網絡去進行醫學圖像分類、極端圖像(低分辨率、逆光、精細圖像、衛星)分類,這纔是ImageNet的正確價值。 不過,欣喜的是,也有一批採用了淺層網絡,或者是加入對抗機制的淺層網絡,在最近的頂會上有所突破。 不能一直隨大流,是時候重新思考了。

另一位計算機視覺從業者mileistone也表示:

深度學習領域理論發展慢於應用,像“train from scratch”類似的common practice很多,這些common practice很多沒有理論支撐,我們也沒法判斷有沒有道理,我們只知道大家都這麼用。因爲可質疑的地方太多了,我們很容易失去獨立思考的能力。 希望更多的“rethink”文章出來,這些文章像鮎魚一樣,持續激發深度學習領域的活力。

何愷明等人認爲,他們的論文和實驗表明,隨機初始化也有可能生成媲美COCO冠軍的結果,正因如此,計算機視覺從業者才更應該慎待預訓練特徵。

計算機視覺的通用表徵,仍然值得我們去追求。

論文地址:https://arxiv.org/pdf/1811.08883.pdf

知乎討論:https://www.zhihu.com/question/303234604/answer/536820942

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