(附論文)MicroNet:比MobileNetv3更小更快的網(wǎng)絡(luò)
點(diǎn)擊左上方藍(lán)字關(guān)注我們

鏈接 | https://zhuanlan.zhihu.com/p/337107958
MicroNet: Improving Image Recognition with Extremely Low FLOPs(2020)
論文地址:https://arxiv.org/pdf/2108.05894.pdf
Summary
1.Motivation
本文設(shè)計(jì)了計(jì)算量(FLOPs)超級(jí)無敵少的圖像識(shí)別網(wǎng)絡(luò)MicroNet,同時(shí)還具有較好的性能表現(xiàn)。主要的遵循以下兩個(gè)設(shè)計(jì)原則:
降低網(wǎng)絡(luò)節(jié)點(diǎn)(神經(jīng)元)之間的連通性而不降低網(wǎng)絡(luò)的寬度
使用更復(fù)雜的非線性激活函數(shù)來彌補(bǔ)通性網(wǎng)絡(luò)深度的減少所帶來的精度損失
2.Methods
本文設(shè)計(jì)的MicroNet主要是在MobileNet系列上進(jìn)行改進(jìn)和對比,提出了兩項(xiàng)改進(jìn)方法:
Micro-Factorized convolution 將MobileNet中的point-wise卷積以及depth-wise卷積分解為低秩矩陣,從而使得通道數(shù)目和輸入輸出的連通性得到一個(gè)良好的平衡。
Dynamic Shift-Max 使用一種新的激活函數(shù),通過最大化輸入特征圖與其循環(huán)通道偏移之間的多重動(dòng)態(tài)融合,來增強(qiáng)非線性特征。之所以稱之為動(dòng)態(tài)是因?yàn)椋?span style="outline: 0px;max-width: 100%;font-weight: 600;box-sizing: border-box !important;overflow-wrap: break-word !important;">融合過程的參數(shù)依賴于輸入特征圖。
3.Performance
作者使用Micro-Factorized convolution和Dynamic Shift-Max建立了MicroNets家族,最終實(shí)現(xiàn)了低FLOPs的STOA表現(xiàn)。MicroNet-M1在ImageNet分類任務(wù)上僅僅用12 MFLOPs的計(jì)算量,就實(shí)現(xiàn)了61.1%的top1準(zhǔn)確度,比MobileNetV3要強(qiáng)11.3% .

Keywords
Design Principles
Micro-FactorizedConvolution
Dynamic Shift-Max
Micro-Net Architecture
Introduction
1.Design Principles
要想實(shí)現(xiàn)低FLOPs,主要是要限制網(wǎng)絡(luò)寬度(通道數(shù))和網(wǎng)絡(luò)深度(網(wǎng)絡(luò)層數(shù))。如果把一個(gè)卷積層抽象為一個(gè)圖,那么該層輸入和輸出中間的連接邊,可以用卷積核的參數(shù)量來衡量。因此作者定義了卷積層連通性(connectivity)的概念,即每個(gè)輸出節(jié)點(diǎn)所連接的邊數(shù)。如果我們把一個(gè)卷積層的計(jì)算量設(shè)為固定值,那么更多的網(wǎng)絡(luò)通道數(shù)就意味著更低的連通性(比如深度可分離卷積,具有較多的通道數(shù)但是有很弱的連通性)。作者認(rèn)為平衡好通道數(shù)目和連通性之間的關(guān)系,避免減少通道數(shù),可以有效地提升網(wǎng)絡(luò)的容量。除此之外,當(dāng)網(wǎng)絡(luò)的深度(層數(shù))大大減少時(shí),其非線性性質(zhì)會(huì)受到限制,從而導(dǎo)致明顯的性能下降。因此,作者提出以下兩個(gè)設(shè)計(jì)原則:
通過降低節(jié)點(diǎn)連接性來避免網(wǎng)絡(luò)寬度的減小
作者是通過分解points-wise卷積以及depth-wise卷積來實(shí)現(xiàn)如上原則。
增強(qiáng)每一層的非線性性質(zhì)來彌補(bǔ)網(wǎng)絡(luò)深度減少所帶來的損失
作者是通過設(shè)計(jì)了一個(gè)全新的激活函數(shù)來實(shí)現(xiàn)如上原則,稱為Dynamic Shift-Max
2. Micro-Factorized Convolution
作者將pointwise卷積和depthwise卷積分解為更為合適的尺度,用來平衡通道數(shù)目和輸入輸出連通性。
Micro-Factorized Point-wise Convolution
將point-wise卷積進(jìn)行分解,原文給出的公式較為復(fù)雜,我這里直接對圖進(jìn)行講解。假設(shè)輸出和輸出通道數(shù)都為C。對于常規(guī)的點(diǎn)卷積,其實(shí)就是一個(gè)C*C的實(shí)矩陣W(C維到C維的線性變換)。

但是這樣的點(diǎn)卷積是一種稠密的全連接,在這就帶來巨大的計(jì)算負(fù)擔(dān)。為了進(jìn)一步減少計(jì)算量,提升網(wǎng)絡(luò)的稀疏性(降低連通性),作者將原始的稠密矩陣W分解為3個(gè)更加稀疏的矩陣。

如上圖所示,W為

如上圖所示,我們把一個(gè)特征圖(通道)當(dāng)作一個(gè)節(jié)點(diǎn),輸入和輸出都是C=18個(gè)節(jié)點(diǎn), 壓縮率 R=2, 分組數(shù) G=3。原始點(diǎn)卷積就需要一個(gè)18*18的實(shí)矩陣實(shí)現(xiàn)變換。作者將原始的點(diǎn)卷積操作分為3步:
將18個(gè)節(jié)點(diǎn)映射到9個(gè)節(jié)點(diǎn)(壓縮率為2),分三組卷積,因此每組需要一個(gè)6*3的矩陣。
將9個(gè)節(jié)點(diǎn)使用置換矩陣,進(jìn)行重新排序。
將9個(gè)節(jié)點(diǎn)分三組,映射回18個(gè)節(jié)點(diǎn),每組需要一個(gè)3*6的矩陣。

如上圖所示,上圖即為計(jì)算過程中矩陣的形態(tài),其中P和Q為對角塊矩陣,
Micro-Factorized Depth-wise Convolution
對于depth-wise卷積的分解,就是常規(guī)的空間可分離卷積,即將一個(gè)K*K的卷積核分解為兩個(gè)K*1和1*K的向量。

將Micro-Factorized Pointwise Convolution和Depth-wise Convolution結(jié)合起來,得到Lite Combination。其并非是簡單地將depthwise和pontwise卷積拼在一起,而是先用depthwise進(jìn)行expand(通道數(shù)增加),再使用pointwise進(jìn)行squeeze(通道壓縮),這樣可以節(jié)省更多的計(jì)算資源用到depthwise上,而非通道融合的pointwise上。
3. Dynamic Shift-Max
假設(shè)

則引入動(dòng)態(tài)最大偏移函數(shù)(Dynamic Shift-Max)如下:

其中

如上圖所示,使用Dynamic Shift-Max改裝后的Micro-Factorized Pointwise Convolution(K=1,J=2),在置換矩陣之后又添加了Group Shift映射,實(shí)現(xiàn)2個(gè)通道的信息融合(每個(gè)節(jié)點(diǎn)都來自兩個(gè)不同組節(jié)點(diǎn)的映射)。通過添加Dynamic Shift-Max激活函數(shù),卷積矩陣W中9個(gè)子矩陣塊的秩從1上升到了2,提高了連通性。
4. Micro-Net Architecture
作者介紹了3種不同MicroNet模型,其計(jì)算量FLOPs從6M到44M.它們都是由 Micro-Factorized Pointwise Convolution 和 Micro-Factorized Depth-wise Convolution以不同的形式組合而來,并且它們都使用Dynamic Shift-Max作為激活函數(shù)。

Comments
最開始入坑計(jì)算機(jī)視覺,我是先埋頭研究壓縮神經(jīng)神經(jīng)網(wǎng)絡(luò)(輕量化神經(jīng)網(wǎng)絡(luò)設(shè)計(jì))。我是一個(gè)很矛盾的一個(gè)人,當(dāng)初決定讀博是因?yàn)橛X得當(dāng)一個(gè)碼農(nóng)每天做一些重復(fù)性的機(jī)械工作實(shí)在是沒有什么意思。我想要去勘探人類智慧的高峰,去做一些開創(chuàng)性的工作。我當(dāng)初尤其對深度學(xué)習(xí)所謂的黑箱認(rèn)識(shí)十分不滿意,對于深度學(xué)習(xí)從業(yè)者被稱為煉丹師的污名感到詫異。于是我立志發(fā)掘出深度學(xué)習(xí)“最核心的本質(zhì)”,妄想建立一個(gè)能夠解釋煉丹種各種現(xiàn)象的“終極理論”。從此之后各種超參數(shù)的選擇,模型網(wǎng)絡(luò)的設(shè)計(jì)不再那么依賴經(jīng)驗(yàn)和實(shí)驗(yàn)。
但是學(xué)習(xí)了一段之后,我就發(fā)現(xiàn)自己的無知和渺小。我之前所鄙夷的“不夠本質(zhì)、不夠基礎(chǔ),只面向應(yīng)用的研究”,也是并非淺薄,相反也處處透露出智慧的鋒芒,我也不能完全理解。我漸漸了解到目前深度學(xué)習(xí)或者計(jì)算機(jī)視覺主要的問題并非是模型精度不夠高,而是過于理論化,太脫離實(shí)際,只能是實(shí)驗(yàn)室里面的玩具。
于是我選擇輕量化網(wǎng)絡(luò)設(shè)計(jì)這個(gè)方向,一方面它是模型落地的關(guān)鍵性技術(shù)(不再需要實(shí)驗(yàn)室里強(qiáng)勁算力的服務(wù)器)。另一方面,它是一件更具有挑戰(zhàn)性的工作。人類的大腦種神經(jīng)元的連接時(shí)非常稀疏的,其容量和參數(shù)應(yīng)該不會(huì)太多。而我們粗暴地增加網(wǎng)絡(luò)容量和深度,里面應(yīng)該是存在大量的冗余。研究清楚如何設(shè)計(jì)出輕量又高效的網(wǎng)絡(luò),也許就能更接近我之前所幻想的“終極理論”。
這篇論文主要的創(chuàng)新點(diǎn):
通過分解卷積核,進(jìn)一步壓縮網(wǎng)絡(luò)的連接性,使得網(wǎng)絡(luò)更加稀疏化,提高計(jì)算性能。
設(shè)計(jì)了全新的動(dòng)態(tài)激活函數(shù),引入更多的非線性特征,增強(qiáng)模型表現(xiàn)力。
Reference
[1] Micro-Net: Towards Image Recognition with Extremely Low FLOPs
[2]Mobile-Nets: Efficient Convolutional Neural Networks for Mobile Vision Applications
[3]Shuffle-Net: An Extremely Efficient Convolutional Neural Network for Mobile Devices
[4]Squeeze-and-Excitation Networks
END
點(diǎn)贊三連,支持一下吧↓
