谷歌開發新模型EfficientNets,縮放CNN的精度與效率超越現有模型

語言: CN / TW / HK

谷歌提出了一項新型模型縮放方法:利用複合係數統一縮放模型的所有維度,該方法極大地提升了模型的準確率和效率。谷歌研究人員基於該模型縮放方法,提出了一種新型 CNN 網路 EfficientNet,該網路具備極高的引數效率和速度。目前,該模型的程式碼已開源。

卷積神經網路(CNN)通常以固定成本開發,然後再按比例放大,從而在獲得更多資源時可以達到更高的準確率。例如Resnet 可以通過增加網路層數,從 ResNet-18 擴充套件到 ResNet-200。近期 GPipe 將基線 CNN 擴充套件了 4 倍,從而在 ImageNet 資料集上達到了 84.3% 的 top-1 準確率。模型縮放的通常做法是任意增加 CNN 的深度或寬度,或者使用更大的輸入影象解析度進行訓練和評估。儘管這些方法確實可以改進準確率,但它們通常需要大量手動調參,且通常獲得的是次優效能。那麼,我們是否可以尋找更好的 CNN 擴充套件方法,來獲得更高的準確率和效率呢?

谷歌研究人員在一篇 ICML 2019 論文《EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks》中,提出了一種新型模型縮放方法,該方法使用一種簡單但高效的複合係數(compound coefficient)以更加結構化的方式擴充套件 CNN。與任意擴充套件網路維度(如寬度、深度、解析度)的傳統方法不同,該新方法使用固定的一組縮放係數擴充套件每個維度。受益於該方法和 AutoMl的最新進展,谷歌開發出了一系列模型——EfficientNets,該模型的準確率超越了當前最優模型,且效率是後者的 10 倍(模型更小,速度更快)。

複合模型縮放:擴充套件 CNN 的更好方法

為了理解網路縮放的效果,谷歌研究人員系統地研究了縮放模型不同維度的影響。雖然縮放單個維度可以改善模型效能,但研究人員發現平衡網路的所有維度(寬度、深度和影象解析度)和可用資源才能最優地提升整體效能。

該複合縮放方法的第一步就是執行網格搜尋,尋找固定資源限制下基線模型不同縮放維度之間的關係。這決定了每個維度的恰當縮放係數。第二步是應用這些係數,將基線網路擴充套件到目標模型大小或目標計算成本。

不同縮放方法對比。傳統縮放方法 (b)-(d) 任意縮放模型的單個維度,而谷歌提出的新型複合縮放方法則不同,它擴充套件模型的所有維度。相比於傳統的模型縮放方法,該複合縮放方法可持續改善模型的準確率和效率,如 MobileNet 的 ImageNet 準確率提升了 1.4%,ResNet 的準確率提升了 0.7%。

EfficientNet 架構

模型縮放的效果嚴重依賴基線模型。因此,為了進一步提升效能,谷歌研究人員使用 AutoML MNAS 框架執行神經架構搜尋,從而開發出一種新型基線模型,該模型可以優化準確率和效率。

該基線模型使用 mobile inverted bottleneck convolution(MBConv),類似於 MobileNetV2 和 MnasNet,但是由於 FLOP 預算增加,該模型較大。於是,研究人員繼續縮放該基線模型,得到一組模型——EfficientNets。

基線模型 EfficientNet-B0 的架構簡單、乾淨,這使得它易於擴充套件和泛化。

EfficientNet 效能

研究人員在 ImageNet 資料集上對比了 EfficientNets 和已有 CNN 模型。EfficientNet 模型要比已有 CNN 模型準確率更高、效率更高,其引數量和 FLOPS 都下降了一個數量級。例如,在高準確率的模式中,EfficientNet-B7 在 ImageNet 上獲得了當前最優的 84.4% top-1 / 97.1% top-5 準確率,CPU 推斷速度是 Gpipe 的 6.1 倍,而後者的大小是 EfficientNet-B7 的 8.4 倍。與現在廣泛使用的 ResNet-50 相比,EfficientNet-B4 使用類似的 FLOPS 取得的 top-1 準確率比 ResNet-50 高出 6.3%(ResNet-50 76.3%,EfficientNet-B4 82.6%)。

模型大小 vs. 準確率。

EfficientNet-B0 是通過 AutoML MNAS 開發出的基線模型,Efficient-B1 到 B7 是擴充套件基線模型後得到的網路。EfficientNet 顯著優於其他 CNN。具體來說,EfficientNet-B7 取得了新的 SOTA 結果:84.4% top-1 / 97.1% top-5 準確率,且其大小遠遠小於之前的最優 CNN 模型 GPipe(後者的模型大小是 EfficientNet-B7 的 8.4 倍),速度是 GPipe 的 6.1 倍。EfficientNet-B1 的引數量遠遠小於 ResNet-152,但速度是後者的 5.7 倍。

EfficientNet 在 ImageNet 上的效能。

推斷延遲對比。

儘管 EfficientNets 在 ImageNet 上效能優異,但要想更加有用,它們應當具備遷移到其他資料集的能力。谷歌研究人員在 8 個常用遷移學習資料集上評估了 EfficientNets,結果表明 EfficientNets 在其中的 5 個數據集上達到了當前最優的準確率,且引數量大大減少,這表明 EfficientNets 具備良好的遷移能力。

EfficientNets 能夠顯著提升模型效率,谷歌研究人員希望 EfficientNets 能夠作為未來計算機視覺任務的新基礎。因此,研究人員開源了 EfficientNet 模型。

參考:

http://ai.googleblog.com/2019/05/efficientnet-improving-accuracy-and.html

http://cloud.tencent.com/developer/news/405830

http://www.jiqizhixin.com/articles/2019-05-30-12

http://cloud.tencent.com/developer/news/405922

http://new.qq.com/omn/20190602/20190602A08UNP00