谷歌AI新方法:可提升 10 倍圖像識別效率,關鍵還簡單易用

  在開發以卷積神經網絡(CNN)爲核心的機器學習模型時,我們通常會先使用固定的資源成本,構建最初的模型,然後增加更多資源(層數)擴展模型,從而獲得更高的準確率。

  著名的 CNN 模型 ResNet(深度殘差網絡),就可以用增加層數的方法從ResNet-18 擴展到 ResNet-200。谷歌的 GPipe 模型也通過將基線 CNN 擴展 4 倍,在 ImageNet 數據庫上達到 84.3% 的準確率,力壓所有模型。

  一般來說,模型的擴大和縮小都是任意增加 CNN 的深度或寬度,抑或是使用分辨率更大的圖像進行訓練和評估。雖然這些傳統方法提高準確率的效果不錯,但大多需要繁瑣的手動調整,還可能無法達到最佳性能。

  因此,谷歌AI團隊最近提出了新的模型縮放方法“複合縮放(Compound Scaling)”和配套的EfficientNet 模型。他們使用複合係數和 AutoML 從多個維度均衡縮放 CNN,綜合考慮深度和寬度等參數,而不是隻單純地考慮一個,使得模型的準確率和效率大幅提升,圖像識別的效率甚至可以大幅提升 10 倍。

  這項新方法的根本優勢在於實踐起來非常簡單,背後的原理很好理解,甚至讓人懷疑爲什麼沒有被更早發現。該研究成果以論文的形式被 ICML 2019(國際機器學習大會)接收,名爲 EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks。EfficientNet 模型的相關代碼和 TPU 訓練數據也已經在 GitHub 上開源。

  尋找複合係數

  爲了弄清楚神經網絡縮放之後的效果,谷歌團隊系統地研究了改變不同維度對模型的影響,維度參數包括網絡深度、寬度和圖像分辨率。

  首先他們進行了柵格搜索(Grid Search)。這是一種窮舉搜索方法,可以在固定資源的限定下,列出所有參數之間的關係,顯示出改變某一種維度時,基線網絡模型會受到什麼樣的影響。換句話說,如果只改變了寬度、深度或分辨率,模型的表現會發生什麼變化。

  綜合考慮所有情況之後,他們確定了每個維度最合適的調整係數,然後將它們一同應用到基線網絡中,對每個維度都進行適當的縮放,並且確保其符合目標模型的大小和計算預算。

  簡單來說,就是分別找到寬度、深度和分辨率的最佳係數,然後將它們組合起來一起放入原本的網絡模型中,對每一個維度都有所調整。從整體的角度縮放模型。

  與傳統方法相比,這種複合縮放法可以持續提高模型的準確性和效率。在現有模型 MobileNet 和 ResNet 上的測試結果顯示,它分別提高了 1.4% 和 0.7% 的準確率。

  高效的網絡架構和性能

  縮放模型的有效性也依賴於基線網絡(架構)本身。

  因爲,爲了進一步提高性能,谷歌 AI 團隊還使用了 AutoML MNAS 框架進行神經架構搜索,優化準確性和效率。AutoML 是一種可以自動設計神經網絡的技術,由谷歌團隊在 2017 年提出,而且經過了多次優化更新。使用這種技術可以更簡便地創造神經網絡。

  由此產生的架構使用了移動倒置瓶頸卷積(MBConv),類似於 MobileNetV2 和 MnasNet 模型,但由於計算力(FLOPS)預算增加,MBConv 模型體積略大。隨後他們多次縮放了基線網絡,組成了一系列模型,統稱爲EfficientNets。

  爲了測試其性能,研究人員與 ImageNet 上的其他現有 CNN 進行了比較。結果顯示,EfficientNet 在大多數情況下表現亮眼,比現有 CNN 的準確率和效率都高,還將參數大小和計算力降低了一個數量級。

  比如 EfficientNet-B7 在 ImageNet 上達到的 Top-1 最高準確率是 84.4%,Top-5 準確率是 97.1%。在 CPU 推理上,它的體積比最好的 CNN 模型 GPipe 小 8.4 倍,但速度快了 6.1 倍。與廣泛使用的 ResNet-50 相比,EfficientNet-B4 使用了類似的計算力,但 Top-1 準確率從 76.3% 提升到了 82.6%。


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