目前開發者可以使用非常多的移動端 CNN 架構,也可以在機器上訓練新穎的視覺模型并部署到手機端。但各種各樣的移動端任務可能并不能借助已有的 CNN 架構達到非常好的效果,因此谷歌近日將神經架構搜索方法引入了輕量級的 CNN 網絡,并提出基于強化學習的 MnasNet 以自動設計移動端模型。
卷積神經網絡(CNN)已被廣泛用于圖像分類、人臉識別、目標檢測和其他領域。然而,為移動設備設計 CNN 是一項具有挑戰性的工作,因為移動端模型需要體積小、速度快,還要保持精準。盡管人們已經做了大量努力來設計和改進移動端模型,如 MobileNet 和 MobileNetV2,但手動創建高效模型仍然是一項挑戰,因為要考慮的因素太多。從最近 AutoML 神經架構搜索方面的進展受到啟發,我們在想移動端 CNN 模型的設計是否也能受益于 AutoML 方法。
在《MnasNet: Platform-Aware Neural Architecture Search for Mobile》一文中,我們探索了一種使用強化學習設計移動端模型的自動化神經架構搜索方法。為了處理移動端速度限制,我們明確地將速度信息納入搜索算法的主要獎勵函數中,以便搜索可以識別一個在準確率和速度之間實現良好平衡的模型。如此,MnasNet 能夠找到運行速度比 MobileNet V2(手工制造的最先進水平)快 1.5 倍、比 NASNet 快 2.4 倍的型號,同時達到同樣的 ImageNet top-1 準確率。
不同于以前的架構搜索方法,在這種方法中,模型速度是通過另一個替代品(如 FLOPS)來考慮的。我們的方法通過在特定平臺上執行模型來直接測量模型速度,例如本研究中使用的 Pixel 手機。通過這種方式,我們可以直接測量現實世界中可以實現的指標,因為每種類型的移動設備都有自己的軟件和硬件特性,并且可能需要不同的架構來在準確率和速度之間做出最佳權衡。
我們方法的總體流程主要包括三個部分:一個基于 RNN 的學習和采樣模型架構控制器,一個建立和訓練模型以獲得準確率的訓練器,以及一個使用 TensorFlow Lite 測量真實手機上模型速度的推理引擎。我們制定了一個多目標優化問題,旨在實現高準確率和高速,并利用帶有定制獎勵函數的強化學習算法來尋找帕累托最優解 (例如,具有最高準確率但速度不變的模型)。
移動端自動神經架構搜索方法的整體流程圖
為了在搜索靈活性與搜索空間大小之間取得適當的平衡,我們提出了一種新型因子化的層級搜索空間,它將卷積神經網絡分解為一個由模塊組成的序列,然后使用層級搜索空間決定每一個模塊的層級結構。通過這種方式,我們的方法允許不同的層級使用不同的運算與連接。同時,我們強制每一個模塊共享相同的結構,因此與逐層搜索相比搜索空間要顯著地小幾個數量級。
我們的 MnasNet 網絡從新型因子化層級搜索空間中采樣,上圖展示了網絡架構中的不同層級。
我們在 ImageNet 分類和 COCO 目標檢測任務上測試了該方法的有效性。我們的實驗在典型的移動端資源下實現了新的當前最優準確度。特別地,下圖展示了該網絡在 ImageNet 上的結果。
ImageNet 準確率和推理延遲的對比。
在相同的準確率下,MnasNet 模型的速度比手工調參得到的當前最佳模型 MobileNet V2 快 1.5 倍,并且比 NASNet 快 2.4 倍,它也是使用架構搜索的算法。在應用壓縮和激活(squeeze-and-excitation)優化方法后,MnasNet+SE 模型獲得了 76.1% 的 ResNet 級別的 top-1 準確率,其中參數數量是 ResNet 的 1/19,且乘法-加法運算量是它的 1/10。在 COCO 目標檢測任務上,我們的模型族獲得了比 MobileNet 更快的速度和更高的準確率,并在 1/35 的計算成本下獲得了和 SSD300 相當的準確率。
我們很高興看到該自動化架構搜索方法可以在多個復雜移動設備視覺任務上取得當前最佳性能。在未來,我們計劃把更多的運算和優化方法整合到搜索空間中,并將其應用到更多的移動設備視覺任務上,例如語義分割。