1. 程式人生 > 其它 >EfficientNetV2 - 通過NAS、Scaling和Fused-MBConv獲得更小的模型和更快的訓練

EfficientNetV2 - 通過NAS、Scaling和Fused-MBConv獲得更小的模型和更快的訓練

EfficientNetV2是由 Google Research,Brain Team釋出在2021 ICML的一篇論文,它結合使用NAS和縮放,優化訓練速度和引數效率。並且模型中使用新操作(如 Fused-MBConv)在搜尋空間中進行搜尋。EfficientNetV2 模型比EfficientNetV1的訓練速度快得多,同時體積小 6.8 倍。

論文大綱如下:

  • 理解和提高 EfficientNetV1 的訓練效率
  • NAS 和縮放
  • Progressive Learning
  • SOTA 比較
  • 消融研究

理解和提高 EfficientNetV1 的訓練效率

1、使用非常大的影象尺寸進行訓練很慢

EfficientNet 的大影象尺寸會導致大量記憶體使用。由於 GPU/TPU 上的總記憶體是固定的,因此使用較小的批大小,這會大大減慢訓練速度。

FixRes (論文FixRes: Fixing the Train-Test Resolution Discrepancy)可用於通過使用更小的影象尺寸進行訓練而不是推理。較小的影象尺寸會導致較少的計算量並支援較大的批量大小,從而將訓練速度提高多達 2.2 倍,並且準確度還會有所提高。

2、Depth-wise卷積在模型的早期層執行緩慢但在後期層是有效的

Fused-MBConv 在谷歌 AI 部落格中提出, Fused-MBConv 將 MBConv 中的 depthwise conv3×3 和擴充套件 conv1×1 替換為單個常規 conv3×3。

MBConv 和 Fused-MBConv 的結構

Fused-MBConv 逐漸將 EfficientNet-B4 中的原始 MBConv 替換為 Fused-MBConv。

在早期階段 1-3 中應用時,Fused-MBConv 可以提高訓練速度,而引數和 FLOP 的開銷很小。

但是如果所有塊都使用 Fused-MBConv(階段 1-7),那麼它會顯著增加引數和 FLOP,同時也會減慢訓練速度。

3、在每個階段同樣擴大規模並不是最優的

EfficientNet 使用簡單的複合縮放規則平等地擴充套件所有階段。例如,當深度係數為 2 時,網路中的所有階段都會使層數翻倍。但是實際上這些階段對訓練速度和引數效率的貢獻並不相同。在EfficientNetV2中,使用非均勻縮放策略逐漸向模型的後期新增更多層。EfficientNets 積極擴大影象大小,導致大量記憶體消耗和緩慢訓練。為了解決這個問題,EfficientNetV2對縮放規則稍作修改,最大影象尺寸被限制為較小的值。

https://www.overfit.cn/post/053825be64b64acfa9cbd527a4a1cab7