王 軍,馮孫鋮,程 勇
(1.南京信息工程大學(xué)計(jì)算機(jī)與軟件學(xué)院,南京 210044;2.南京信息工程大學(xué)數(shù)字取證教育部工程研究中心,南京 210044;3.南京信息工程大學(xué) 科技產(chǎn)業(yè)處,南京 210044)
在17 世紀(jì),貝葉斯和拉普拉斯完成對(duì)最小二乘法的推導(dǎo)并提出馬爾科夫鏈,這兩個(gè)理論成為機(jī)器學(xué)習(xí)發(fā)展的基礎(chǔ)理論。在1950 年,艾倫·圖靈提議建立一個(gè)學(xué)習(xí)機(jī)器,之后機(jī)器學(xué)習(xí)進(jìn)入飛速發(fā)展階段。在1986 年,深度學(xué)習(xí)被引入機(jī)器學(xué)習(xí)領(lǐng)域,為人工智能的發(fā)展提供了極大的動(dòng)力支持。在2000年,深度學(xué)習(xí)通過(guò)組合多個(gè)隱藏層的神經(jīng)元,并利用非線性函數(shù)學(xué)習(xí)多個(gè)具有抽象意義的數(shù)據(jù)特征,達(dá)到模擬神經(jīng)網(wǎng)絡(luò)的目的[1-3],且廣泛適用于有監(jiān)督和無(wú)監(jiān)督特征學(xué)習(xí)[4-6]、特征表示[7]、模式識(shí)別等任務(wù)。深度卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)在圖像識(shí)別[8-9]、目標(biāo)檢測(cè)[10-11]、語(yǔ)義分割[12]等計(jì)算機(jī)視覺(jué)的前沿領(lǐng)域展現(xiàn)出巨大的潛力,但是常規(guī)的卷積神經(jīng)網(wǎng)絡(luò)在達(dá)到較高分類精度的同時(shí)需要較快的運(yùn)算速度和占用大量存儲(chǔ)空間[13]。目前,智能移動(dòng)設(shè)備的發(fā)展趨向于邊緣化和移動(dòng)化發(fā)展,但卻受限于設(shè)備本身的硬件條件,而深度卷積神經(jīng)網(wǎng)絡(luò)輕量化設(shè)計(jì)的目標(biāo)就是在低硬件條件的設(shè)備上仍能保持良好的網(wǎng)絡(luò)性能來(lái)適應(yīng)智能設(shè)備的發(fā)展趨勢(shì)。
輕量化的本質(zhì)是在硬件不足的設(shè)備上解決存儲(chǔ)空間和能耗對(duì)于傳統(tǒng)神經(jīng)網(wǎng)絡(luò)性能的限制,在保持傳統(tǒng)神經(jīng)網(wǎng)絡(luò)精度的基礎(chǔ)上,通過(guò)人工設(shè)計(jì)、神經(jīng)結(jié)構(gòu)搜索或自動(dòng)化機(jī)器學(xué)習(xí)等方法降低對(duì)存儲(chǔ)空間的要求,提高運(yùn)行速度。LECUN 等[14]在信息論的基礎(chǔ)上,通過(guò)對(duì)網(wǎng)絡(luò)中不重要的權(quán)重進(jìn)行剪除,增強(qiáng)神經(jīng)網(wǎng)絡(luò)的泛化性,提高學(xué)習(xí)速率,最終實(shí)現(xiàn)模型壓縮。HAN 等[15]發(fā)表了一篇關(guān)于模型壓縮方法的綜述型文章,該文作為ICLR 2016 的最佳論文,受到了學(xué)術(shù)界的廣泛關(guān)注。CHENG 等[16-17]對(duì)近年來(lái)提出的模型壓縮方法進(jìn)行了綜述。輕量化網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)是深度學(xué)習(xí)中的熱點(diǎn)研究方向。2012 年,AlexNet[18]由于受到硬件設(shè)備的限制,創(chuàng)新性地使用組卷積并將一個(gè)網(wǎng)絡(luò)在兩個(gè)硬件設(shè)備上進(jìn)行訓(xùn)練,對(duì)于輕量化網(wǎng)絡(luò)結(jié)構(gòu)具有一定的借鑒意義。目前,針對(duì)輕量化深度學(xué)習(xí)網(wǎng)絡(luò)的研究主要集中于人工設(shè)計(jì)的輕量化網(wǎng)絡(luò)和基于神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索的自動(dòng)輕量化網(wǎng)絡(luò)。在人工設(shè)計(jì)的輕量化網(wǎng)絡(luò)方面,包括基于深度可分離卷積(Depthwise Separable Convolution,DSC)的SqueezeNet[19]、MobileNet[20]、MobileNet V2[21]、ShuffleNet[22]、ShuffleNet V2[23]、基于Octave 卷積[24]的改進(jìn)基線網(wǎng)絡(luò)、基于Ghost特征的GhostNet[25]等輕量化網(wǎng)絡(luò)。在神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索的自動(dòng)輕量化網(wǎng)絡(luò)設(shè)計(jì)方面有NasNet[26]、MnasNet[27]等輕量化網(wǎng)絡(luò)。本文對(duì)深度學(xué)習(xí)的輕量化網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)方法進(jìn)行詳細(xì)介紹和優(yōu)勢(shì)分析,闡述人工設(shè)計(jì)的輕量化方法、基于神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索的輕量化方法、基于自動(dòng)模型壓縮的輕量化方法的應(yīng)用現(xiàn)狀和發(fā)展趨勢(shì)。
組卷積[8]對(duì)于輸入特征圖按通道進(jìn)行分組卷積,再將分組卷積得到的結(jié)果按通道進(jìn)行連接(concat)得到最終的輸出特征,具有輕量化效果。例如,將輸入特征分成G組進(jìn)行組卷積,僅需原有1/G的參數(shù)。因此,組卷積對(duì)深度神經(jīng)網(wǎng)絡(luò)具有一定的正則化作用。但是,組卷積也有局限性,會(huì)導(dǎo)致特征圖之間的信息不流暢,輸出的特征圖沒(méi)有包含所有輸入特征圖的信息。因此,在組卷積的基礎(chǔ)上,使用深度可分離卷積中的Pointwise 卷積和ShuffleNet 中的通道變換來(lái)改善該問(wèn)題。
深度可分離卷積主要由Depthwise卷積和Pointwise卷積組成,如圖1 和圖2 所示。Depthwise 卷積使用卷積核對(duì)輸入特征按通道進(jìn)行分別卷積,即第一通道的卷積核與第一通道的輸入特征進(jìn)行卷積。Depthwise卷積在獲得特征的空間信息后,將得到的輸出特征進(jìn)行Pointwise 卷積,即利用1×1 的卷積核對(duì)Depthwise 卷積的輸出進(jìn)行卷積,以獲取特征中不同通道之間的信息,通過(guò)該組合方式達(dá)到輕量化效果。

圖1 Depthwise 卷積Fig.1 Depthwise convolution

圖2 Pointwise 卷積Fig.2 Piontwise convolution
對(duì)網(wǎng)絡(luò)參數(shù)量和運(yùn)算量進(jìn)行分析,假設(shè)輸入的特征圖大小為hin×win×cin,卷積核大小為k×k×cout,輸出特征為hout×wout×cout,深度可分離卷積的運(yùn)算量和參數(shù)量計(jì)算如下:

其中:hin和win分別表示輸入特征的高度和寬度;cin表示輸入特征圖的通道數(shù);k表示卷積核尺寸;cout表示輸出特征圖的通道數(shù);hout和wout分別表示輸出特征的高度和寬度。
深度可分離卷積在保持較高分類精度的前提下,僅需常規(guī)卷積1/3 的參數(shù)量,但在訓(xùn)練過(guò)程中計(jì)算零散是影響其實(shí)際應(yīng)用性能的主要阻力。
現(xiàn)在主流的輕量化網(wǎng)絡(luò)結(jié)構(gòu)MobileNet 就是基于深度可分離卷積。MobileNet[20]的基本思想是使用深度可分離卷積代替常規(guī)卷積,利用深度卷積代替?zhèn)鹘y(tǒng)卷積中的濾波器進(jìn)行特征提取,并采用點(diǎn)卷積來(lái)代替濾波器對(duì)特征進(jìn)行組合,同時(shí)減少參數(shù)量和運(yùn)算量,最終將MobileNet[28]堆疊成深度神經(jīng)網(wǎng)絡(luò)。常規(guī)卷積和深度可分離卷積如圖3 所示,其中,BN 表示批量正則化,ReLU 表示激活函數(shù)。

圖3 常規(guī)卷積和深度可分離卷積Fig.3 Conventional convolution and depthwise separable convolution
MobileNet V2[21]作為MobileNet 的改進(jìn)網(wǎng)絡(luò),引入ResNet 網(wǎng)絡(luò)中的殘差思想,同時(shí)為了解決常規(guī)ResNet 中大量使用ReLU 激活函數(shù)導(dǎo)致神經(jīng)元失活的缺陷,通過(guò)高維的特征結(jié)合ReLU 激活層盡可能地保留低維輸入信息。MobileNet V2 的核心為反向殘差塊,如圖4 所示。與常規(guī)殘差塊不同,反向殘差塊采用兩邊窄中間寬的通道結(jié)構(gòu),首先對(duì)輸入進(jìn)行特征擴(kuò)展,將低維特征映射到高維空間,然后對(duì)高維特征使用Depthwise 卷積代替常規(guī)3×3 卷積,這樣既可以保留信息且不失非線性,最后去除最后一個(gè)ReLU激活層并使用投影層代替,即使用1×1 的網(wǎng)絡(luò)結(jié)構(gòu)將高維特征映射到低維空間。

圖4 反向殘差塊Fig.4 Inverse residual block
改進(jìn)的MobileNet V2 網(wǎng)絡(luò)結(jié)構(gòu)如表1 所示,其中,Conv 2d 表示卷積操作,bottleneck 表示MobileNet V2 中的瓶頸結(jié)構(gòu),1×1 Conv 2d 表示點(diǎn)卷積,7×7 Avgpool 表示平均池化,K表示根據(jù)實(shí)際需求設(shè)置的輸出通道數(shù),t表示對(duì)于操作輸入特征圖的擴(kuò)展系數(shù),n表示該操作的重復(fù)操作次數(shù),c表示輸出通道數(shù),s表示該操作模塊第1 次使用的卷積步長(zhǎng),之后重復(fù)的卷積默認(rèn)步長(zhǎng)為1。

表1 MobileNet V2 整體結(jié)構(gòu)Table 1 The overall structure of MobileNet V2
MobileNet V2 有效解決了ReLU 函數(shù)導(dǎo)致的神經(jīng)元失活問(wèn)題,實(shí)驗(yàn)效果相比MobileNet 更優(yōu)異。但是,基于深度可分離卷積的MobileNet V2 存在局限性。在實(shí)際訓(xùn)練過(guò)程中,由于深度可分離卷積的卷積核和常規(guī)卷積相比較小,在激活函數(shù)的非線性激活作用下使得輸出易趨近0,因此通常會(huì)出現(xiàn)卷積核失活的問(wèn)題。
1.4.1 ShuffleNet
ShuffleNet[22]是一個(gè)效率極高且可運(yùn)行在手機(jī)等移動(dòng)設(shè)備上的網(wǎng)絡(luò)。常規(guī)組卷積最大的局限性為在訓(xùn)練過(guò)程中不同分組之間沒(méi)有信息交換,這樣會(huì)大幅降低深度神經(jīng)網(wǎng)絡(luò)的特征提取能力。因此,在MobileNet 中使用大量的1×1 Pointwise 卷積來(lái)彌補(bǔ)這一缺陷,而ShuffleNet 采用通道變換來(lái)解決該問(wèn)題。通道變換的核心思想是對(duì)組卷積之后得到的特征圖在通道上進(jìn)行隨機(jī)均勻打亂,再進(jìn)行組卷積操作,這樣就保證了執(zhí)行下一個(gè)組卷積操作的輸入特征來(lái)自上一個(gè)組卷積中的不同組,如圖5 所示。基于深度可分離卷積、通道變換和組卷積得到ShuffleNet 結(jié)構(gòu),如圖6 所示。通過(guò)堆疊ShuffleNet的基本單元來(lái)構(gòu)建輕量化的ShuffleNet 結(jié)構(gòu)。

圖5 通道變換在組卷積中的應(yīng)用Fig.5 Application of channel shuffle in group convolution

圖6 ShuffleNet 結(jié)構(gòu)Fig.6 Structure of ShuffleNet
1.4.2 ShuffleNet V2
在ShuffleNet V2[23]被 提出之前,輕量化網(wǎng)絡(luò)中衡量模型復(fù)雜度的通用指標(biāo)為每秒浮點(diǎn)運(yùn)算次數(shù)(Floating-point Operations Per Second,F(xiàn)LOPS)。FLOPS 代表運(yùn)算力,對(duì)于網(wǎng)絡(luò)性能評(píng)估是一個(gè)間接指標(biāo),因?yàn)檫\(yùn)算力不完全等同于運(yùn)行速度。通過(guò)實(shí)驗(yàn)可以發(fā)現(xiàn),相同F(xiàn)LOPS 的兩個(gè)模型的運(yùn)行速度卻存在差異,導(dǎo)致該差異的原因包括GPU、內(nèi)存使用量(Memory Access Cost,MAC)等因素。因此,MA等[23]對(duì)于輕量化網(wǎng)絡(luò)提出了4 條更實(shí)用的指導(dǎo)原則:
1)盡量使用和輸入特征通道數(shù)相同的卷積核個(gè)數(shù)來(lái)最小化內(nèi)存使用量。以上文提及的深度可分離卷積中的Pointwise 卷積為例,假設(shè)輸入特征尺寸為h×w×cin,輸出通道數(shù)為cout,于是在Pointwise 卷積中可得到:

當(dāng)固定FFLOPS時(shí),根據(jù)均值不等式得到:

當(dāng)cin=cout時(shí),MAC 取最小值,此時(shí)內(nèi)存使用量最小。
2)適量使用組卷積以降低內(nèi)存使用量。在組卷積中,假設(shè)輸入特征尺寸為h×w×cin,輸出通道數(shù)為cout,得到:

當(dāng)固定FFLOPS時(shí),得到:

由式(8)可見(jiàn),當(dāng)G增加時(shí),內(nèi)存使用量也會(huì)增加。
3)盡量減少碎片化的網(wǎng)絡(luò)結(jié)構(gòu)以增加并行度。在Inception 模塊和機(jī)器學(xué)習(xí)自動(dòng)生成的神經(jīng)網(wǎng)絡(luò)中,通常會(huì)趨向于使用多路網(wǎng)絡(luò)結(jié)構(gòu),這樣就很容易造成神經(jīng)網(wǎng)絡(luò)的碎片化,從而使模型并行度降低,減緩運(yùn)行速度。
4)重視元素級(jí)操作。激活函數(shù)(例如ReLU)和特征圖的相加(add)雖然對(duì)于浮點(diǎn)運(yùn)算力的影響很小,但它們對(duì)于內(nèi)存使用量會(huì)產(chǎn)生較大的影響。
針對(duì)上述4 個(gè)原則可知ShuffleNet 存在以下問(wèn)題:1)在基本單元中大量使用了1×1 的組卷積操作;2)在殘差網(wǎng)絡(luò)的瓶頸層中,輸入特征和輸出特征的通道數(shù)不同;3)過(guò)量使用組卷積;4)在Shortcut 中過(guò)量使用元素級(jí)操作。ShuffleNet V2 是在上述4 條原則的基礎(chǔ)上對(duì)ShuffleNet 進(jìn)行的改進(jìn),并引入了通道分離操作。
ShuffleNet V2 結(jié)構(gòu)如圖7 所示。通道分離本質(zhì)上是將輸入特征按通道分成兩部分,一部分通道數(shù)為c′,另一部分為c-c′。在圖7(a)中左分支等同于恒等映射,對(duì)應(yīng)殘差網(wǎng)絡(luò)中的Shortcut,右分支包含了3 個(gè)連續(xù)的卷積操作,且滿足輸入特征和輸出特征通道相同的原則。同時(shí),ShuffleNet V2 基本單元中的1×1 卷積不再使用組卷積,而是使用常規(guī)卷積,彌補(bǔ)了過(guò)度使用組卷積的缺陷。在圖7(b)中,首先將左右分支分成兩組,兩個(gè)分支不再使用相加元素級(jí)操作,而是連接在一起,從而滿足原則3。然后對(duì)其進(jìn)行通道變換以保證兩個(gè)分支的信息交流。最后連接和通道變換可以與下一個(gè)模塊單元的通道分離合成一個(gè)元素級(jí)運(yùn)算,減少了元素級(jí)操作次數(shù)。

圖7 ShuffleNet V2 結(jié)構(gòu)Fig.7 Structure of ShuffleNet V2
對(duì)基于深度可分離卷積的主流輕量化神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的創(chuàng)新點(diǎn)和優(yōu)劣勢(shì)進(jìn)行分析和對(duì)比:
1)MobileNet。創(chuàng)新點(diǎn)和優(yōu)勢(shì)為引入深度可分離卷積進(jìn)行網(wǎng)絡(luò)結(jié)構(gòu)輕量化設(shè)計(jì)。劣勢(shì)為網(wǎng)絡(luò)結(jié)構(gòu)單一,且過(guò)量使用激活函數(shù)導(dǎo)致神經(jīng)元易失活。
2)MobileNet V2。創(chuàng)新點(diǎn)和優(yōu)勢(shì)為引入反殘差模塊。劣勢(shì)為由于深度可分離卷積中卷積核較小,激活后易為0。
3)ShuffleNet。創(chuàng)新點(diǎn)和優(yōu)勢(shì)為引入通道轉(zhuǎn)換。劣勢(shì)為輸入輸出特征通道數(shù)不同、過(guò)量使用組卷積、網(wǎng)絡(luò)碎片化、元素級(jí)操作過(guò)多。
4)ShuffleNet V2。創(chuàng)新點(diǎn)和優(yōu)勢(shì)為引入通道分離、輸入輸出特征通道數(shù)相等、基礎(chǔ)單元中使用常規(guī)卷積代替組卷積及使用concat 代替元素級(jí)操作add。劣勢(shì)為運(yùn)行速度和存儲(chǔ)空間有待進(jìn)一步提升。
深度可分離卷積可大幅減少計(jì)算量,又能保持較高的分類精度,但是存在計(jì)算零散的問(wèn)題。Xception[29]是谷歌于2017 年 在Inception V3[30]的 基礎(chǔ)上,基于空間相關(guān)性和通道相關(guān)性設(shè)計(jì)的輕量化網(wǎng)絡(luò)結(jié)構(gòu)。Xception 模塊如圖8 所示。

圖8 Xception 模塊Fig.8 Xception module
Xception 模塊與深度可分離卷積的不同之處在于:1)深度可分離卷積先進(jìn)行同一平面卷積得到空間相關(guān)性,再在不同通道之間進(jìn)行卷積得到通道相關(guān)性,而Xception 模塊采用相反的方法,先得到通道之間的相關(guān)性,再學(xué)習(xí)空間相關(guān)性;2)Xception 在空間相關(guān)性和通道相關(guān)性的學(xué)習(xí)過(guò)程中未使用激活函數(shù),實(shí)驗(yàn)證明這一改進(jìn)有效地加快了收斂速度,提升了網(wǎng)絡(luò)性能。Xception 網(wǎng)絡(luò)基于殘差網(wǎng)絡(luò)進(jìn)行構(gòu)建,但將其中的卷積層換成了Xception 模塊。如圖9 所示,Xception 網(wǎng)絡(luò)被分為輸入流部分、中間流部分和輸出流部分[29],其中,ReLU 表示激活函數(shù),SeparableConv 表示深度可分離卷積,Maxpool 表示最大值池化操作。Xception相比Inception V3 提升了網(wǎng)絡(luò)運(yùn)算量并降低了參數(shù)量。輸入流部分通過(guò)下采樣模塊來(lái)降低特征圖的空間維度;中間流部分通過(guò)優(yōu)化網(wǎng)絡(luò)特征提取來(lái)學(xué)習(xí)關(guān)聯(lián)關(guān)系;輸出流部分將特征進(jìn)行匯總輸出,最終由全連接層進(jìn)行表達(dá)。

圖9 Xception 網(wǎng)絡(luò)結(jié)構(gòu)Fig.9 Structure of Xception network
在現(xiàn)實(shí)生活中,圖片中不同的信息都以不同的頻率傳遞,主要分為高頻信息和低頻信息,其中:高頻通常用于細(xì)節(jié)編碼,高頻信息代表圖片中的細(xì)節(jié)特征;低頻通常用于全局編碼,低頻信息代表圖片中的全局特征,即較低空間分辨率下變化較慢的特征。圖像低頻和高頻信息的分離如圖10 所示。由高頻信息和低頻信息組成的特征圖就是Octave 特征圖。

圖10 圖像低頻和高頻信息的分離Fig.10 Separation of low-frequency and high-frequency information in the image
卷積層之間的特征圖可以看作是高頻信息和低頻信息的混合特征圖。在傳統(tǒng)卷積方式中,無(wú)論高頻信息還是低頻信息都是用同一種方式存儲(chǔ)的,這對(duì)于其中的低頻信息而言就會(huì)造成存儲(chǔ)冗余并增加計(jì)算成本。Octave 卷積[24]是針對(duì)這一問(wèn)題提出的新型卷積方式,將特征圖根據(jù)不同的頻率進(jìn)行因式分解,對(duì)不同頻率的信息進(jìn)行不同的存儲(chǔ)和操作,再在不同頻率的信息之間進(jìn)行信息交換。Octave 卷積的作用在于將傳統(tǒng)的特征存儲(chǔ)方式轉(zhuǎn)化成基于低頻和高頻的輕量化存儲(chǔ)方式,具體轉(zhuǎn)變過(guò)程如圖11 所示,其中,αin代表在卷積操作輸入的Octave 特征圖中高頻信息所占的比例,αout代表卷積操作輸出的Octave 特征圖中高頻信息所占的比例。在Octave 卷積的輸入特征圖中,當(dāng)αin=αout=0 時(shí),Octave 卷積就等同于常規(guī)卷積。當(dāng)αin=0 且αout≠0 時(shí),代表當(dāng)輸入特征圖為常規(guī)卷積特征圖時(shí),將其轉(zhuǎn)化成用于Octave 卷積的Octave 特征圖,通常應(yīng)用于Octave 卷積的第一層。當(dāng)αin≠0 且αout≠0 時(shí),代表當(dāng)輸入是Octave 特征圖時(shí)進(jìn)行Octave 卷積操作,通常應(yīng)用于Octave 卷積的中間層。當(dāng)αin≠0 且αout=0 時(shí),代表在獲得傳統(tǒng)特征圖時(shí)需進(jìn)行Octave 卷積,其作用是將Octave 特征圖經(jīng)過(guò)卷積之后得到傳統(tǒng)特征圖,通常應(yīng)用于Octave 卷積的最后一層。

圖11 Octave 卷積前后的數(shù)據(jù)變化Fig.11 Data changes before and after Octave convolution
Octave 卷積通常對(duì)低頻信息和高頻信息進(jìn)行分別存儲(chǔ)和處理,如果不能實(shí)現(xiàn)不同頻率信息之間的信息交換,則非常影響網(wǎng)絡(luò)性能。因此,在Octave 卷積中必須同時(shí)實(shí)現(xiàn)同頻率信息的傳遞和不同頻率信息的交換,如圖12 所示。

圖12 Octave 卷積中信息的傳遞和交換Fig.12 Transfer and exchange of information in Octave convolution
在獲得高頻信息時(shí),對(duì)輸入特征圖中的高頻信息進(jìn)行常規(guī)卷積操作,同時(shí)對(duì)低頻信息進(jìn)行上采樣,將兩者結(jié)合得到卷積之后的高頻信息。在獲得低頻信息時(shí),對(duì)輸入特征圖中的低頻信息進(jìn)行常規(guī)卷積操作,同時(shí)對(duì)高頻信息進(jìn)行池化,將兩者結(jié)合得到卷積之后的低頻信息,如圖13 所示,其中,XH、XL分別表示輸入的高頻和低頻特征圖,YH、YL代表輸出特征中的高頻和低頻特征圖,WH→H、WL→H、WH→L、WL→L分別表示根據(jù)輸入的高頻和低頻特征得到輸出高頻和低頻特征時(shí)的權(quán)值矩陣,pool 代表池化操作,upsample 代表上采樣操作,h、w、0.5h、0.5w分別表示高頻和低頻信息的高度和寬度,(1-αin)、αin、(1-αout)、αout分別表示輸入和輸出時(shí)高頻和低頻特征的通道數(shù),YH→H、YL→H分別表示從輸入的高維特征圖中得到的部分輸出的高維特征和從輸入的低維特征中得到的部分輸出的高維特征,YH→L、YL→L分別表示從輸入的高維特征圖中得到的部分輸出的低維特征和從輸入的低維特征中得到的部分輸出的低維特征。

圖13 Octave 卷積操作Fig.13 Octave convolution operation
根據(jù)實(shí)驗(yàn)效果,Octave 卷積可用于ResNet[13]、GoogLeNet[31]等基線網(wǎng)絡(luò)及MobileNet、MobileNet V2、ShuffleNet、ShuffleNet V2 等常規(guī)輕量化網(wǎng)絡(luò)進(jìn)行網(wǎng)絡(luò)優(yōu)化,實(shí)現(xiàn)輕量化處理。雖然Octave 卷積對(duì)于存儲(chǔ)空間優(yōu)化效果較好,但是在提高運(yùn)算速度及效率方面有待進(jìn)一步提升。
傳統(tǒng)深度神經(jīng)網(wǎng)絡(luò)的輕量化方法研究主要集中于減少參數(shù)量及改進(jìn)卷積方式。2020 年,HAN 等[25]對(duì)深度神經(jīng)網(wǎng)絡(luò)特征圖進(jìn)行分析,發(fā)現(xiàn)常規(guī)卷積中特征圖的冗余性在神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)中很少被關(guān)注,為了從特征圖冗余的角度實(shí)現(xiàn)網(wǎng)絡(luò)結(jié)構(gòu)輕量化,GhostNet 應(yīng)運(yùn)而生。如圖14 所示,對(duì)常規(guī)卷積生成的特征圖進(jìn)行可視化,其中同色方框內(nèi)的特征圖非常相似,這說(shuō)明在訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)進(jìn)行前向傳播時(shí),中間過(guò)程使用的特征圖中含有大量相似的冗余特征,這樣做的目的是為了使神經(jīng)網(wǎng)絡(luò)對(duì)輸入的圖像有更全面的理解。

圖14 常規(guī)卷積的可視化分析Fig.14 Visual analysis of conventional convolution
在此基礎(chǔ)上,GhostNet 為了使用更低的成本完成更多的特征映射,采用線性變化得到Ghost 特征。GhostNet 模塊[26]如圖15 所示,其中Φk表示對(duì)初次卷積之后的特征圖進(jìn)行線性變換。首先使用較少的卷積核對(duì)輸入進(jìn)行常規(guī)卷積,獲得通道較少的輸出特征并將其作為內(nèi)在特征圖,然后對(duì)內(nèi)在特征圖的每個(gè)通道進(jìn)行線性變換,得到其對(duì)應(yīng)的Ghost 特征圖,最后將內(nèi)在特征圖與Ghost 特征圖進(jìn)行通道連接,取得最終的GhostNet 卷積輸出特征。

圖15 GhostNet 模塊Fig.15 GhostNet module
GhostNet 使用GhostNet 模塊代替?zhèn)鹘y(tǒng)MobileNet中的bottleneck層,GhostNet整體結(jié)構(gòu)如表2所示,其中,SE 代表是否在該操作中使用SE 模塊,1表示使用SE 模塊,0 表示未使用SE 模塊,G-bn 表示使用GhostNet 模塊構(gòu)建的bottleneck 結(jié)構(gòu)。GhostNet 模塊具有很強(qiáng)的即插即用性,可以用于優(yōu)化現(xiàn)有深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)或者輕量化網(wǎng)絡(luò)結(jié)構(gòu),對(duì)于神經(jīng)網(wǎng)絡(luò)運(yùn)算速度優(yōu)化效果較明顯,但不能有效降低輕量化過(guò)程中的參數(shù)量及存儲(chǔ)空間。

表2 GhostNet 整體結(jié)構(gòu)Table 2 The overall structure of GhostNet
人工設(shè)計(jì)的輕量化深度神經(jīng)網(wǎng)絡(luò)雖然得到了廣泛應(yīng)用,但是人工方法需要豐富的神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)經(jīng)驗(yàn),以及在設(shè)計(jì)整體網(wǎng)絡(luò)的模塊和超參數(shù)時(shí)需要投入大量的人力和時(shí)間。隨著強(qiáng)化學(xué)習(xí)的快速發(fā)展,基于神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索[26]的輕量化方法應(yīng)運(yùn)而生。MobileNet、MobileNet V2、ShuffleNet、ShuffleNet V2傳統(tǒng)輕量化網(wǎng)絡(luò)都是將各自的基本單元堆疊成相應(yīng)的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),這種堆疊基本單元的方式用到的超參數(shù)是一個(gè)有序數(shù)列,而循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)[32]則是擅長(zhǎng)學(xué)習(xí)這種有序數(shù)列。神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索的主要目的是利用強(qiáng)化學(xué)習(xí)方法,在搜索空間中搜索到最適合的基本單元中的超參數(shù),再將搜索到的基本單元進(jìn)行堆疊得到神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索的輕量化網(wǎng)絡(luò)。神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索流程如圖16 所示。

圖16 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索流程Fig.16 Procedure of neural network structure search
控制器根據(jù)結(jié)構(gòu)搜索形成搜索空間內(nèi)的子網(wǎng)絡(luò)結(jié)構(gòu),將神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索應(yīng)用于搜索ResNet、Inception 等具有跳躍連接的CNN 網(wǎng)絡(luò),并將整個(gè)控制器分成N段,每段控制器的搜索流程如圖17所示。

圖17 控制器搜索流程Fig.17 Procedure of controller search
通過(guò)訓(xùn)練控制器能夠?qū)W習(xí)到一層卷積層所需的所有超參數(shù),并且基于RNN 注意力機(jī)制為其添加可以學(xué)習(xí)的跳躍點(diǎn)。為了判斷第N段是否與之前的某一段有跳躍連接,神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索添加了N-1 個(gè)跳躍點(diǎn),用于學(xué)習(xí)是否具有跳躍連接。具體地,第N段的跳躍點(diǎn)由2 個(gè)隱節(jié)點(diǎn)和1 個(gè)Sigmoid 激活函數(shù)確定,第N-1 段的輸出為第N段的輸入的概率計(jì)算公式如下:

其中:vT、WN-1、WN是需要學(xué)習(xí)的網(wǎng)絡(luò)中的超參數(shù);hN-1和hN分別是第N-1 段和第N段的跳躍點(diǎn)的狀態(tài)。根據(jù)準(zhǔn)確率來(lái)更新控制器的參數(shù)形成新的子網(wǎng)絡(luò),依次循環(huán),得到子網(wǎng)絡(luò)在訓(xùn)練完成后在目標(biāo)驗(yàn)證集上的最高準(zhǔn)確度。傳統(tǒng)NasNet 只會(huì)搜索復(fù)雜單元,然后對(duì)這些單元進(jìn)行堆疊來(lái)構(gòu)建網(wǎng)絡(luò)結(jié)構(gòu),但是一些與上述單元不同的神經(jīng)層對(duì)于降低網(wǎng)絡(luò)延遲、提高精度具有重要的作用,因此傳統(tǒng)NasNet 僅堆疊相同的單元層會(huì)忽略神經(jīng)層的多樣性。
在目前主流的輕量化方法中,基于神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索的自動(dòng)化網(wǎng)絡(luò)模型設(shè)計(jì)的優(yōu)勢(shì)非常明顯,通過(guò)搜索并堆疊小的基本單元來(lái)產(chǎn)生移動(dòng)端模型,但是沒(méi)有考慮移動(dòng)設(shè)備的約束條件。為了彌補(bǔ)這一不足,谷歌在2019 年提出MnasNet[27]。MnasNet 在神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索過(guò)程中考慮了模型延遲,能夠搜索到一個(gè)在模型精度和模型延遲之間取得最優(yōu)平衡的深度神經(jīng)模型。傳統(tǒng)輕量化網(wǎng)絡(luò)使用FLOPS 間接評(píng)價(jià)模型延遲,MnasNet 選擇直接在移動(dòng)設(shè)備上運(yùn)行模型來(lái)得到真實(shí)的模型延遲參數(shù),并且為了在較小的搜索空間中獲得更高的網(wǎng)絡(luò)性能,提出分解式層次搜索空間。
在平衡模型精度和模型延遲方面,MnasNet 采用多目標(biāo)優(yōu)化方法來(lái)改進(jìn)常規(guī)方法并將移動(dòng)設(shè)備的真實(shí)延遲作為衡量標(biāo)準(zhǔn)。MnasNet 設(shè)計(jì)模型M,在M中使用TDelay(M)表示網(wǎng)絡(luò)在移動(dòng)設(shè)備上的真實(shí)延遲,AACC(M)表示訓(xùn)練好的網(wǎng)絡(luò)在目標(biāo)驗(yàn)證集上的準(zhǔn)確度,目標(biāo)延遲設(shè)為T,則多目標(biāo)優(yōu)化如式(10)所示:

MnasNet 使用自定義加權(quán)法來(lái)近似帕累托最優(yōu)解:

其中,α、β為超參數(shù)。
針對(duì)NasNet 中僅搜索復(fù)雜單元且重復(fù)堆疊相同單元的情況,MnasNet采用分解式層次搜索空間,如圖18所示。將傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)劃分為若干塊,按照塊的順序逐漸減少輸入分辨率,同時(shí)增加卷積核數(shù)。在分解式層次搜索中將傳統(tǒng)網(wǎng)絡(luò)分成不同的塊后,每一個(gè)塊中都具有相同的層結(jié)構(gòu),但操作和連接都由各自塊的子搜索空間決定。分解式層次搜索空間的優(yōu)勢(shì)是可以平衡層的多樣性和整個(gè)搜索空間的尺寸。

圖18 分解式層次搜索空間Fig.18 Decomposed hierarchical search space
MnasNet 的搜索步驟如下:1)基于循環(huán)神經(jīng)網(wǎng)絡(luò)生成的控制器來(lái)搜索并生成深度神經(jīng)網(wǎng)絡(luò);2)在目標(biāo)數(shù)據(jù)集上訓(xùn)練控制器生成的網(wǎng)絡(luò),并且在驗(yàn)證集上得到模型精度;3)推理得到移動(dòng)端的真實(shí)延遲,根據(jù)模型運(yùn)行之后得到的模型精度和推理延遲,利用近似策略來(lái)最大化期望(PPO)獎(jiǎng)勵(lì)并更新控制器,一直循環(huán)直至完成所有步驟或者參數(shù)收斂。
MnasNet 存在以下局限性:1)由于目前使用的MnasNet 仍然包含大量人工設(shè)計(jì)特征,因此不能完全自行設(shè)計(jì)網(wǎng)絡(luò)結(jié)構(gòu),未來(lái)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索以及MnasNet的發(fā)展方向需在更廣泛的搜索空間內(nèi)進(jìn)行,尋找具有高效率且輕量化的網(wǎng)絡(luò)結(jié)構(gòu);2)由于目前使用的主流神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索技術(shù)多數(shù)基于谷歌模型,其過(guò)多專注模型準(zhǔn)確率而忽略了底層硬件設(shè)備的影響,因此在實(shí)際應(yīng)用中還有很大的優(yōu)化空間。
在人工設(shè)計(jì)的輕量化網(wǎng)絡(luò)和基于神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索的輕量化網(wǎng)絡(luò)中都廣泛使用了常規(guī)深度可分離卷積,但由于常規(guī)深度可分離卷積使用大小相同的卷積核,忽略了不同大小的卷積核對(duì)卷積效果的影響。谷歌在2019 年提出基于混合深度可分離卷積[33]的MixNet 結(jié)構(gòu),通過(guò)將多個(gè)尺寸的卷積核混疊到同一層的卷積中替換常規(guī)深度可分離卷積。混合深度可分離卷積如圖19 所示。首先,對(duì)輸入特征進(jìn)行分組卷積,并在不同的組使用不同尺寸的卷積核,使其能夠捕獲不同分辨率的特征模式。其次,混合深度可分離卷積基于神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索的輕量化方法,搜索深度神經(jīng)網(wǎng)絡(luò)分組卷積的分組數(shù)(1~5),第i組的卷積核大小計(jì)算公式如下:

圖19 混合深度可分離卷積Fig.19 Mix depthwise separable convolution

在通道數(shù)的選擇上,混合深度可分離卷積考慮以下兩種方案:1)使用平均通道數(shù),以32 通道4 組為例,每組卷積的通道數(shù)為8;2)使用組號(hào)指數(shù)衰減,以32 通道4 組為例,各組通道數(shù)為16、8、4 和4。具體卷積方式以輸入特征尺寸為Xh×w×c、深度卷積核為Wk×k×c×m為例,首先將其按通道分成g組,則原始輸入轉(zhuǎn)化為,其中c1+c2+…+cg對(duì)應(yīng)每組的卷積核尺寸為第δ組對(duì)應(yīng)的混合深度可分離卷積如式(14)所示:

然后將各組卷積的輸出在通道上進(jìn)行連接,得到:

MixNet 重點(diǎn)研究了卷積核尺寸對(duì)網(wǎng)絡(luò)輕量化效果的影響,基于此提出混合深度可分離卷積,通過(guò)在同一卷積層中使用不同大小的卷積核,學(xué)習(xí)不同分辨率的特征,從而提升網(wǎng)絡(luò)性能。
在人工設(shè)計(jì)的輕量化神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)部分,使用的輕量化方法多數(shù)依賴組卷積、深度可分離卷積等基本單元組成的塊,再通過(guò)堆疊這些塊來(lái)構(gòu)建網(wǎng)絡(luò),由此導(dǎo)致的局限性就是其中存在極大的偶然性,有很大概率搜索不到空間的最優(yōu)解。模型壓縮主要分為細(xì)粒度修剪和粗粒度修剪兩部分,細(xì)粒度修剪針對(duì)權(quán)重中的冗余部分進(jìn)行修改,粗粒度修剪則是針對(duì)通道、行列、塊等整個(gè)區(qū)域按照一定的稀疏率進(jìn)行壓縮。
模型壓縮[12,34]針對(duì)常規(guī)CNN,通常采用 剪枝[35-36]、權(quán)值共享[15,37]與量化[38]、哈夫曼編碼[39]這3 種方法來(lái)減少參數(shù)量,達(dá)到輕量化目的。剪枝的本質(zhì)是剪去深度神經(jīng)網(wǎng)絡(luò)中不必要的冗余權(quán)值和分支,僅保留對(duì)于神經(jīng)網(wǎng)絡(luò)的目標(biāo)任務(wù)有效用的權(quán)值參數(shù)。權(quán)值共享是使用同一組參數(shù)來(lái)避免過(guò)多參數(shù)導(dǎo)致的訓(xùn)練和模型冗余。權(quán)值量化旨在用較小的比特值來(lái)表示權(quán)值,以達(dá)到減少存儲(chǔ)量的目的。哈夫曼編碼[40-41]是將兩個(gè)權(quán)值最低的節(jié)點(diǎn)作為左右子樹(shù)形成新的節(jié)點(diǎn),再選取兩個(gè)權(quán)值最低的節(jié)點(diǎn)作為左右子樹(shù)形成新的節(jié)點(diǎn),以此類推,達(dá)到根據(jù)使用頻率來(lái)最大化節(jié)省存儲(chǔ)空間的目的。
為減少在傳統(tǒng)機(jī)器學(xué)習(xí)中特征提取、模型選擇、參數(shù)調(diào)試等方面的人工干預(yù)[42-44],YAO 等[45]提出自動(dòng)機(jī)器學(xué)習(xí)(AutoML)技術(shù)。AutoML 的通用計(jì)算公式如下:

自動(dòng)特征工程的目的是自動(dòng)發(fā)掘并構(gòu)造相關(guān)特征來(lái)優(yōu)化模型性能,包括自動(dòng)選擇最優(yōu)參數(shù)、自動(dòng)選擇最優(yōu)方法。除此之外,還包含特征選擇、特征降維[46-48]、特征生成[49-51]、特征編碼[52-54]等特定的特征增強(qiáng)方法。這些方法在自動(dòng)機(jī)器學(xué)習(xí)領(lǐng)域有很大的發(fā)展空間。
為了避免在模型壓縮過(guò)程中過(guò)分依賴人工設(shè)計(jì)的啟發(fā)式策略和基于規(guī)則的策略,西安交通大學(xué)與Google 于2018 年提出基于自動(dòng)機(jī)器學(xué)習(xí)的模型壓縮(AutoML for Model Compression,AMC)[55]方法。AMC 方法的性能明顯優(yōu)于基于規(guī)則的壓縮策略,壓縮模型能在保證準(zhǔn)確性的同時(shí)大幅減少人工成本。由于壓縮模型精度受各層稀疏性的影響,因此需要更細(xì)粒度的搜索空間。自動(dòng)機(jī)器學(xué)習(xí)在模型壓縮方面具有很大優(yōu)勢(shì),采用強(qiáng)化學(xué)習(xí)中的深度確定性策略梯度法(DDPG)產(chǎn)生連續(xù)空間上的壓縮率,通過(guò)大量學(xué)習(xí)達(dá)到提升網(wǎng)絡(luò)精度和運(yùn)行速度的目的。
圖20 給出了AMC 引擎示意圖。首先,使用一個(gè)預(yù)訓(xùn)練好的基線網(wǎng)絡(luò),代理部分從第t層中接收嵌入,輸出稀疏率并根據(jù)稀疏率對(duì)t層進(jìn)行模型壓縮。然后,環(huán)境部分移動(dòng)到第t+1 層進(jìn)行操作,在完成對(duì)所有層的操作后評(píng)估整個(gè)網(wǎng)絡(luò)的準(zhǔn)確率。最后,將包含準(zhǔn)確率和浮點(diǎn)運(yùn)算量(或者參數(shù)量)的獎(jiǎng)勵(lì)反饋給代理部分。

圖20 AMC 引擎Fig.20 AMC engine
在通道修剪環(huán)境中的每一層均使用11 個(gè)特征來(lái)描述嵌入St,如式(17)所示:

其中:卷積核維度為k×k×c×n;輸入數(shù)據(jù)的維度為h×w×c;t為層數(shù);FLOPS[t]為第t層的浮點(diǎn)運(yùn)算量;reduced 為前一層中減少的浮點(diǎn)運(yùn)算總量;rest 是后面所有層中剩余的浮點(diǎn)運(yùn)算量;αt-1為上一層的壓縮率。在代理部分,使用深度確定性策略梯度法來(lái)連續(xù)控制壓縮率。Block-QNN[56]應(yīng)用Bellman 方程[57]的變體形式,在Block-QNN[56]之后,DDPG 在探索過(guò)程中的轉(zhuǎn)換公式過(guò)渡為(st;αt,R;st+1),其中R為網(wǎng)絡(luò)壓縮后的獎(jiǎng)勵(lì),在更新過(guò)程中減去基線獎(jiǎng)勵(lì)r以減少梯度估計(jì)方差[58-59],如式(18)、式(19)所示:

其中:γ為折扣因子。
根據(jù)經(jīng)驗(yàn)得出,由于AMC 誤差(E)與loga FFLOPS或loga Pparameter[60]成反比,因此設(shè)計(jì)以下獎(jiǎng)勵(lì)公式:

AMC 利用增強(qiáng)學(xué)習(xí)方法自動(dòng)搜索設(shè)計(jì)空間,對(duì)于模型壓縮的質(zhì)量相較人工壓縮有了質(zhì)的飛躍。除此之外,AMC 包含兩種不同的獎(jiǎng)勵(lì)方案,在實(shí)現(xiàn)模型壓縮的同時(shí),又能保證模型精度,在ImageNet、MobileNet、MobileNet V2、ResNet 和VGG 上都展現(xiàn)出了優(yōu)異的性能。
目前,智能移動(dòng)設(shè)備趨向于邊緣化、輕量化發(fā)展趨勢(shì)。如何在盡可能保持神經(jīng)網(wǎng)絡(luò)模型精度的前提下,最大程度地降低模型延遲和存儲(chǔ)空間是目前研究的熱點(diǎn)問(wèn)題。但是現(xiàn)有性能較好的人工設(shè)計(jì)的輕量化方法不僅需要耗費(fèi)大量的人力資源,而且需要具備豐富的深度學(xué)習(xí)經(jīng)驗(yàn),才能使得延遲、運(yùn)算速度、存儲(chǔ)空間等神經(jīng)網(wǎng)絡(luò)模型的各項(xiàng)性能指標(biāo)都達(dá)到要求。基于強(qiáng)化學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索方法是目前主流的輕量化方法,但是大量基于神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索的輕量化方法僅專注于提高神經(jīng)網(wǎng)絡(luò)模型的準(zhǔn)確率,卻忽視了底層硬件設(shè)備的限制,這樣得到的高效模型由于對(duì)硬件要求較高,通常難以在移動(dòng)智能端進(jìn)行部署應(yīng)用。而基于神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索的輕量化方法通過(guò)強(qiáng)化學(xué)習(xí)控制器在搜索空間內(nèi)搜索生成網(wǎng)絡(luò),無(wú)需耗費(fèi)大量的人力資源,這是其得以快速發(fā)展的重要原因。
在人工設(shè)計(jì)的輕量化方法中,目前效果顯著的方法多數(shù)集中于提高神經(jīng)網(wǎng)絡(luò)模型的運(yùn)行速度或者降低存儲(chǔ)空間,如何同時(shí)對(duì)其進(jìn)行優(yōu)化是下一步需要研究的重要方向。此外,基于神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索的輕量化方法的神經(jīng)網(wǎng)絡(luò)模型精度和輕量化效果也有待提升,可以通過(guò)設(shè)計(jì)更加合理的搜索空間來(lái)找到更合適的網(wǎng)絡(luò)或者增加機(jī)器自動(dòng)化學(xué)習(xí)在整個(gè)神經(jīng)網(wǎng)絡(luò)中所占的比重,而在基于自動(dòng)模型壓縮的輕量化方法中,如何進(jìn)一步實(shí)現(xiàn)網(wǎng)絡(luò)搜索與壓縮的自動(dòng)化也是亟待解決的難點(diǎn)之一。
本文研究深度神經(jīng)網(wǎng)絡(luò)的輕量化網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)方法,對(duì)人工設(shè)計(jì)的輕量化方法、基于神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索的輕量化方法和基于自動(dòng)模型壓縮的輕量化方法進(jìn)行創(chuàng)新點(diǎn)與優(yōu)劣勢(shì)對(duì)比,并指出深度神經(jīng)網(wǎng)絡(luò)的輕量化網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)方法的評(píng)價(jià)指標(biāo)已從單一的浮點(diǎn)運(yùn)算量發(fā)展到如今包含模型延遲、存儲(chǔ)空間等的綜合評(píng)價(jià)指標(biāo),而研究人員應(yīng)根據(jù)不同的應(yīng)用場(chǎng)景合理選取輕量化評(píng)價(jià)標(biāo)準(zhǔn)和輕量化結(jié)構(gòu)設(shè)計(jì)方法。后續(xù)可將神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索技術(shù)應(yīng)用到輕量化網(wǎng)絡(luò)模型搜索中,通過(guò)算法自動(dòng)搜索合適的輕量化網(wǎng)絡(luò)模型,進(jìn)一步提升神經(jīng)網(wǎng)絡(luò)運(yùn)算速度。