吉宸佳 南京信息工程大學遙感與測繪工程學院
近年來,隨著深度學習的發展,卷積神經網絡由于其精的優越性,被廣泛應用于圖像處理領域。與傳統圖像處理方法相比,卷積神經網絡在處理大規模的圖像數據集上著有非常好的效果,通過卷積操作,獲得更隱藏的信息,通過池化操作減少圖像尺度。2012年AlexNet在ImageNet競賽中勇奪桂冠,自此掀起了研究卷積神經網絡的浪潮。為了提升卷積網絡的精度,并且獲得更深層次的信息,越來越深的卷積層被運用到其中。在實驗環境中需要購買大量計算能力強勁的圖形圖像處理器來提升計算效率,大量的參數、復雜的網絡理解起來也有困難。為了讓卷積神經網絡能夠運行在更多計算機上,讓神經網絡運行于移動設備,如何簡化卷積神經網絡成為了當前一項的研究問題。
神經網絡簡化的原則是獲得更高效的網絡,優化網絡結構和卷積計算,減少網絡參數的同時不損失性能,加強對網絡內部的理解。簡化神經網絡可分為兩類:壓縮傳統網絡和設計新的網絡結構。網絡模型壓縮的方法分為的思想是,去除冗余和不重要的參數,使用張量分解估計網絡中最具信息量參數,設計特殊結構的卷積核減少復雜度。本文介紹的第一種SqueezeNet 模型屬于網絡模型壓縮方法。MobileNet 和ShuffleNet 為新提出的輕量化卷積神經網絡結構模型。輕量化卷積神經網絡的共同特點是由模塊組成,網絡的核心是這些模塊,由于篇幅有限,本文著重介紹個網絡的核心模塊。
SqueezeNet 發表于ICLR-2017,是伯克利和斯坦福研究人員合作的成果。SqueezeNet 對傳統卷積網絡采用了squeeze 的壓縮操作。SqueezeNet采用了類似于GoogleNet 的inception 想,提出了核心的fire module 模塊,此模塊由squeeze 層和expand 層組成。Squeeze 層使用1×1 的點卷積方式處理特征圖,以此進行特征圖降維,減少特征的通道數,達到壓縮特征圖的目的,所以命名為squeeze。Expand 層對特征圖進行連接,該層采用1×1 和3×3 的兩種卷積核卷積特征圖,得到兩類特征圖。fire module 模塊的結構如圖1 所示。

圖1 fire module 模塊
在整體網絡中,反復多次使用fire module 模塊,完成整個網絡的構建。輸入的特征圖尺度是H×W×N,經過fire module 層后得到的特征圖尺度為分別為expand 層中1×1 和3×3 的數量。此外,該模型在多個模塊后使用池化操作,保留了較大的特征值。SqueezeNet 的改進版本為SqueezeNext,SqueezeNext 對SqueezeNet 中的卷積核進行了改進,并引入殘差網絡的結構,復用前層特征圖。
ShuffleNet 由國內知名的計算機視覺公司曠視科技提出。ShuffleNet的網絡結構中,以重新排列網絡結構為中心設計網絡,因此命名為ShuffleNet。該網絡的核心模塊對特征圖的通道進行有規律的重排。在傳統網絡中,直接對每個通道的特征圖進行操作,重排通道的意義是保證了信息流的充分流通和共享,保留圖像各通道之間的關聯性特征等重要信息。此外,ShuffleNet 中仍然采用了殘差網絡結構,將重排通道單元的前后3 層加入到一個殘差單元中。ShuffleNet將殘差網絡密集逐點卷積換成逐點分組卷積,通過組卷及可以獲得更高效的網絡。在第一個分組卷積后增加了一個通道重排操作,并刪除3×3 卷積后的激活函數。在shortcut 連接中,如果卷積步長為1,輸入與輸出特征的空間尺寸相等,兩側特征圖直接相加。當卷積步長為2,輸出特征尺度大小為原圖1/2,對原輸入采用步長為2 的3×3 均值池化以縮小特征圖,接下來將得到的特征圖與輸出進行拼接,而不是相加,使通道數加倍,這樣做的目的主要是降低計算復雜度與參數量。其核心模塊的結構如圖2 所示。

圖2 ShuffleNet 核心模塊
MobileNet 由谷歌的團隊提出,設計該網絡的初衷是讓卷積網絡可以在移動端設備運行。在MobileNet 中引入了深度可分離的卷積模塊替代傳統卷積操作。該網絡中的核心模塊也可以分為兩部分即深度卷積與逐點卷積。第一部分深度卷積,對輸入H×W×N 的特征圖分離通道,對每個通道進行普通卷積操作,該步卷積核尺寸一般為3 或5 的一維卷積核,共有N個K×K 的一維卷積核。分別使用一維卷積核對特征圖的N 個通道卷積,得到和原始尺度大小一樣的特征圖。第二部分的逐點卷積,對上層特征圖采用M 個1×1×N 的逐點卷積,輸出M 個H×W 的特征圖。通過計算傳統卷積核深度可分離卷積的計算復雜度,該模型將復雜度減少了8-9 倍。圖3 所示為MobileNet 的深度可分離卷積模塊。

圖3 深度可分離卷積模塊
MobileNet v1 的創新之處是設計了深度可分離卷積。在第一層使用普通卷積提取圖像特征圖,后面的網絡全部使用該模塊進行特征提取。全網絡僅在全連接層前使用均值池化操作,前層結構通過設置深度卷積的不同步長完成數據降維,大大減小了模型的規模。在改進版本的MobileNet v2 中,考慮到神經網絡會產生梯度消失的問題,借鑒了殘差網絡的殘差單元結構解決該問題,保證數據能夠在各層之間流通,重用特征。V2 版本中采用了反向殘差結構,該結構的特征圖通道維度先增加后減少,與殘差單元中特征圖通道維度先減少后增加相反。
本文使用ImageNet2012 數據集測試文中的三種六個輕量化網絡模型,在該數據及上的分類準確率、復雜度和模型參數量,復雜度采用大于500MFLOPs 來模擬大型復雜數據,結果如表1 所示。在同等的計算預算下,ShuffleNet v2 的分類準精確度大于其他五個輕量型網絡。SqueezeNet 和SqueezeNext 由于其參數量小,在模型占用系統資源上有較大的優勢。與傳統卷積網絡AlexNet、VGG、GoogleNet 對比,輕量化模型在占用較少計算資源的基礎上,同時計算復雜度也降低,準確度方面也與傳統網絡持平甚至有所超越,MobileNet、ShuffleNet 在降低了計算復雜度的基礎上,在精確度上與VGG-16 持平。這說明在進行簡化神經網絡的同時并不需要一味追求模型精度,減少參數、優化模型以降低計算復雜度也能夠讓模型準確度得到改善。

表1 輕量化網絡分類結果
本文介紹了三種輕量化卷積神經網絡以及其后續的優化和變種網絡模型。當前研究輕量型網絡的研究熱點是使用殘差網絡,復用前一層或者前幾層特征圖進行下層特征融合,同時在卷積核中使用點卷積來減少網絡參數和規模。輕量化卷積神經網絡的缺點如下:不能處理大量的圖像和分辨率、維度較高的圖像,如何處理大規模圖像也是需要解決的問題。但是輕量型網絡的出現,對傳統網絡的改進起到了一定的補充作用,輕量型網絡占用較少資源處理同樣的數據,減少處理器計算負荷,對于傳統網絡效率的優化來說未嘗不是一種有益的方法,通過輕量化的優化以后的網絡能夠更高效的運行,同時輕量化網絡將技術運用到實際生產生活中。