當前位置:
首頁 > 知識 > Pre-training到底有沒有用?何愷明等人新作:Rethinking ImageNet Pre-training

Pre-training到底有沒有用?何愷明等人新作:Rethinking ImageNet Pre-training

源/專知


使用基於ImageNet預訓練(Pre-training)的網路已成為計算機視覺任務中一種常規的操作。何愷明等人在新作Rethinking ImageNet Pre-training中使用詳細的對比實驗和分析提出了對基於ImageNet預訓練的新的思考。研究發現,對於在COCO數據集上的目標檢測和實例分割任務,

使用隨機初始化的參數會收斂的更慢,但最終所達到的結果不比使用在ImageNet上預訓練的參數差。




預訓練


預訓練模型一般指在大規模數據集上對特定任務訓練的深度模型。對大多數人來說,預訓練模型的訓練一般很難進行,因為它需要消耗大量的計算資源。在ImageNet預訓練的卷積網路是最常見的預訓練模型之一,它包含1400萬張圖像(大約1000類,每一類約120萬張圖像),大約100萬張圖像包含Bounding Box標註信息。




當特定任務訓練完成後,學習到的參數即為預訓練模型。很多預訓練模型都可以從Github中找到,當然最簡單的方法還是直接使用各個深度學習框架(如TensorFlow、Keras)內置的庫來調用預訓練模型。




消去實驗


論文《Rethinking ImageNet Pre-training》建立在基於COCO數據集的消去實驗上。在基於COCO數據集的目標檢測和實例分割任務上,對比使用基於ImageNet預訓練參數和隨機初始化參數(即消去ImageNet預訓練)的結果,對基於ImageNet的預訓練所能帶來的影響進行了分析。



有趣的統計


在論文中有一項有趣的統計,如下圖所示。統計包含了在訓練過程中,模型見到圖像、示例和像素的次數。其中淡藍色表示在ImageNet預訓練時的統計數據,深藍色代表在COCO上進行微調(Fine-Tuning)時的統計數據,紫色代表如果使用隨機初始化從頭訓練的統計數據。






歸一化


在目標檢測任務中,由於輸入的解析度大且網路對顯存消耗大,batch size只能被設置為比較小的值,這會損傷模型中Batch Normalization的效果。使用預訓練模型可以繞過這個問題,因為我們可以在微調時將Batch Normalizaiton的參數固定。但是,如果使用隨機初始化的參數從頭訓練則不能使用這個技巧。


在論文中,使用了兩種較新的歸一化方法來減輕小batch問題:




  1. Group Normalization (GN): https://arxiv.org/abs/1803.08494



  2. Synchronized Batch Normalization (SyncBN):  https://arxiv.org/abs/1711.07240 https://arxiv.org/abs/1803.01534




引入Group Normalization或Synchronized Batch Normalization使得我們可以用隨機初始化的參數從頭開始訓練模型。另外,利用appropriately normalized initialization(https://arxiv.org/abs/1502.01852),我們可以從頭訓練一個基於VGG的目標檢測模型,且不需要使用Batch Normalization或者Group Normalization。




主要實驗結果












結論





  1. 使用ImageNet預訓練模型可以加速收斂,尤其在訓練的早期。但是基於隨機初始化參數的模型會在一段時間後達到同樣的效果,這個時間大約是ImageNet預訓練和微調時間的總和。它需要去學低/中等級的特徵(例如邊緣、材質等),這些特徵在預訓練中已經學到。由於ImageNet預訓練的時間往往在目標任務中被忽略,只考慮短時間的微調訓練過程,基於隨機初始化的訓練的真正的表現往往被遮蓋。



  2. ImageNet預訓練並不能自動提供更好的正則化。當用更少的圖片訓練時(COCO數據集的10%),我們發現必須從預訓練參數中選擇新的超參來防止過擬合。如果用隨機初始化參數來進行訓練,模型可以在不添加額外正則的情況下來達到同樣的效果,甚至只用10%的COCO數據集。



  3. 如果目標任務/指標對局部空間信息比較敏感,ImageNet預訓練並沒有什麼優勢。當從頭開始訓練時,高重疊閾值部分的AP有顯著的提升,另外,需要優質空間定位的keypoint AP會收斂的相對快一些。直觀地說,基於分類的類ImageNet預訓練和局部信息敏感的任務之間的鴻溝,會限制預訓練的效果。




推薦閱讀



一個理工屌絲男的本碩博十年大學生活綜述


資源 | 英語不行?你可以試試TensorFlow官方中文版教程


下載 | 384頁NLP多任務聯合學習教程(PPT)


這是一份超全機器學習&深度學習資源清單(105個AI站點),請收藏!


Python編輯器你選哪個?我選PyCharm


20張圖表達程序員的心酸


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!

TAG: |