EfficientNetV2:谷歌又來了,最小的模型,最高的準確率,最快的訓練速度 | ICML 2021

 論文基於training-aware NAS和模型縮放得到EfficientNetV2系列,性能遠優於目前的模型。另外,爲了進一步提升訓練速度,論文提出progressive learning訓練方法,在訓練過程中同時增加輸入圖片尺寸和正則化強度。從實驗結果來看,EfficientNetV2的效果非常不錯。

來源:曉飛的算法工程筆記 公衆號

論文: EfficientNetV2: Smaller Models and Faster Training

Introduction


 隨着模型大小和數據集規模的增加,訓練效率成了深度學習中很重要的一環。近期也有越來越多致力於提高訓練效率的研究,但很難有兼顧準確率、訓練效率和參數規模的網絡。

 論文嘗試分析了參數高效的EfficientNet的訓練瓶頸,主要有三點:1)圖片輸入尺寸過大會導致訓練較慢。2)深度卷積放在網絡前部分會較慢。3)對網絡所有stage進行同等scaling並不是最優的。基於上面的分析,論文設計了更精簡的搜索空間,使用training-aware NAS(neural architecture search)和scaling來同時提高模型準確率、訓練效率和參數效率,提出了EfficientNetV2系列網絡。
 在訓練速度方面,論文通過在訓練過程逐步提高輸入尺寸來進一步加速訓練。先前也有類似的在訓練過程逐步增加輸入圖片尺寸來加速的研究,但這些研究在修改輸入圖片尺寸的同時沒有改變訓練設置,導致準確率下降。論文認爲,輸入圖片尺寸不同的網絡的容量不同,應該使用不同程度的正則化方法。爲此,論文提出了progressive learning,在訓練初期使用較小的圖片尺寸和較弱的正則化,然後逐步提高圖片尺寸和正則化強度,可以做到加速訓練又不掉點。
 論文的主要貢獻如下:

  • 組合training-aware NAS和scaling提出EfficientNetV2系列網絡,比之前的網絡的規模更小、速度更快。
  • 提出progressive learning自適應根據圖片尺寸調整正則化強度,加速訓練的同時提高準確率。
  • 在多個訓練集上進行實驗,驗證訓練效率能提高11倍,模型規模能降低6.8倍。

EfficientNetV2 Architecture Design

Review of EfficientNet

 EfficientNet是優化計算量和參數量的系列網絡,先通過NAS搜索準確率和速度折中的基線模型EfficientNet-B0,再通過混合縮放策略獲得B1-B7模型。

 儘管現在很多研究聲稱在訓練或推理速度上取得很大進步,但他們通常在計算量和參數量上差於EfficientNet,而本文正是想同時提升訓練速度和優化模型參數量。

Understanding Training Efficiency

 論文對EfficientNetV1的訓練瓶頸進行了分析,發現以下幾個主要問題。

  • Training with very large image sizes is slow

 輸入圖片尺寸過大會導致顯存佔用的顯著提高,由於GPU的顯存是固定的,導致必須減少batch size和增加迭代次數進行訓練,訓練也就變慢了。

 如表2所示,較小的尺寸大約能提升2.2倍訓練速度,還能小幅提升模型性能。爲此,論文參考FixRes的動態增加訓練圖片尺寸提出更高效的訓練方法,在訓練過程逐步增加圖片尺寸以及正則化強度。

  • Depthwise convolutions are slow in early layers but effective in later stages

 EfficientNet的另一個訓練瓶頸在於depthwise卷積的使用,depthwise卷積雖然有更少的參數和計算量,但不能使用目前的GPU加速方案。

 最近有研究提出MBConv的替代結構Fused-MBConv,如圖2所示,將depthwise conv3x3和conv1x1合併爲常規的conv3x3。爲了對比兩者的性能差異,論文逐步替換stage進行實驗。從表3的結果可以看出,恰當地使用Fused-MBConv可以在不帶來過多參數量和計算量的前提下提升訓練速度。至於如何是恰當,就靠NAS來自動搜索了。

  • Equally scaling up every stage is sub-optimal

 EfficientNet使用簡單的混合縮放規則相等地放大所有stage,但實際上不同的stage對訓練速度和參數量的影響是不同的。爲此,論文只放大網絡後面的stage,同時減小輸入圖片尺寸的放大比例。

Training-Aware NAS and Scaling

 論文跟EfficientNet一樣利用MnasNet的多目標神經結構搜索進行網絡搜索,調整評價指標同時優化準確率、參數量和訓練速度。以EfficientNet作爲主幹,構造stage-based的搜索空間來對每個stage進行搜索。搜索的選項包括卷積類型{MBConv, Fused-MBConv}、層數、卷積核大小{3x3, 5x5},block中間的膨脹比例{1, 4, 6}。
 另外,論文也從以下幾點減少了搜索空間大小:

  • 去掉不必要的搜索選項,比如pooling skip算子,這個沒有在EfficientNet用到過。
  • 複用主幹網絡的每個stage的channel數,這部分已經在EfficientNet中搜索過了。

 由於搜索空間精簡了,可以直接用強化學習和隨機搜索來生成跟EfficientNet-B4差不多大小的網絡。論文共採樣1000個網絡結構,每個訓練大概10個週期。搜索的平均指標包含模型準確率\(A\)、歸一化的訓練耗時\(S\)和參數量\(P\),使用加權乘積\(A\cdot S^w\cdot P^w\)進行最終得分計算,其中\(w=-0.07\)\(v=-0.05\)是通過實驗確定的平衡超參數。

  • EfficientNetV2 Architecture

 EfficientNetV2-S結構如表4所示,Conv後接的數字是膨脹率。對比EfficientNet,主要有以下區別:

  • 使用MBConv的同時,在網絡前幾個階段也使用了fused-MBConv。
  • EfficientNetV2傾向於選擇較小的膨脹比例,這樣能減少內存訪問耗時。
  • EfficientNetV2比較喜歡較小的3x3卷積,但會添加更多的層數來彌補減少的感受域。
  • 去掉EfficientNet中最後stride-1的stage,可能由於其參數量和計算量太大了。

 這裏有一點比較奇怪,上面NAS部分說會複用EfficientNet的通道數來縮小搜索空間,但是看錶4的通道數貌似跟EfficientNet沒有關係。這要等作者補充更多的NAS細節看看,具體各模型的參數可以去github看看。

  • EfficientNetV2 Scaling

 論文通過放大EfficientNetV2-S得到EfficientNetV2-M/L,使用類似於EfficientNet的混合縮放策略來,有以下區別:

  • 限制最大的推理圖片尺寸爲480,節省內存和訓練速度消耗。

  • 逐步添加更多的層給後面的stage,比如表4中的stage5和stage6,在增加網絡容量的同時不會帶來過多運行消耗。

  • Training Speed Comparison

 圖3對比了各網絡的訓練耗時,其中EfficientNet有原版和訓練時縮小30%圖片尺寸的版本,縮小版本的輸入尺寸跟EfficientNetV2以及NFNet一致。使用相同訓練週期和固定圖片尺寸進行訓練,EfficientNet僅縮小訓練尺寸就能得到很大的性能提升,而EffcientNetV2憑藉論文提出training-aware NAS和縮放策略,性能遠超其它網絡。

Progressive Learning


  • Motivation

 如之前所描述的,圖片尺寸對訓練效率的影響非常大。除了FixRes,還有很多其他在訓練期間動態調整圖片尺寸的研究,但這些研究通常都會出現性能下降的情況。論文認爲,性能下降的主要原因在於正則化沒有匹配動態調整的圖片尺寸。較小的輸入尺寸應該使用較弱的正則化強度,相反,較大的輸入尺寸則應該使用較強的正則化強度。

 爲了驗證這個猜想,論文將不同輸入圖片尺寸和不同正則化強度進行組合測試。從表5的結果來看,基本驗證了論文的猜想。於是論文提出了progressive learning,在訓練過程中根據動態調整的圖片尺寸自適應正則化強度。

  • Progressive Learning with adaptive Regularization

 論文提出的progressive learning如圖4所示,先用較小的圖片尺寸和較弱的正則化進行訓練,隨後逐步增加圖片尺寸和正則化強度。

 假設完整的訓練共\(N\)次迭代,目標圖片尺寸爲\(S_e\),目標正則化超參數爲\(\Phi_e=\{\phi^k_e\}\),其中\(k\)表示其中一種正則化方法,比如dropup比例或mixup比例。將訓練分爲\(M\)個階段,對於每個階段\(1\le i\le M\),模型訓練的圖片尺寸爲\(S_i\),正則化超參數爲\(\Phi_i=\{\phi^k_i\}\),最後一個階段\(M\)的圖片尺寸爲\(S_e\)和正則化超參數爲\(\Phi_e\)。爲了簡單化,初始化圖片尺寸和正則化超參數爲\(S_O\)\(\Phi_0\),通過線性插值來決定每個階段對應參數,整體邏輯如算法1所示。

 論文共使用三種正則化方法:Dropout、RandAugment和Mixup,各網絡的參數設置如表6所示。

Experiment


 在ImageNet上與其它網絡進行對比。

 遷移能力對比。

 相同訓練配置下的EfficientNet對比。

 縮小EfficientNetV2的模型大小與對標的EfficientNetV1,對比準確率和速度。

 對比不同網絡使用progressive learning的效果。

 對比自適應正則化強度的效果。

Conclusion


 論文基於training-aware NAS和模型縮放得到EfficientNetV2系列,性能遠優於目前的模型。另外,爲了進一步提升訓練速度,論文提出progressive learning訓練方法,在訓練過程中同時增加輸入圖片尺寸和正則化強度。從實驗結果來看,EfficientNetV2的效果非常不錯。



如果本文對你有幫助,麻煩點個贊或在看唄~
更多內容請關注 微信公衆號【曉飛的算法工程筆記】

work-life balance.

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