MobileNet系列之MobileNet_v1
MobileNet系列之MobileNet_v2
導言:
繼MobileNet_v1和v2提出後,在2019年,MobileNet_v3在衆人的期盼下出來了,MobileNet_v3論文提出了兩個模型,MobileNet_v3-Large和MobileNet_v3-small,其主要差別在于層數不同(其餘設計都一樣),此外還包括一個用于語義分割的MobileNet_v3-Large LRASPP模型。
關注公衆号CV技術指南,及時擷取更多計算機視覺技術總結文章。
MobileNet_v3成就
MobileNet_v3-Large在ImageNet分類中實作了比MobileNet_v2低百分之20的時延,同時高了3.2%精度。MobileNet_v3-small比MobileNet_v2在時延接近的情況下,高了6.6%的精度。
MobileNet_v3-Large在COCO資料集檢測上,在比v2快了25%,而精度卻幾乎一樣。
MobileNet_v3-Large LRASPP比MobileNet_v2 RASPP在Cityscapes分割資料集上快了34%。應該可以說是不負衆望了。
MobileNet_v3主要内容
MobileNet_v3着眼于賦予裝置高效地實作高精度、低延遲時間的能力,而不是發送資料到伺服器,經過伺服器推理後再發送回裝置。為此,論文提出了以下内容:
1) 補充搜尋技術
2) 适用于移動裝置環境的非線性的新有效版本
3) 新的高效網絡設計
4) 新的高效分割解碼器(指的是語義分割)
01 NAS 和NetAdapt
目前,在人工智能界内有一句名言,所謂人工智能,是越人工越智能。現有的一些網絡所具備的高效的性能離不開人對這個網絡模型的精心設計與調參。最近幾年,如何讓計算機根據需求和現有硬體條件自動生成網絡已經進入重要研究方向。
NAS-神經網絡架構搜尋。NAS通過設定一個空間,選擇一個搜尋政策在這個空間内搜尋,采用一個評估政策對搜尋效果進行評估,最終選擇評估效果最好的結構。
在早期,NAS主要進行單元級搜尋,使用一些預定義的操作集合,(如卷積、池化等)此外還包括,每一層的卷積核的大小,步長大小,卷積核數量等,這些集合構成了搜尋空間,使用一個搜尋政策來選擇操作集合,在訓練集訓練這些操作集合組成的網絡,并在驗證集上評估當達到某個門檻值将會停止。
最近,開始進行Block級的搜尋,例如Inception結構,就是一個Block,在搜尋空間中使用了不同大小,不同數量的block。搜尋政策直接搜尋這些block組成網絡,進行測試。
MobileNet_v3使用了用于block搜尋的平台感覺NAS(PlatformAware NAS for Blockwise Search)構成全局網絡結構,使用NetAdapt對網絡結構進行layer-level的finetune。使用的搜尋目标是 ACC(m) × [LAT(m) / TAR]^w, 這裡ACC(m)是模型精度,LAT(m)是延時,TAR是目标延時,w是超參數。
之是以不怎麼介紹NAS,是因為NAS需要數以百計甚至上千的GPU來訓練數月,例如 NASnet需要在 800 個 GPU 上訓練 28 天,對于普通人來說實在有些遙不可及,當然最近也出了一些隻需要少量GPU就能訓練的算法,但至少現在還沒到那種能滿足普遍需求的時候。如有需要,公衆号中有NAS的一篇較為全面的綜述,可掃描文末二維碼關注公衆号。
網絡改進
在搜尋得到的網絡的基礎上,提出了一些改進的方案。在網絡的開始和結束部分,重新設計了計算量大的層,此外還提出了一種新的非線性,即h-swish,h-swish是最近swish的改進版本,計算速度更快,也更易于量化。
02 Redesigning Expensive Layers

在MobileNet_v2的Inverted bottleneck結構中使用1x1卷積作為最後一層,用于擴大到一個更高維的特征空間,這一層對于提供豐富的特征用于預測極為重要,但也增加了延時。
為了降低延時,并保持高維空間特征,MobileNet_v3中把這一層移到了平均池化層的後面,在最後的特征集現在隻需要計算1x1的分辨率,而不是原來的7x7。這種設計選擇的結果是,在計算和延遲方面,特性的計算變得幾乎是免費的。
一旦降低了該特性生成層的成本,就不再需要以前的瓶頸投影層來減少計算量。該觀察允許删除前一個瓶頸層中的投影和過濾層,進而進一步降低計算複雜度。原始階段和優化後的階段如上圖所示。
另一個耗時的層是第一層卷積,目前的移動模型傾向于在一個完整的3x3卷積中使用32個濾波器來建構初始濾波器庫進行邊緣檢測。通常這些過濾器是彼此的鏡像。mobileNet_v3對這一層使h-swish非線性激活函數,其好處是使用了h-swish後濾波器的數量可以減少到16,而同時能夠保持與使用ReLU或swish的32個濾波器相同的精度。這節省了額外的3毫秒和1000萬 MAdds。
03 Nonlinearities
在一篇語義分割的論文中提出了使用swish的非線性函數來代替ReLU函數,它可以顯著提高神經網絡的精度,其定義為:swish x = x · σ(x),這裡σ(x)是sigmoid函數。然而swish雖然提高了精度,但sigmoid函數計算是極為昂貴的,在嵌入式移動端不适合它的存在,是以,MobileNet_V3提出了計算更為簡便的h-swish函數,其定義如下:
如下圖所示,這裡的h是hard的意思,簡單來說就是沒那麼平滑。經過實踐檢驗,sigmoid和swish函數與其hard版本的函數在精度上并沒有什麼明顯的差異。但是hard版本的計算卻簡便得多。
一般來說,在不同的裝置上,對于sigmoid函數都是采用近似的方式實作,(例如,在高數中采用劃分矩形求面積來近似實作積分,這裡的近似是使用某些實作方式近似實作sigmoid函數),是以不同的實作方式會導緻潛在的精度損失。而幾乎所有的軟體和硬體裝置都可以直接實作ReLU6,是以這裡的h-swish将不會出現sigmoid的情況,此外,h-swish可以通過分段函數實作(這是對h-swish的優化,下圖是與沒有優化的實驗效果對比),這樣會降低記憶體通路次數,進而大大降低了等待時間成本。
論文中提到,在較深的層次中使用更能發揮swish的大多數好處,是以在MobileNet_v3結構中 中高層才使用h-swish。此外,h-swish即便使用了這些優化,但仍然引入了一些延遲成本,如下圖所示,使用分段函數作為h-swish的優化比沒有優化效果明顯要好,節約了6ms(大概百分之10), 而相比于ReLU, 優化後的h-swish僅引入了1ms的成本,但精度更高。
04 Large squeeze-and-excite
先簡要介紹一下這個子產品,論文中并沒有介紹。
這是一個注意力機制中的一個子產品SE,即插即用,用于現有的一些網絡。其分為兩個部分,一個是Squeeze部分,通過AdaptiveAvgPool2d将前一層的空間分辨率壓縮為1x1,第二個部分是Excitation部分,對壓縮後的部分進行線性變化(Linear),再ReLU,再Linear(通道數要與下一層通道數一緻),再Sigmoid。将得到的一個1x1x下一層通道數 的層與原先網絡直接卷積得到的下一層逐像素相乘,這樣的好處是有些特征會被突出,有些特征會被抑制,進而實作模型的自注意力機制。
回到本文,MobileNet_v3中加入了這個子產品,但進行了一些調整。一個是将sigmoid換成了h-swish。第二個是将第二Linear的通道數變為下一層的1/4。但這樣就沒辦法逐像素相乘了,因為通道數不比對,然後我去找了MobileNet_v3的代碼,發現它在通道數變為1/4後又使用expand_as将其擴充成了下一層的通道數。
MobileNet_v3結構:
實驗結論
在本文開頭已經介紹了MobileNet_v3的成就,記住那些即可,這裡隻給出圖,就不多介紹了,無非就是不同的超參數下其精度和延時有何變化,在某某資料集中與某某模型對比。稍微看看足以
本文來源于公衆号 CV技術指南 的模型解讀系列。
歡迎關注公衆号 CV技術指南 ,專注于計算機視覺的技術總結、最新技術跟蹤、經典論文解讀。
在公衆号中回複關鍵字 “入門指南“可擷取計算機視覺入門所有必備資料。
其它文章
ML2021 | PatrickStar:通過基于塊的記憶體管理實作預訓練模型的并行訓練
ICCV2021 | PnP-DETR:用Transformer進行高效的視覺分析
ICCV2021 | 醫學影像等小資料集的非自然圖像領域能否用transformer?
ICCV2021 | Vision Transformer中相對位置編碼的反思與改進
ICCV2021 | TransFER:使用Transformer學習關系感覺的面部表情表征
2021-視訊監控中的多目标跟蹤綜述
統一視角了解目标檢測算法:最新進展分析與總結
全面了解目标檢測中的anchor | 姿态估計綜述
目标檢測中回歸損失函數總結 | 小目标檢測常用方法總結
視覺Transformer綜述 | 2021年小目标檢測最新研究綜述
Siamese network綜述 | 小目标檢測的一些問題,思路和方案
視訊了解綜述:動作識别、時序動作定位、視訊Embedding
從CVPR 2021的論文看計算機視覺的現狀
ICCV2021 | MicroNet:以極低的 FLOPs 改進圖像識别
ICCV2021 | 重新思考視覺transformers的空間次元
CVPR2021 | TransCenter: transformer用于多目标跟蹤算法
CVPR2021 | 開放世界的目标檢測
CVPR2021 | TimeSformer-視訊了解的時空注意模型
CVPR2021 | 一個高效的金字塔切分注意力子產品PSA
CVPR2021 | 特征金字塔的新方式YOLOF
經典論文系列 | 重新思考在ImageNet上的預訓練
經典論文系列 | Group Normalization & BN的缺陷
經典論文系列 | 目标檢測--CornerNet & anchor boxes的缺陷
經典論文系列 | 縮小Anchor-based和Anchor-free檢測之間差距的方法:自适應訓練樣本選擇
CV方向的高效閱讀英文文獻方法總結
CNN可視化技術總結(一)-特征圖可視化
CNN可視化技術總結(二)--卷積核可視化
CNN可視化技術總結(三)--類可視化
CNN可視化技術總結(四)--可視化工具與項目
池化技術總結 | NMS總結 | 注意力機制總結
特征金字塔總結 | 資料增強方法總結
計算機視覺專業術語總結(一)建構計算機視覺的知識體系
欠拟合與過拟合技術總結 | 損失函數技術總結
CNN可視化技術總結
CNN結構演變總結—經典模型
CNN結構演變總結—輕量化模型
CNN結構演變總結—設計原則
論文創新的常見思路總結
在公衆号《CV技術指南》中回複“技術總結”可擷取以上所有總結系列文章的彙總pdf