(ML) Searching for MobileNetV3

YEN HUNG CHENG
12 min readJul 2, 2023

--

Photo by Marten Bjork on Unsplash

在這篇文章中,作者提出了一種基於互補搜索技術的新一代 MobileNet 架構,稱為 MobileNetV3。為了優化 MobileNetV3 在手機 CPU 上的運行效能,作者結合了硬件感知網絡架構搜索(NAS)和 NetAdapt 算法,進行了改進和調整。

文章中介紹了兩個新的 MobileNet 模型:MobileNetV3-Large 和 MobileNetV3-Small,針對不同的資源限制情況進行了設計。這些模型經過調整後應用於對象檢測和語義分割任務。

對於語義分割任務,作者提出了一種新的高效分割解碼器 LR-ASPP(Lite Reduced Atrous Spatial Pyramid Pooling)。這些模型在移動設備上實現了最新的分類、檢測和分割技術。

實驗結果顯示,MobileNetV3-Large 在 ImageNet 分類準確度上提高了 3.2%,同時減少了延遲,相比於 MobileNetV2 提高了 20%。MobileNetV3-Small 在準確度方面提高了 6.6%,並具有相當的延遲。

此外,MobileNetV3-Large 在 COCO 檢測任務上的速度比 MobileNetV2 快了 25% 以上,而準確度大致相同。在城市景觀分割任務中,MobileNetV3-Large LR-ASPP 的準確度比 MobileNetV2 R-ASPP 快了 34%。

Efficient Mobile Building Blocks

MobileNetV1

MobileNetV2

source

MnasNet

SENet

MobileNetV3 Module

source

與 MobileNetV2 不同的是 MobileNetV3 插入了 SENet 擠壓和激勵(SE)模塊

SE 模塊中使用 Hard-sigmoid 代替 sigmoid 以實現高效計算

Network Search

網絡搜索是一種強大的方法,用於發現和優化網絡架構,並已經在許多研究中得到驗證。對於 MobileNetV3 模型,我們採用了平台感知的神經架構搜索(NAS)方法,通過優化每個網絡塊來搜索全局網絡結構。

Platform-Aware NAS for Block-wise Search

我們採用了類似於平台感知 NAS 方法,其中使用基於循環神經網絡(RNN)的控制器和因式分解分層搜索空間。這使我們能夠在大型移動模型中達到目標延遲約為 80 毫秒的類似結果。因此,我們首先使用相同的 MnasNet-A1 作為初始大型移動模型,然後應用 NetAdapt 和其他優化方法進一步改進。

NetAdapt for Layer-wise Search

第二種技術,NetAdapt ,是一種對平台感知的NAS方法,它允許按順序對每個層進行微調,而不是嘗試推斷全局架構。以下是該技術的過程概述:

  1. 從種子網絡架構(在這種情況下,是平台感知NAS)開始。
  2. 對於每個步驟:

(a) 生成一組新的提案,每個提案代表對架構的修改,使延遲至少減少δ。

(b) 對於每個提案,使用預訓練模型從前一步中獲取並填充新的架構,適當地截斷並隨機初始化缺失的權重。對於每個提案,進行T步微調,以獲得準確度的粗略估計。

(c) 根據某些指標選擇最佳提案。

3.迭代上述步驟,直到達到目標延遲。

總結而言,NetAdapt 是一種迭代的方法,根據目標延遲,生成並微調一系列架構提案,選擇具有最佳準確度和延遲改善的提案。通過這種方式,可以有效地優化網絡架構以滿足特定的硬件平台需求。

Network Improvements

Comparison of original last stage and efficient last stage
  • 在原始網絡中,1×1卷積作為最後一層,以便從 320 維擴展到更高維的特徵空間(1280維)。為了擁有豐富的預測特徵,這一層至關重要。然而,這是增加額外的延遲作為代價。
  • 第一個修改是將這一層移至最終平均池化 (Avg-Pool) 之後。這最終的特徵集現在以 1×1 空間分辨率而不是 7×7 空間分辨率計算。
  • 一旦降低了該特徵生成層的成本,就不再需要之前的瓶頸投影層來減少計算。
  • 高效的最終減少了延遲減少了 7 毫秒,即運行時間的 11%,並減少了 3000 萬個 MAdds 的操作數量,且幾乎沒有損失準確性。
  • 在最初的網路層,通過減少濾波器的數量(32->16),,同時使用 ReLU非線性激活函數保持了模型的精度。這樣的優化節省了 2 毫秒的運行時間和 1000 萬個MAdds的操作數量

Nonlinearities

swish

source

儘管 swish 這種非線性函數提高了精度,但在移動設備上計算的成本更高。

h-swish(hard version of swish)作者提出的

source

這種非線性的改變帶來了許多優勢,例如在保持精度的同時,它能夠在各種軟體和硬體框架上實現,並且在量化模式下避免了數值精度損失。此外,這種非線性的引入還可以提高模型的運行速度。然而,這種改變也導致了15%的增加延遲。為了彌補這一開銷,可以通過將非線性與之前的層進行融合,從而消除多餘的計算成本。

Sigmoid and swish nonlinearities and ther “hard” counterparts.

Large squeeze-and-excite

我們對”擠壓”(squeeze)和”激勵”(excite)瓶頸的設計進行了改進。傳統上,這些瓶頸的大小與卷積瓶頸的大小有關。然而,我們將它們全部替換為一個固定的數值,即擴展層中的通道數的 1/4。通過這種改變,我們發現可以提高模型的準確性,適度增加參數數量,同時並沒有明顯的延遲成本。

MobileNetV3-Large and MobileNetV3-Small

MobileNetV3-Large
MobileNetV3-Small

SE :表示是否存使用 Squeeze-And-Excite

NL:表示所使用的非線性類型

HS:表示使用 h-swish

RE:表示使用 ReLU

NBN:表示沒有批量歸一化

s:表示步幅

Experiments

Classification

Floating point performance on the Pixel family of phones (P-n denotes a Pixel-n phone)

source

所有延遲均以毫秒為單位,並使用批量大小為 1 的單個大核心進行測量。 ImageNet 上的 Top-1 準確度。

Ablation study

Quantized performance

source

所有延遲均以毫秒為單位。 推理延遲是使用相應 Pixel 1/2/3 設備上的單個大核心來測量的。

Performance of MobileNetV3 as a function of different multipliers and resolutions

source

MobileNetV3 的性能作為不同的函數乘數(multipliers)和分辨率(resolutions)

乘數(multipliers):0.35、0.5、0.75、1.0 和 1.25

固定分辨率(fixed resolution):224

分辨率(resolutions): 96、128、160、192、224 和 256

其中固定深度(fixed depth multiplier)乘數: 1.0

Effect of non-linearities on MobileNetV3-Large

source

h-swish @N中,N表示通道數,在第一層使用了 h-swish。 第三列顯示沒有優化 h-swish 的運行時間。 Top-1 準確度在 ImageNet 上,延遲時間以毫秒為單位。

Impact of h-swish vs ReLU on latency for optimized and non-optimized h-swish

source

曲線顯示了使用深度的前沿乘數(frontier of using depth
multiplier)。 請注意,將 h-swish 放置在具有 80 個通道的所有層上或更多 (V3) 為優化的 h-swish 和非優化的 h-swish 提供最佳權衡。

Impact of individual components in the development of
MobileNetV3

source

進度是通過向上和向左移動來衡量的。

Detection

Building on MobileNetV3, the proposed segmentation head, Lite R-ASPP, delivers fast semantic segmentation results while mixing features from multiple resolutions

source

作者提出的網路架構

Object detection results of SSDLite with different backbones on COCO test set

source

† :C4 和 C5 之間的塊中的通道減少了 2 倍。

MobileNetV3 相對於 MobileNetV2 和 MnasNet 模型,性能提高了35%。通道減少技巧在兩個 MobileNetV3 模型中減少了約 15% 的延遲,同時沒有mAP 損失。這表明在Imagenet分類和COCO對象檢測任務中,不同的特徵提取器形狀可能更適合。

Semantic Segmentation

Semantic segmentation results on Cityscapes val set

source
  • RF2表示將最後一個塊中的濾波器數量減少一半。 V2 0.5 和 V2 0.35 是指MobileNetV2 的不同版本,其中深度乘數分別為 0.5 和 0.35。
  • SH代表分段頭,其中×表示採用R-ASPP,而X表示採用建議的LR-ASPP。
  • F表示分段頭中使用的濾波器數量。
  • CPU(f)表示在Pixel 3上使用單個大核心對全分辨率輸入(即1024×2048)進行的CPU時間測量。
  • CPU(h)表示在相對較低分辨率輸入(即512×1024)上進行的CPU時間測量。第8行和11行是MobileNetV3分割候選者的結果。

Semantic segmentation results on Cityscapes test set

source

ESPNet 和 CCC2 採用一半分辨率輸入,而我們的模型直接採用全分辨率輸入。

Conclusions and future work

本文介紹了 MobileNetV3 Large 和 MobileNetV3 small,展示了移動領域中分類、檢測和分割任務的最新技術水平。我們通過多種網絡架構搜索算法和網絡設計改進的努力,提供了下一代移動模型的解決方案。我們還展示瞭如何在移動模型領域中引入非線性激活函數(如swish)和壓縮激勵的量化友好和高效應用。

文中還介紹了一種新型的輕量級分段解碼器 LR-ASPP。雖然如何最好地自動混合仍然是一個待解決的問題,但我們對具有人類直覺的搜索技術取得的初步積極成果感到滿意,並將繼續完善這些方法作為未來的工作方向。

--

--