[深度學習] Image Classification影象分類之Bag of Tricks for Image Classification with Convolutional Neural Net
論文全稱:《Bag of Tricks for Image Classification with Convolutional Neural Networks》
論文地址:https://arxiv.org/pdf/1812.01187.pdf
這篇文章主要討論最近這些訓練神經網路的tricks,這些tricks大部分都只是在以前的論文輕描淡寫地一筆帶過,有些只能在原始碼裡找到,但這一部分可能很重要。令人驚訝的是對這些tricks作對照實驗結果還能優於一些後來提出的網路,真的不知道是tricks厲害還是提出網路的結構的貢獻了。見下圖。
整篇論文圍繞不同的tricks闡述,並且對他們做了一系列的實驗。通過將這些改進結合在一起,能夠顯著改進各種CNN模型。例如,將ResNet-50在ImageNet上的top-1驗證精度從75.3%提高到79.29%。論文還證明了,影象分類精度的提高,可以在目標檢測和語義分割等其他應用領域帶來更好的轉移學習效能。
關於訓練
線性比例縮放learning rate
隨著批量大小線性增加學習率是有效的。
learning rate熱身
線性地將學習率從0增加到初始學習率。
Zero γ
初始化所有BN層的γ= 0,因此,所有residual的塊只返回它們的輸入,模擬的網路層數較少,而且在初始階段更容易訓練。
沒有bias的衰變
將權值衰減應用於卷積層和全連通層的權值。其他引數,包括偏見和γ和βBN層都不衰變。
低精度訓練:因為新的硬體增強了用於較低精度資料型別的算術邏輯單元。使用FP16代替FP32,訓練速度會更快。
對於ResNet的微調
右邊是對應左邊的微調,這些結構的調整都曾經在別的論文的原始碼上出現。
調整後的結果:
訓練改進
餘弦學習速率衰減
與階躍衰減相比,餘弦衰減從一開始學習就開始衰減,但一直保持較大,直到階躍衰減使學習速率降低10x,這可能會提高訓練進度。
標籤平滑
採用標籤平滑法,使分佈中心在理論值處平滑,極值較少。
知識蒸餾
在知識精餾[中,我們使用教師模型來幫助訓練當前的模型,即學生模型。教師模型通常是一個準確率較高的預訓練模型,通過模仿,學生模型可以在保持模型複雜度不變的情況下提高自身的準確率。
混合訓練
通過對這兩個例子的加權線性插值得到一個新的例子,用於訓練。
此外還介紹瞭如何遷移學習至不同的任務,包括目標檢測和語義分割。