(五)MobileNet_v3----2019ICCV論文解讀

Searching for MobileNetV3

Abstract

我們將結合互補的搜索技術以及新穎的體系結構設計,展示下一代MobileNets。通過結合NetAdapt算法的硬件感知網絡架構搜索(NAS),將MobileNetV3調整到手機CPU,然後通過新穎的架構改進對其進行改進。本文開始探索自動搜索算法和網絡設計如何協同工作以利用互補方法來改善整體技術水平。通過此過程,我們創建了兩個要發佈的新MobileNet模型:MobileNetV3-Large和MobileNetV3-Small,它們分別針對高資源和低資源的用例。然後將這些模型改編並應用於對象檢測和語義分段的任務。對於語義分割(或任何密集像素預測)的任務,我們提出了一種新的高效分割解碼器精簡版減少空間金字塔空間池(LR-ASPP)。我們實現了移動分類,檢測和分段的最新技術成果。與MobileNetVV2相比,MobileNetV3-Large在ImageNet分類上的準確度高3.2%,同時將延遲降低了20%。與延遲相當的MobileNetV2模型相比,MobileNetV3-Small的準確度高6.6%。 MobileNetV3-Large的檢測速度快25%以上,精度與COCO檢測上的MobileNetV2大致相同。對於Cityscapes分割,MobileNetV3-Large LRASPP比MobileNetV2 R-ASPP快34%。

1 Introduction

在這裏插入圖片描述
高效的神經網絡在移動應用中正變得無處不在,從而實現了全新的設備上體驗。 它們還是個人隱私的關鍵促成因素,使用戶無需將其數據發送到要評估的服務器即可獲得神經網絡的好處。 神經網絡效率的提高不僅可以通過更高的準確性和更低的延遲來改善用戶體驗,還可以通過降低功耗來幫助延長電池壽命。

本文介紹了我們開發MobileNetV3大模型和小模型所採用的方法,以便提供下一代高效,高效的神經網絡模型來爲設備上的計算機視覺提供動力。新的網絡推動了最先進的技術發展,並演示瞭如何將自動搜索與新穎的體系結構相結合以構建有效的模型。

本文的目的是開發最佳的移動計算機視覺架構,以優化在移動設備上的準確性延遲。爲此,我們引入了(1)互補搜索技術,(2)針對移動設置實用的非線性的新高效版本,(3)新的高效網絡設計,(4)新的高效分段解碼器。我們提供了詳盡的實驗,證明了每種技術在多種使用案例和移動電話上的功效評價值。

本文的結構如下。我們從第2節中的相關工作開始討論。第3節回顧了用於移動模型的有效構建基塊。第4節回顧了架構搜索以及MnasNet和NetAdapt算法的互補性。第5節介紹了新穎的架構設計,該設計提高了通過聯合搜索發現的模型的效率。第6節介紹了用於分類,檢測和細分的廣泛實驗,以證明其功效並瞭解不同元素的作用。第7節包含結論和未來的工作。

2 Related Work

近年來,設計深度神經網絡架構以在精度和效率之間實現最佳折衷一直是一個活躍的研究領域。新穎的手工結構和算法神經體系結構搜索在推進該領域方面都發揮了重要作用。

SqueezeNet [22]廣泛使用帶有壓縮和擴展模塊的1x1卷積,主要側重於減少參數數量。最近的工作將重點從減少參數轉移到減少操作數(MAdds)和實際測量的延遲。 MobileNetV1 [19]使用深度可分離卷積來顯着提高計算效率。 MobileNetV2 [39]通過引入具有反向殘差和線性瓶頸的資源有效塊來對此進行擴展。 ShuffleNet [49]利用組卷積和信道隨機操作進一步減少了MAdds。 CondenseNet [21]在訓練階段學習羣卷積,以保持各層之間有用的密集連接,以供特徵重用。 ShiftNet [46]提出了與逐點卷積交錯的移位運算,以取代昂貴的空間卷積。

爲了使架構設計過程自動化,首先引入了強化學習(RL)來搜索具有競爭力的準確性的高效架構[53,54,3,27,35]。完全可配置的搜索空間可以成倍增長並且難以處理。因此,架構搜索的早期工作集中在單元級別的結構搜索上,並且同一單元在所有層中都可以重用。最近,[43]探索了一個塊級分層搜索空間,該空間允許在網絡的不同分辨率塊上使用不同的層結構。爲了減少搜索的計算成本,在[28,5,45]中使用可微體系結構搜索框架進行基於梯度的優化。專注於使現有網絡適應受限的移動平臺,[48、15、12]提出了更有效的自動化網絡簡化算法。

量化[23,25,47,41,51,52,37]是通過降低精度算法來提高網絡效率的另一項重要補充工作。最後,知識蒸餾[4,17]提供了一種額外的補充方法,可以在大型“教師”網絡的指導下生成小型準確的“學生”網絡。

3 Efficient Mobile Building Blocks

移動模型已經建立在越來越高效的構建塊上。 MobileNetV1 [19]引入了深度可分離卷積作爲傳統卷積層的有效替代。深度可分離卷積通過將空間濾波與特徵生成機制分離,有效地分解了傳統卷積。深度可分離卷積由兩個單獨的層定義:用於空間濾波的輕量深度深度卷積和用於特徵生成的較重的1x1點向卷積。

MobileNetV2 [39]引入了線性瓶頸和倒置殘差結構,以便通過利用問題的低秩性質來使層結構更加有效。這種結構如圖3所示,由1x1擴展卷積,深度卷積和1x1投影層定義。當且僅當它們具有相同數量的通道時,輸入和輸出才通過剩餘連接進行連接。這種結構在輸入和輸出處保持緊湊的表示形式,同時在內部擴展到更高維度的特徵空間以提高非線性每個通道變換的表達能力。

MnasNet [43]在MobileNetV2結構的基礎上,通過將基於擠壓和激勵的輕量級注意模塊引入瓶頸結構中。注意,與[20]中提出的基於ResNet的模塊相比,擠壓和激勵模塊集成在不同的位置。該模塊被放置在擴展中的深度過濾器之後,以便引起注意,如圖4所示。
在這裏插入圖片描述
對於MobileNetV3,我們使用這些層的組合作爲構建塊,以構建最有效的模型。層也通過修改的swish非線性進行升級[36、13、16]。擠壓和激勵以及急速的非線性都使用S形,這在定點算法中計算效率低下,同時也難以保持精度,因此我們將其替換爲5.2所述的hard sigmoid[2,11]。

4 Network Search

網絡搜索已經顯示出它是發現和優化網絡體系結構的非常強大的工具[53、43、5、48]。對於MobileNetV3,我們使用可感知平臺的NAS通過優化每個網絡塊來搜索全局網絡結構。然後,我們使用NetAdapt算法在每一層中搜索過濾器的數量。這些技術是互補的,可以組合起來以有效地找到給定硬件平臺的優化模型。

4.1. Platform-Aware NAS for Block-wise Search

類似於[43],我們採用了平臺感知的神經架構方法來查找全局網絡結構。由於我們使用相同的基於RNN的控制器和相同的分解式分層搜索空間,因此對於目標延遲約爲80ms的大型移動模型,我們發現的結果與[43]相似。因此,我們只需重複使用與最初的大型移動模型相同的MnasNet-A1 [43],然後在其之上應用NetAdapt [48]和其他優化。

但是,我們觀察到原始獎勵設計並未針對小型移動模型進行優化。具體來說,它使用多目標獎勵ACC(m)×[LAT(m)/ T AR] w來近似Pareto最優解,方法是根據以下公式平衡每個模型m的模型精度ACC(m)和等待時間LAT(m)目標等待時間T AR。我們觀察到,對於小型模型,精度隨着時延的變化會更加顯着。因此,我們需要較小的權重因子w = -0.15(與[43]中的原始w = -0.07相比),以補償不同延遲下較大的精度變化。通過使用新的權重因子w進行增強,我們從頭開始進行新的體系結構搜索,以找到初始的種子模型,然後應用NetAdapt和其他優化來獲得最終的MobileNetV3-Small模型。

4.2. NetAdapt for Layer-wise Search

我們在架構搜索中採用的第二種技術是NetAdapt [48]。這種方法是對可感知平臺的NAS的補充:它允許以順序的方式微調各個層,而不是嘗試推斷粗糙但全局的體系結構。有關完整的詳細信息,請參閱原始論文。簡而言之,該技術進行如下:

​ 1.首先從平臺感知型NAS發現的種子網絡架構開始。

​ 2.對於每個步驟:(a)生成一組新提案。每個提議都代表對體系結構的修改,與上一步驟相比,該體系結構至少使延遲減少了δ。 (b)對於每個建議,我們使用上一步中的預訓練模型,並填充新建議的體系結構,並適當地截斷和隨機初始化丟失的權重。微調每個提案的T步,以粗略估計準確性。 (c)根據某些指標選擇最佳建議。

​ 3.重複上一步,直到達到目標延遲。

在[48]中,度量標準是最小化精度變化。我們修改了該算法,並最小化了等待時間變化和準確性變化之間的比率。也就是說,對於在每個NetAdapt步驟中生成的所有投標,我們選擇一個最大化的建議:ΔAcc/|Δlatency|,其中Δlatency滿足2(a)中的約束。直覺是,因爲我們的建議是離散的,所以我們更喜歡使權衡曲線的斜率最大化的建議。

重複此過程,直到延遲達到其目標,然後我們從頭開始重新訓練新架構。我們使用與[48]中的MobilenetV2相同的提案生成器。具體來說,我們允許以下兩種類型的提案:

​ 1.減小任何擴展層的大小;

​ 2.減少共享相同瓶頸大小的所有塊的瓶頸-保持剩餘連接。

對於我們的實驗,我們使用T = 10000並發現,雖然它提高了建議的初始精調的準確性,但是當從頭開始訓練時,它不會改變最終準確性。我們設置δ= 0.01 | L |,其中L是種子模型的等待時間。

5 Network Improvements

除了網絡搜索外,我們還爲模型引入了幾個新組件,以進一步改進最終模型。我們在網絡的開頭和結尾重新設計了計算昂貴的層。我們還介紹了新的非線性h-swish,這是最近的swish非線性的改進版本,它計算速度更快,對量化更友好。

5.1. Redesigning Expensive Layers

通過架構搜索找到模型後,我們會發現某些最後一層以及一些較早的層比其他層更昂貴。我們建議對體系結構進行一些修改,以減少這些慢層的等待時間,同時保持準確性。這些修改超出了當前搜索空間的範圍。

第一個修改重做了網絡的最後幾層如何交互以更有效地產生最終功能。當前基於MobileNetV2的倒置瓶頸結構和變體的模型使用1x1卷積作爲最後一層,以便擴展到更高維度的特徵空間。該層對於具有豐富的預測功能至關重要。但是,這要付出額外的等待時間。

爲了減少延遲並保留高維特徵,我們將該層移到最終的平均池之外。現在以1x1的空間分辨率而不是7x7的空間分辨率計算出最終的要素集。這種設計選擇的結果是,就計算和等待時間而言,特徵的計算變得幾乎免費。

一旦減輕了該特徵生成層的成本,就不再需要先前的瓶頸投影層來減少計算量。此觀察結果使我們能夠刪除先前瓶頸層中的投影和過濾層,從而進一步降低了計算複雜性。原始的和優化的最後階段可以在圖5中看到。有效的最後階段將等待時間減少了7毫秒,這是運行時間的11%,並減少了3000萬次MAdds的操作次數,而幾乎沒有準確性的損失。第6節包含詳細結果。

另一個昂貴的層是最初的過濾器集。 當前的移動模型傾向於在完整的3x3卷積中使用32個濾波器來構建用於邊緣檢測的初始濾波器組。 通常,這些濾鏡是彼此的鏡像。 我們嘗試減少濾波器的數量並使用不同的非線性來嘗試減少冗餘。 我們決定在該層的性能以及其他經過測試的非線性上使用硬swish非線性。 使用ReLU或swish,我們能夠將過濾器數量減少到16個,同時保持與32個過濾器相同的精度。 這樣可以節省額外的2毫秒和1000萬個MAdd。
在這裏插入圖片描述

5.2. Nonlinearities

在[36、13、16]中引入了一種稱爲swish的非線性,當該非線性用作ReLU的直接替代品時,可以顯着提高神經網絡的準確性。非線性定義爲
 swish x=xσ(x) \text { swish } x=x \cdot \sigma(x)
儘管這種非線性提高了準確性,但在嵌入式環境中卻帶來了非零成本,因爲S型函數在移動設備上的計算成本更高。我們以兩種方式處理這個問題。

1.我們用它的分段線性硬模擬代替Sigmoid函數:類似於[11,44]的ReLU6(x + 3)6。微小的區別是我們使用ReLU6而不是自定義裁剪常數。同樣,swish的硬版本變成
h -swish [x]=xReLU6(x+3)6 \mathrm{h} \text { -swish }[x]=x \frac{\operatorname{ReLU} 6(x+3)}{6}
最近在[2]中也提出了類似版本的“艱苦嘗試”。 圖6顯示了S型和S型非線性的軟,硬形式的比較。我們選擇常數的原因是簡單性,並且與原始的平滑形式非常匹配。 在我們的實驗中,我們發現所有這些功能的硬版本在準確性上沒有明顯的區別,但是從部署角度來看具有多重優勢。 首先,幾乎所有軟件和硬件框架都提供了ReLU6的優化實現。 其次,在量化模式下,它消除了由於近似S形的不同實現而導致的潛在數值精度損失。 最後,在實踐中,h-swish可以實現爲分段功能,以減少內存訪問次數,從而大大降低了等待時間成本。

2.隨着我們深入網絡,應用非線性的成本降低,這是因爲每當分辨率降低時,每個層的激活內存通常都會減半。順便說一句,我們發現,僅在更深層次中使用它們就可以實現大部分收益。因此,在我們的架構中,我們僅在模型的後半部分使用h-swish。準確的佈局請參見表1和2。

即使進行了這些優化,h-swish仍然會帶來一些延遲成本。但是,正如我們在第6節中所演示的那樣,對準確性和延遲的淨影響是積極的,沒有優化,而在使用基於分段函數的優化實現時則是實質性的。
在這裏插入圖片描述

5.3. Large squeeze-and-excite

在[43]中,擠壓和激發瓶頸的大小是卷積瓶頸的大小。相反,我們將它們全部替換爲固定爲擴展層中通道數的1/4。我們發現這樣做可以在不增加參數數量的情況下提高準確性,並且不會產生明顯的等待時間。

5.4. MobileNetV3 Definitions

MobileNetV3定義爲兩個模型:MobileNetV3Large和MobileNetV3-Small。這些模型分別針對高資源和低資源的用例。通過應用可感知平臺的NAS和NetAdapt進行網絡搜索並結合本節中定義的網絡改進來創建模型。有關我們網絡的完整規格,請參見表1和2。

6 Experiments

我們目前的實驗結果證明了新MobileNetV3模型的有效性。我們報告有關分類,檢測和細分的結果。我們還報告了各種消融研究,以闡明各種設計決策的影響。

6.1. Classification

在這裏插入圖片描述
在這裏插入圖片描述
作爲一種標準,我們將ImageNet [38]用於我們所有的分類實驗,並比較準確性與各種資源使用量度,例如等待時間和乘積(MAdds)。

6.1.1 Training setup

我們使用在0.9x動量的標準tensorflow RMSProp Optimizer在4x4 TPU Pod [24]上的同步訓練設置來訓練模型。 我們使用初始學習率爲0.1,批量大小爲4096(每個芯片128張圖像),並且每3個週期的學習率衰減率爲0.01。 我們使用0.8的差值,l2權重衰減1e-5以及與Inception相同的圖像預處理[42]。 最後,我們使用衰減爲0.9999的指數移動平均值。 我們所有的卷積層都使用批量歸一化層,平均衰減爲0.99。
在這裏插入圖片描述

6.1.2 Measurement setup

爲了測量延遲,我們使用標準的Google Pixel手機,並通過標準的TFLite Benchmark Tool運行所有網絡。我們在所有測量中均使用單線程大內核。我們不報告多核推斷時間,因爲我們發現此設置對移動應用程序不太實用。我們爲tensorflow lite貢獻了一個原子級的h-swish運算符,現在默認爲最新版本。我們在圖9中顯示了優化的h-swish的影響。

6.2. Results

從圖1可以看出,我們的模型優於MnasNet [43],ProxylessNas [5]和MobileNetV2 [39]等現有技術。我們在表3中報告了不同Pixel手機上的浮點性能。我們在表4中包含了量化結果。

在圖7中,我們顯示了MobileNetV3性能的取捨與乘數和分辨率的關係。請注意,MobileNetV3-Small如何通過乘數縮放以匹配性能近3%的方式勝過MobileNetV3Large。另一方面,分辨率比乘數提供了更好的折衷。但是,應該注意,分辨率通常是由問題決定的(例如,分段和檢測問題通常需要更高的分辨率),因此不能始終用作可調參數。

6.2.1 Ablation study

非線性的影響在表5中,我們研究了在何處插入h-swish非線性的選擇,以及在天真的實現上使用優化實現的改進。 可以看出,使用優化的h-swish實現可以節省6毫秒(超過運行時間的10%)。 與傳統的ReLU相比,優化的h-swish僅增加了1ms的時間。
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
圖8顯示了基於非線性選擇和網絡寬度的有效邊界。 MobileNetV3在網絡中間使用h-swish,顯然主導了ReLU。有趣的是,向整個網絡添加h-swish略勝於擴展網絡的插值邊界。
其他組件的影響在圖9中,我們顯示了不同組件的引入如何沿着等待時間/準確性曲線移動。

6.3. Detection

我們使用MobileNetV3作爲SSDLite [39]中骨幹特徵提取器的直接替代,並與COCO數據集上的其他骨幹網絡進行比較[26]。

按照MobileNetV2 [39],我們將SSDLite的第一層附加到輸出步幅爲16的最後一個特徵提取器層,並將SSDLite的第二層附加到輸出步幅爲32的最後一個特徵提取器層。檢測文獻中,我們將這兩個特徵提取層分別稱爲C4和C5。對於MobileNetV3-Large,C4是第13個瓶頸塊的擴展層。對於MobileNetV3-Small,C4是第9個瓶頸塊的擴展層。對於兩個網絡,C5是池化之前的層。

此外,我們還將C4和C5之間所有功能層的通道數減少了2。這是因爲MobileNetV3的最後幾層已被調整爲輸出1000類,當轉移到90類COCO時可能是多餘的。

表中給出了COCO測試儀的結果。 6.通過減少信道,MobileNetV3-Large比具有幾乎相同的mAP的MobileNetVV2快27%。 具有通道減少功能的MobileNetV3-Small也比MobileNetV2和MnasNet高2.4和0.5 mAP,而速度卻快35%。 對於這兩種MobileNetV3模型,信道減少技巧均有助於將等待時間減少約15%,而無mAP損失,這表明Imagenet分類和COCO對象檢測可能更喜歡不同的特徵提取器形狀。

在這裏插入圖片描述

6.4. Semantic Segmentation

在本小節中,我們將MobileNetV2 [39]和提出的MobileNetV3用作移動語義分段任務的網絡骨幹。此外,我們比較了兩個細分頭。在[39]中提出了第一個,稱爲R-ASPP。 R-ASPP是原子空間金字塔池化模塊[7、8、9]的簡化設計,該模塊僅採用由1×1卷積和全局平均池化操作[29、50]組成的兩個分支。在這項工作中,我們提出了另一個輕量級的細分頭,稱爲Lite R-ASPP(或LR-ASPP),如圖10所示。Lite R-ASPP相對於R-ASPP進行了改進,部署了全局平均以類似於“擠壓和激勵”模塊[20]的方式進行池化,在這種方法中,我們採用了一個大步幅的大型池化內核(以節省一些計算量),並且模塊中只有一個1×1卷積。我們對MobileNetV3的最後一個塊應用無窮卷積[18、40、33、6]以提取更密集的功能,並進一步從低級功能添加跳過連接[30]以捕獲更多詳細信息。

我們使用mIOU [14]對Cityscapes數據集[10]進行實驗,僅使用“精細”註釋。我們採用與[8,39]相同的訓練方案。我們所有的模型都是從零開始訓練的,而無需在ImageNet [38]上進行預訓練,並使用單尺度輸入進行評估。與對象檢測類似,我們觀察到可以將網絡主幹的最後一個塊中的信道減少2倍,而不會顯着降低性能。我們認爲這是因爲主幹網是針對1000類ImageNet圖像分類而設計的[38],而Cityscapes上只有19個類,這意味着主幹網中存在一些通道冗餘。

我們在Tab7中報告我們的Cityscapes驗證集結果。 如表中所示,我們觀察到(1)將網絡主幹的最後一個塊中的信道減少2倍,可以顯着提高速度,同時保持類似的性能(行1與行2,行5與行2)。第6行,(2)提出的分割頭LR-ASPP比R-ASPP稍快[39],同時提高了性能(第2行與第3行對比,第6行與第7行對比),(3)減少了分割頭中的256到128的過濾器將速度提高,但性能稍差(第3行與第4行,第7行與第8行),(4)當採用相同設置時,MobileNetV3模型變體獲得相似的結果性能,但略高於MobileNetV2(行1與第5行,第2行與第6行,第3行與第7行,第4行與第8行),(5)MobileNetV3-Small的性能與MobileNetV2相似-0.5的速度更快,並且(6)MobileNetV3-Small的速度明顯優於MobileNetV2-0.35。

標籤圖8顯示了我們的Cityscapes測試集結果。我們使用MobileNetV3作爲網絡骨幹的細分模型分別比ESPNetv2 [32],CCC2 [34]和ESPNetv1 [32]高6.4%,10.6%,12.3%,而在MAdds方面則更快。在MobileNetV3的最後一個塊中不使用原子卷積提取密集特徵圖時,性能會稍微下降0.6%,但速度提高到1.98B(對於半分辨率輸入),是1.36、1.59和2.27倍分別比ESPNetv2,CCC2和ESPNetv1快。此外,我們使用MobileNetV3-Small作爲網絡主幹的模型仍然比所有模型都至少健康地勝過2.1%。

7 Conclusions and future work

在本文中,我們介紹了MobileNetV3大模型和小模型,這些模型展示了移動分類,檢測和分段方面的最新技術。 我們已經描述了我們利用多種網絡體系結構搜索算法所做的努力以及網絡設計的進步,以交付下一代移動模型。 我們還展示瞭如何以友好的量化方式高效地適應像swish這樣的非線性並施加擠壓和激勵,並將其作爲有效工具引入移動模型領域。 我們還介紹了一種稱爲LR-ASPP的新型輕量級分段解碼器。 儘管仍然存在如何最好地將自動搜索技術與人類直覺相結合的懸而未決的問題,但我們很高興介紹這些最初的積極成果,並將在以後的工作中繼續完善方法。
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

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