谷歌開源新模型EfficientNet,或成計算機視覺任務新基礎
作者 | Mingxing Tan,Quoc V. Le,Google AI
譯者 | 劉暢
責編 | 夕顏
出品 | AI科技大本營(id:rgznai100)
開發一個卷積神經網路(CNN)的成本通常是固定的。在獲得更多資源時,我們通常會按比例進行擴展,以便獲得更優的準確性。例如,ResNet可以通過增加層數從ResNet-18擴展到ResNet-200,最近,GPipe 網路通過將基準 CNN 模型擴展四倍,在 ImageNet Top-1 上獲得了 84.3% 的準確度。在模型擴展方面的操作通常是任意增加 CNN 的深度或寬度,或者在更大輸入圖像解析度上進行訓練和評估。雖然這些方法確實提高模型了準確性,但它們通常需要繁瑣的手工調整,而且還不一定能找到最優的結構。換言之,我們是否能找到一種擴展設計方法來獲得更好的準確性和效率呢?
在 Google 的 ICML 2019 論文「EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks」中,作者提出了一種新的模型尺度縮放方法,該方法使用簡單且高效的複合係數以更結構化的方式來擴展 CNN。 與任意縮放網路尺寸的傳統方法(例如寬度、深度和解析度)不同,本文使用一個固定的縮放係數集合,均勻地縮放每個維度。 藉助這種新的縮放方法和在AutoML 方面的最新進展,Google 開發了一系列稱為 EfficientNets 的模型,它超越了 SOTA 的精度,並且將效率提高了10倍(更小、更快)。
複合模型擴展:一種更好的擴展 CNN 的方法
為了理解擴展網路的效果,本文系統地研究了擴展模型不同維度帶來的影響。雖然擴展各個維度可以提高模型性能,但作者觀察到,平衡網路寬度、深度和輸入圖像大小這些維度比增加計算資源,可以更好地提高整體性能。
複合擴展方法的第一步是執行網格搜索,用來找到在固定資源下基準網路不同擴展維度之間的關係。這決定了上文提到的每個維度的縮放係數。然後,作者用這些係數將基準網路擴展到所需的目標模型大小或預算的計算力。
不同縮放方法的比較。 與傳統僅縮放單個維度的方法(b)-(d)不同,我們的複合縮放方法以某種方式統一擴展所有維度。
與傳統的縮放方法相比,這種複合縮放方法可以用於提高多個模型的準確性和效率,如MobileNet( 1.4%圖像網精度)和ResNet( 0.7%)。
高效的網路架構
模型縮放的有效性也在很大程度上依賴於基準網路。 因此,為了進一步提高性能,作者使用了 AutoML MNAS 框架(該框架在準確性和效率上都做了優化),利用神經架構搜索來開發新的基準網路。 由此產生的架構使用了移動端的逆向 bottleneck 卷積(MBConv),類似於 MobileNetV2 和 MnasNet,但由於有更多的 FLOP 預算,因此結構略大。最終,作者擴展了這個基準網路以獲得一系列模型,稱為 EfficientNets。
本文的基準網路 EfficientNet-B0,其架構簡單幹凈,便於擴展。
EfficientNet 網路的性能
文中將 EfficientNets 與 ImageNet 上其他現有的 CNN 進行了比較。 總的來說,EfficientNet 模型實現了比現有 CNN 更高的精度和更高的效率,將參數大小和 FLOPS 降低了一個數量級。 例如,在高精度下,EfficientNet-B7 在 ImageNet 上達到了 SOTA 的Top-1,84.4% 的準確率與 Top-5 97.1% 的準確率,同時在 CPU 上的開銷比之前的 Gpipe 小 8.4 倍和 6.1 倍。與廣泛使用的 ResNet-50 相比,EfficientNet-B4 在保持相同 FLOPS 開銷情況下,將 Top-1 的精度從ResNet-50 的 76.3% 提高到 82.6%( 6.3%)。
模型尺寸與精度比較。 EfficientNet-B0 是由 AutoML MNAS 開發的基準網路,而 Efficient-B1 到 B7 是通過擴展基準網路得到。特別是,EfficientNet-B7 實現了 SOTA 的 Top-1,84.4% 準確率與 Top-5,97.1% 的準確率,同時比現有最佳的 CNN 小 8.4 倍。
儘管 EfficientNets 在 ImageNet 上表現較好,但為了驗證它的泛化能力,也應該在其他數據集上進行測試。 為了評估這一點,作者在八個廣泛使用的遷移學習數據集上測試了EfficientNets。EfficientNets 在 8 個數據集中的 5 個中實現了 SOTA 的精度,例如 CIFAR-100(91.7%)和 Flowers(98.8%),模型參數減少了一個數量級(減少了21倍),這表明EfficientNets 也能很好的進行遷移。
由於 EfficientNets 顯著提高了模型效率,作者預計它可能在未來會成為計算機視覺任務的新基礎。 因此,作者開源了所有 EfficientNet 模型。
代碼地址:
https://github.com/tensorflow/tpu/tree/master/models/official/efficientnet
原文地址:
https://ai.googleblog.com/2019/05/efficientnet-improving-accuracy-and.html?m=1
TAG:AI科技大本營 |