谷歌開源 MobileNetV3:新思路 AutoML 改進計算機視覺模型移動端

雷鋒網 AI 開發者按:谷歌從 17 年發佈 MobileNets 以來,每隔一年即對該架構進行了調整和優化。現在,開發者們對 MobileNetV3 在一次進行了改進,並將 AutoML 和其他新穎的思想融入到該移動端的深度學習框架中。谷歌發佈了相關文章對升級後的 MobileNetV3 進行了講解,雷鋒網 AI 開發者將其整理編譯如下。

谷歌开源 MobileNetV3:新思路 AutoML 改进计算机视觉模型移动端

深度學習融入到移動端的最新創意

將深度學習融合到移動端正成為人工智能領域最活躍的研究領域之一。而設計能夠在移動端運行時有效執行的深度學習模型,則需要對神經網絡中的許多架構範例進行更進一步的思考。

移動端的深度學習模型需要平衡複雜神經網絡結構的精度和移動運行時的性能約束。在移動端深度學習領域中,計算機視覺仍然是最具挑戰性的領域之一。

在 2017 年,谷歌推出了基於 TensorFlow 的計算機視覺系列模型 MobileNets。而最新的 MobileNets 架構正是於幾天前發佈,其中包含了一些改進移動端計算機視覺模型的有趣想法。

谷歌开源 MobileNetV3:新思路 AutoML 改进计算机视觉模型移动端

MobileNetV3 是該模型結構的第三個版本,它能夠為許多主流的移動應用程序提供圖像分析的功能。該體系結構還被集成到流行的框架中,例如:TensorFlow Lite。

MobileNet 需要儘可能維持其中發展較快的計算機視覺和深度學習領域與移動環境侷限性之間平衡。因此,谷歌一直在定期對 MobileNets 架構進行更新,其中也加入了一些有關於深度學習領域中最新穎的想法。

MobileNetV3 論文地址:

https://arxiv.org/abs/1905.02244

來自 MobileNetV1 的啟發

MobileNets 的第一個版本於 2017 年春季發佈,其核心思想是引入一系列基於 TensorFlow 的計算機視覺模型,在最大限度地提高精度的同時,平衡設備上或嵌入式應用程序的有限資源。從概念上講,MobileNetV1 正試圖實現兩個基本目標,以構建移動第一計算機視覺模型:

  • 較小的模型 參數數量更少

  • 較小複雜度 運算中乘法和加法更少

遵循這些原則,MobileNetV1 是一個小型、低延遲、低功耗的參數化模型,可以滿足各種用例的資源約束。它們可以用於實現:分類、檢測、嵌入和分割等功能。

谷歌开源 MobileNetV3:新思路 AutoML 改进计算机视觉模型移动端

MobileNetV1 的核心架構則基於一個流線型架構,該架構使用深度可分離卷積網絡來構建了輕量級深度神經網絡。就神經網絡結構而言,深度可分離卷積將卷積核分成兩個單獨的卷積核,這兩個卷積核依次進行兩個卷積,即先是深度卷積,然後進行逐點卷積,如下圖所示。

谷歌开源 MobileNetV3:新思路 AutoML 改进计算机视觉模型移动端

在 MobileNetV1 中,深度卷積網絡的每個輸入信道都應用了單個濾波器。然後,逐點卷積應用 1 x1 卷積網絡來合併深度卷積的輸出。這種標準卷積方法既能濾波,又能一步將輸入合併成一組新的輸出。在這之中,深度可分離卷積將其分為兩層,一層用於濾波,另一層則用於合併。

第一代 MobileNetV1 的實現作為了 TensorFlow Slim 圖像分類庫的一部分;而隨著新的移動應用程序使用全新的模式進行構建,就誕生出了新的想法以改進整體架構。

升級後的二代 MobileNetV2

第二個版本的 MobileNet 架構於 2018 年初發布。MobileNetV2 則基於 MobileNetV1 的一些思想,並結合新的思想來優化了諸如:分類、目標檢測和語義分割等任務的體系結構。從架構的角度來看,MobileNetV2 為架構增添了兩個新模塊:

  • 引入了層與層之間的線性瓶頸

  • 瓶頸之間的快捷連接。(基本結構如下所示)

谷歌开源 MobileNetV3:新思路 AutoML 改进计算机视觉模型移动端

MobileNetV2 之中的核心思想是,瓶頸對模型的中間輸入和輸出進行編碼,而內層則用於封裝模型從較低級別概念(如:像素等)轉換到較高級別描述符(如:圖像類別等)的能力。最後,與傳統的剩餘連接一樣,快捷方式能夠實現更快地訓練速度和更高的準確性。

加入 AutoML 的 MobileNetsV3

MobileNets 架構的最新改進在今年發表的一篇研究論文中(https://arxiv.org/abs/1905.02244)進行了總結,其主要貢獻是使用 AutoML 為給定的問題找到最佳的神經網絡架構;這與之前版本架構的人工設計形成了鮮明對比。

具體來說,MobileNetV3 利用了兩種 AutoML 技術,即:

  • MnasNet(一種自動移動神經體系結構搜索(MNAS)方法,https://ai.google/research/pubs/pub47217/)

  • NetAdapt(適用於移動應用程序的平臺感知型算法,https://arxiv.org/pdf/1804.03230.pdf)

MobileNetV3 首先使用 MnasNet 進行粗略結構的搜索,然後使用強化學習從一組離散的選擇中選擇最優配置。之後,MobileNetV3 再使用 NetAdapt 對體系結構進行微調,這體現了 NetAdapt 的補充功能,它能夠以較小的降幅對未充分利用的激活通道進行調整。

除此之外,MobileNetV3 的另一個新穎想法是在核心架構中加入一種名為「Squeeze-and-Excitation」的神經網絡(簡稱 SE-Net,也是 ImageNet 2017 圖像分類冠軍)。該神經網絡的核心思想是通過顯式地建模網絡卷積特徵通道之間的相互依賴關係,來提高網絡所產生表示的質量。具體而言,就是通過學習來自動獲取到每個特徵通道的重要程度,然後依照這一結果去提升有用的特徵並抑制對當前任務用處不大的特徵。

為此,開發者們提出了一種允許網絡進行特徵重新校準的機制。通過該機制,網絡可以學習使用全局信息來選擇性地強調信息性特徵,並抑制不太有用的特徵。

而在 MobileNetV3 的例子中,該架構擴展了 MobileNetV2,將 SE-Net 作為搜索空間的一部分,最終得到了更穩定的架構。

谷歌开源 MobileNetV3:新思路 AutoML 改进计算机视觉模型移动端

MobileNetV3 中還有一個有趣的優化,則是重新設計了體系結構中一些運行成本較高的層。第二代 MobileNetV2 中的一些層是模型準確性的基礎,但也引入了潛在變量。通過合併一些基本的優化功能,MobileNetV3 能夠在不犧牲準確性的情況下,刪除 MobileNetV2 體系結構中三個運行成本較高的層。

谷歌开源 MobileNetV3:新思路 AutoML 改进计算机视觉模型移动端谷歌开源 MobileNetV3:新思路 AutoML 改进计算机视觉模型移动端

因此,MobileNetV3 相比以前的架構有了顯著的改進。例如,在目標檢測任務中,MobileNetV3 的操作延遲在減少 25% 的同時,維持和以前版本相同的精度。在分類任務中,也能看到類似的改進,如下圖所示:

谷歌开源 MobileNetV3:新思路 AutoML 改进计算机视觉模型移动端

目前,可以看到 MobileNets 仍然是移動計算機視覺中最先進的體系結構之一。而在這過程中,AutoML 在 MobileNetV3 中的融合也為我們打開了一扇通向更多充滿創意的的架構大門,這些架構可能也是我們曾經從未想過的。

GitHub 中提供了 MobileNets 的最新版本,Tensorflow 目標檢測 API 中則包含了 MobileNetV3 的具體實現,相關地址如下。

MobileNets 最新版本 GitHub 地址:

https://github.com/tensorflow/models/tree/master/research/slim/nets/mobilenet

MobileNetV3 的具體實現:

https://github.com/tensorflow/models/tree/master/research/object_detection

雷鋒網 AI 開發者

雷鋒網年度評選——尋找19大行業的最佳AI落地實踐

創立於2017年的「AI最佳掘金案例年度榜單」,是業內首個人工智能商業案例評選活動。雷鋒網從商用維度出發,尋找人工智能在各個行業的最佳落地實踐。

第三屆評選已正式啟動,關注微信公眾號“雷鋒網”,回覆關鍵詞“榜單”參與報名。詳情可諮詢微信號:xqxq_xq

谷歌开源 MobileNetV3:新思路 AutoML 改进计算机视觉模型移动端


分享到:


相關文章: