https://arxiv.org/pdf/1905.02244.pdf
知識回顧:
MobileNetV1
提出了depthwise的卷積結構加速CNN的訓練,depthwise的操作解釋將通道全部獨立開,做卷積期間通道數不變,可以理解為Group=In_channels的Group Conv,然后利用1X1的卷積實現通道之間的融合。這種方式比直接卷積省去很多參數。
MobileNetV2
為了解決v1一些卷積核訓廢的問題,原因為當通道數比較少的時候,ReLU激活函數會造成較多信息的丟失,於是提出了linear bottleneck layer和inverted residual block, [input]->[1X1卷積增加通道]->[ReLU6]->[depthwise conv]->[ReLU6]->[1X1 conv 降低通道數]->[Linear]->[Input]不再接ReLU層。
MnasNet:
用RL的方法進行網絡搜索,加上了准確率和實時延遲的tradeoff,並不是搜索出一個或者幾個cell然后重復堆疊成一個網絡,而是簡化每個cell的搜索空間但允許各個單元不同。google用TPU進行訓練,資源消耗較大。
SeNet:
seNet中的squeeze-and-excite模塊被加入到mobilenetv2中,squeeze-and-excite模塊結合特征通道的關系來加強網絡的學習能力。
Inception:
Inception結合不同尺度的特征信息,融合不同感受野的特征得到網絡增益,resnet的shortcut結構,結合不同level的特征圖來增強網絡。
NetAdapt:
這篇文章主要涉及了一個平台算法,可以把一些非直接的變量整合進來,比如延時和能源消耗。做法就是直接把模型放到目標平台上訓練然后反饋回數據,再對網絡進行調整,直到滿足設定的條件,優化結束。原文中有算法流程圖,給定一個K conv and FC layers的網絡Net0,在每一步的結構更改中,需要減少一個給定個值deltaR,然后調整每層的卷積核數,生成一個Net_simp集合,在這個集合中找到最高准確率的網絡。保持循環,直到資源消耗滿足給定條件,然后finetune網絡。文章中有一些快速資源消耗估計的方法,如果有需要可以去仔細看看。
MobileNetV3
mobileNetV3=hardware-aware network architecture search(NAS)+NetAdapt+novel architecture advances
論文主要介紹了4個方面:
1.互補的搜索技術
2.非線性實用設置
3.新的高效網絡設計
4.新的高效分割解碼器
一、相關工作
有關網絡優化的工作有:1.SqueezeNet 大量使用1X1的卷積來減少網絡參數。2.減少MAdds的工作有,a,MobileNetV1利用depthwise separable conv來提升計算效率。 b,MobileNetV2利用倒殘差模塊和線性模塊。c.shuffleNet利用group con和channel shuffle操作來降低MAdds.c.CondenseNet在訓練階段學習group conv,並且在層與層之間保持稠密的連接以便特征的重復使用.d,shiftNet提出一種shift操作和point-wise conv交錯的網絡結構替代昂貴的空間卷積。3.量化4.知識蒸餾等操作。
二、網絡搜索
使用NAs通過優化每一個網絡模塊進行全局網路搜索,然后使用NetAdapt搜索每一層的filters,
1.Nas搜索網絡模塊
2.NetAdapt 層級網絡搜索
與Nas互補,搜索過程如下:
a. 初始的網絡結構有Nas搜索得到
b. i) 生成大量的proposal,每個proposal代表結構的一個修改(修改要減少至少delta的延遲)
ii) 利用上一步預訓練的模型,並且填充新的proposal結構,截斷並且隨機初始化丟失的權重,進行T step微調每一個proposal得到大概的精度估計
iii)根據一些度量方法選擇最好的proposal
c. 迭代以前的步驟直到相應的目標延遲達到了
最大化公式,latency滿足b.i。
該論文中使用了兩種proposal:
1. 縮小擴展層的大小
2. 縮小所有模塊中同樣bottleneck 大小的bottleneck。
三、網絡提升
除了網絡搜索,還用dao幾個成分進一步提升最終的網絡模型,重新設計網絡中開始和結尾的計算復雜的層,並且引入了非線性的h-swish,
這種結構計算更快,量化更友好。
1.重新設計計算復雜的層
a. MobileNetV2中的倒殘差結構和相關變體使用1X1的卷積作為最后一層,目的是為了擴展到高維的特征空間,該層比較重要帶來豐富的特征進行prediction,但是同時帶來延遲。
為了降低延遲和保留高維的特征,論文將該層移動到最后的average pooling之后,該特征最后經過1X1的空間卷積而不是7X7的空間卷積。一旦該特征生成層的延遲減少了,前面的bottleneck projection層就不需要了。修改之前的網絡與修改之后的網絡如下:
b. 另外一個復雜的操作就是filters的初始化。目前大量的手機模型傾向於在3X3的卷積中搭配使用32 個filters來構建用來進行邊緣檢測。通常這些filters含有大量冗余,在此使用hard swish nonlinwarity,能夠將filetrs降低到16,同時保留了之前的精度。
Nonlinearities:swish
swish的定義:,swish能夠提升精度並且計算不復雜,而sigmnoid函數計算復雜,因此用下面兩種方式進行處理。
1. 用piece-wise linear hard analog 代替sigmoid。同樣的hard-swish為:
。
2. Large aqueeze-and-excite
we replace them all to fixed to be 1/4 of the number of channels in expansion layer.
四。MobileNetV3的定義:
MobileNetV3-large
MobileNetV3-small
五。實驗結果