(ML) Searching for MobileNetV3
在這篇文章中,作者提出了一種基於互補搜索技術的新一代 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
MnasNet
SENet
MobileNetV3 Module
與 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方法,它允許按順序對每個層進行微調,而不是嘗試推斷全局架構。以下是該技術的過程概述:
- 從種子網絡架構(在這種情況下,是平台感知NAS)開始。
- 對於每個步驟:
(a) 生成一組新的提案,每個提案代表對架構的修改,使延遲至少減少δ。
(b) 對於每個提案,使用預訓練模型從前一步中獲取並填充新的架構,適當地截斷並隨機初始化缺失的權重。對於每個提案,進行T步微調,以獲得準確度的粗略估計。
(c) 根據某些指標選擇最佳提案。
3.迭代上述步驟,直到達到目標延遲。
總結而言,NetAdapt 是一種迭代的方法,根據目標延遲,生成並微調一系列架構提案,選擇具有最佳準確度和延遲改善的提案。通過這種方式,可以有效地優化網絡架構以滿足特定的硬件平台需求。
Network Improvements
- 在原始網絡中,1×1卷積作為最後一層,以便從 320 維擴展到更高維的特徵空間(1280維)。為了擁有豐富的預測特徵,這一層至關重要。然而,這是增加額外的延遲作為代價。
- 第一個修改是將這一層移至最終平均池化 (Avg-Pool) 之後。這最終的特徵集現在以 1×1 空間分辨率而不是 7×7 空間分辨率計算。
- 一旦降低了該特徵生成層的成本,就不再需要之前的瓶頸投影層來減少計算。
- 高效的最終減少了延遲減少了 7 毫秒,即運行時間的 11%,並減少了 3000 萬個 MAdds 的操作數量,且幾乎沒有損失準確性。
- 在最初的網路層,通過減少濾波器的數量(32->16),,同時使用 ReLU非線性激活函數保持了模型的精度。這樣的優化節省了 2 毫秒的運行時間和 1000 萬個MAdds的操作數量。
Nonlinearities
swish
儘管 swish 這種非線性函數提高了精度,但在移動設備上計算的成本更高。
h-swish(hard version of swish)作者提出的
這種非線性的改變帶來了許多優勢,例如在保持精度的同時,它能夠在各種軟體和硬體框架上實現,並且在量化模式下避免了數值精度損失。此外,這種非線性的引入還可以提高模型的運行速度。然而,這種改變也導致了15%的增加延遲。為了彌補這一開銷,可以通過將非線性與之前的層進行融合,從而消除多餘的計算成本。
Large squeeze-and-excite
我們對”擠壓”(squeeze)和”激勵”(excite)瓶頸的設計進行了改進。傳統上,這些瓶頸的大小與卷積瓶頸的大小有關。然而,我們將它們全部替換為一個固定的數值,即擴展層中的通道數的 1/4。通過這種改變,我們發現可以提高模型的準確性,適度增加參數數量,同時並沒有明顯的延遲成本。
MobileNetV3-Large and 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)
所有延遲均以毫秒為單位,並使用批量大小為 1 的單個大核心進行測量。 ImageNet 上的 Top-1 準確度。
Ablation study
Quantized performance
所有延遲均以毫秒為單位。 推理延遲是使用相應 Pixel 1/2/3 設備上的單個大核心來測量的。
Performance of MobileNetV3 as a function of different multipliers and resolutions
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
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
曲線顯示了使用深度的前沿乘數(frontier of using depth
multiplier)。 請注意,將 h-swish 放置在具有 80 個通道的所有層上或更多 (V3) 為優化的 h-swish 和非優化的 h-swish 提供最佳權衡。
Impact of individual components in the development of
MobileNetV3
進度是通過向上和向左移動來衡量的。
Detection
Building on MobileNetV3, the proposed segmentation head, Lite R-ASPP, delivers fast semantic segmentation results while mixing features from multiple resolutions
作者提出的網路架構
Object detection results of SSDLite with different backbones on COCO test set
† :C4 和 C5 之間的塊中的通道減少了 2 倍。
MobileNetV3 相對於 MobileNetV2 和 MnasNet 模型,性能提高了35%。通道減少技巧在兩個 MobileNetV3 模型中減少了約 15% 的延遲,同時沒有mAP 損失。這表明在Imagenet分類和COCO對象檢測任務中,不同的特徵提取器形狀可能更適合。
Semantic Segmentation
Semantic segmentation results on Cityscapes val set
- 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
ESPNet 和 CCC2 採用一半分辨率輸入,而我們的模型直接採用全分辨率輸入。
Conclusions and future work
本文介紹了 MobileNetV3 Large 和 MobileNetV3 small,展示了移動領域中分類、檢測和分割任務的最新技術水平。我們通過多種網絡架構搜索算法和網絡設計改進的努力,提供了下一代移動模型的解決方案。我們還展示瞭如何在移動模型領域中引入非線性激活函數(如swish)和壓縮激勵的量化友好和高效應用。
文中還介紹了一種新型的輕量級分段解碼器 LR-ASPP。雖然如何最好地自動混合仍然是一個待解決的問題,但我們對具有人類直覺的搜索技術取得的初步積極成果感到滿意,並將繼續完善這些方法作為未來的工作方向。