李潤龍, 王運圣, 徐識溥, 劉 勇
(1.上海應用技術大學軌道交通學院, 上海 201418; 2.上海市農業科學院農業科技信息研究所, 上海 201403;3.上海數字農業工程技術研究中心, 上海 201403; 4.同濟大學軟件學院, 上海 201804)
5G時代來臨,隨著物聯網、大數據技術逐步走向成熟,信息傳輸速率不斷加快,智能終端能在生活中的應用也越來越廣泛。其中智能識別、智能分類、智能運算運用最為廣泛。而圖像、視頻的智能識別更是成為了生活中不可缺少的一部分。
深度學習框架在圖像識別有個好處是不需要之前的傳統分類算法需要大量的人為處理圖像特征,它是一種自適應算法,通過多層卷積和非線性激活函數,把所有圖像特征通過多層感知機(multilayer perceptron,MLP)實現數據的分類和回歸[1],具有遷移不變性、尺度不變性、輻照圖亮度的特性。卷積神經網絡模型整體從卷積層開始,卷積層是一系列特征濾波器對集合(filters set),包含多個卷積核,輸出為特征映射(feature maps),然后對卷積結果進行線性修正一般使用relu[2]函數。Yi=max(Zi,0)卷積之后一般會加上一個池化層,一般有均值池化層核最大值池化層,對圖像進行特征壓縮,最后進行分類。
ILSVRC平臺中也出現了很多經典的深度學習網絡架構如,AlexNet[3]、ZFNet[4]、VGGNet[5]、GoogleNet[6]和ResNet,VGGNet在2014年該組參加imageNet的1 000類圖像分類與定位的比賽的模型為基礎,使用該模型后該組獲得了2014年分類第二,定位任務第一的好成績。而由于神經網絡的特性,為了獲得更高的準確率,現有研究傾向于不斷地在增加其網絡的深度和復雜度,其內部的參數數量,非線性映射也趨于龐大,因此也許很深的網絡結構在競賽和數據體現上會有很好的運算結果,但在實際應用中往往會受限于終端的存儲空間,運算能力,計算速度等。因此實際應用場景下如自動駕駛、手機端人臉識別、視頻分類等,往往要在毫秒中獲得學習結果,而這些設備往往處理器性能有限,也不能像在實驗室里花大量時間訓練運算。因此大大限制了卷積神經網絡的實用性。
為了讓深度學習能夠更加廣泛應用于日常生活,基本現在有兩種思路:①提高硬件水平,提高移動端的計算能力;②改善網絡結構,在不影響準確率的情況下盡量減少訓練時間與所需的數據量。
因為硬件的發展速度往往比較緩慢,它的更新迭代遠遠落后于網絡結構演變所需要的速度。所以降低傳統網絡框架的計算參數和計算復雜度成為現在日常研究深度學習最普遍的一環。
AlexNet為代表的五層卷積神經網絡以及其優化網絡如ZF、VGG、GoogleNet、ResNet、DenseNet,其性能都在逐步提升但是參數量也是不斷增加。
由圖1可以看到最近一些比較熱門網絡模型的性能和質量的對比。可以看到這些卷計算機網絡質量大部分在幾十到幾百兆。

圖1 熱門模型質量對比Fig.1 Popular module weight comparison
UC Berkely16年提出的SqueezeNet卷積網絡模型將這些幾十、幾百兆的網絡結構在不影響精度的情況下縮小到4.6 MB左右。
針對SqueezeNe的核心模塊Fire Module提出了三個改進策略:①在密集的1×1卷積[7]核上采用1×1分組卷積的方式進行改進以減少其中的計算量,同時為了解決分組卷積中各通道信息不流通的問題;②添加了Channel-shuffle[8](交叉分組)操作,把分組卷積后的不同特征圖進行重組,讓接下來的分組卷積來自不同組,從而讓信息在不同分組中流通;③在Softmax層進行調整使用SoftMaxLoss[9]和Center Loss聯合監測訓練來彌補對于相似性很高的圖像比如人臉面部表情的識別效果。
SqueezeNet網絡模型的核心模塊是Fire Module(圖2),它由Squeeze層和Expand層組成,Squeeze層是由1×1卷積核構成的,在進行輸入的時候1×1卷積核通過改變自己的卷積核數從而可以改變或減少模型輸入時候的通道數從而減少參數量和計算復雜度。Expand層由1×1卷積核和3×3卷積核拼接組成,因為卷積核,在卷積運算中1×1卷積計算占了整個模塊的大部分,計算復雜度依然很高。

圖2 Fire Module組成Fig.2 Fire Module structure
在Fire Module基礎上用1×1分組卷積來替代原來的1×1常規卷積核。并且對模型的輸入采用批量歸一化(batch normalization,BN)加速訓練和收斂過程,提高分類的精度。然后對改進后的Fire Module進行級聯。
傳統卷積與分組卷積的對比如圖3、圖4所示。

圖3 傳統卷積Fig.3 Traditional convolution

圖4 分組卷積Fig.4 Department convolution
傳統的卷積中,卷積核是完整的進行訓練轉換的。在分組卷積中,把卷積核分為N(圖3中N=3)個部分,輸入的模的型維度為Din/N,在分組卷積中卷積核分別對應輸入[:,:,0:Din/N]維度部分進行卷積操作,以此類推第二組卷積核與輸入[:,:,0:Din/N:2Din/N]維度進行卷積,據此得出每組的卷積操作后的輸出都變成了Do/N維度的卷積核,并且每組輸入和輸出的運算都是獨立卷積的運算,輸入只和當前分組卷積核進行卷積,不和其他分組的卷積核卷積。在全部分組卷積完成之后,再把所有的Do/N維度的輸出完成疊加,以此得到最終分組卷積的完整輸出。
由表1可以清楚看到,分組卷積核常規卷積的參數量與比率和分組數成正比。當輸入大小為W1(寬度)、H1(高度)、C1(維度),假設一共有C2個卷積核,卷積核的尺寸為h×w,則過上面表格的計算可以看出分組卷積和常規卷積分別其計算量和參數量,可以得出采用分組卷積能很好地降低整個模型的參數量和計算量。

表1 傳統卷積核分組卷積參數量核計算量對比
因為輸入是一個整體,卷積后的輸出也是映射于輸入整體。而在分組卷積中卷積每個分組卷積的訓練都是分通道的獨立進行,相當于把整體輸入分割成很多獨立部分進行卷積運算。因此各個分組之間的獨立操作會引起各個分組通道的信息不流通。為了加強每個分組之間的信息交換,在此基礎上加入Channel-shuffle操作。
如圖5所示,對分組后的Feature進行交叉打亂組成新的Feature輸入到下一輪的卷積運算當中,這樣可以讓分組卷積的輸入是來自不同組的,讓不同獨立組之間的信息得以流通。為了可以有效訓練這個交叉過程是有序,有規律進行而不是動態隨機打亂的。

圖5 分組卷積的工作原理Fig.5 How department convolution works
SqueezeNet采用的是常規的SoftMax分類器,SoftMax函數是有限離散概率分布函數:

(1)
式(1)中:w為權重參數;b為偏執項。
對于基于概率的多分類問題,它簡單有效,但因為人面部圖片的高度相似性與特征不清晰,其特征的類間距往往較大,類內距離很有可能出現大于類間距離的情況。導致在復雜的人臉圖片下識別率變低。
Center Loss損失函數為

(2)
混合損失函數為
L=LS+γL
(3)
式中:xi表示全連接層之前的特征;cyi表示第Yi個類分支的中心,Center Loss的不同點在于,它在每個類分支上都添加了一個中心,在此基礎上增大其他類分支和中心之間的距離。因此它讓類內距離變得更小,類間距離變得更大,更有利于分類一些復雜的圖像。
根據于此,對SqueezeNet的Softmax分類層改進,變為Softmax和Center Loss聯合分類以減少類間距從而使其更有效地識別復雜、相似的人臉模型。
基于上述方法改進后的Fire Modudel如圖6所示。命名為NVM模塊。基于此建立NVMNet網絡結構,較之前的Fire Module, NVM模塊同樣由壓縮層和擴展層組成,把之前的1×1常規卷積替換為分組卷積以到達模型精簡,和之前在壓縮層通過1×1分組卷積減少輸入的通道數,并在1×1卷積后面加入了批量歸一化來加速訓練過程,而之后Channel Shuffel 讓數據讓分組訓練信息在不同的通道中進行流通。

圖6 改進后的NVM模塊Fig.6 Improved NVM module
根據前文這模塊的超參數,分別Squeeze層和Expand層的分組卷積的分組數g、Squeeze層卷積核數h、卷積層卷積核數w和擴展層卷積核數n,其h=m,h 整個模型的輸入和輸出的尺寸、維度都相同,參考 SqueezeNet 模型的結構的方式鏈接改進后的NVM模塊,并在結構添加一個加池化層和兩個NVM 模塊。此外,在結構最后添加 Softmax-Center Loss 函數。新的Softmax-Center Loss 函數函在訓練時候把模型的輸出值映射到[0,1]區間中,總體的輸出之和依然為1,這就是本文所需要的分類結果的概率值。NVM 的整體結構如表2所示。 ORL人臉數據集[10]是英國劍橋大學的Olivetti實驗室1994年創建,數據集里有40個目錄每個目錄下保存著10個不同表情的人臉照(圖7)。圖片如圖7都是以PGM格式保存,對任一圖像都是在不同的光影,時間,面部特征(睜眼、閉眼、微笑、不微笑)的環境下采集。實驗將300張圖片作為訓練集,100張作為測試集。最終輸出類別為40個。 表2 NVM網絡結構表 圖7 ORL數據集Fig.7 ORL Dataset 訓練在一臺Intel Xeon處理器,Radeon Pro 580x顯卡,32 G內存的MAC上基于Tensorflow深度學習框架上進行。 在SqueezeNet上同樣把末端的SoftMax分類器改為Softmax和Center Loss聯合分類進行監測,在ORL數據集,在NVM分組卷積數量上采用4個分組。 從實驗結果表3可以看到在使用同樣分類器的人臉識別效果中分組卷積對分類精度影響雖然有所 表3 改進后的網絡質量核精度對比 下降但并不明顯,說明Channel-shuffel很好完成了通道間的信息間的流通,同時引入分組卷積后,有效減少了33%的參數量。 在識別效果影響有限的情況下減少模型質量說明在SqueezeNet引入分組卷積是一個有效的模型輕量化策略,但是可能因為訓練樣本數量過少的原因實驗精度并不是很理想。 同樣在ORL人臉數據集上,2的指數能夠完整地整除圖像輸入的維數,因此采用2的指數,2、4、8、16個分組卷積分別進行訓練和測試。 由表4可見,分組數量增加過程中,識別精度降低了1.2%,參數量也相應減少13%,綜合對比下,在當前訓練樣本分組數目為4效果最佳。 表4 不同分組的分組卷積對質量核精度的影響 圖8 三種不同網絡結構在ORL數據集上的訓練過程Fig.8 Training process of three different network structures on ORL data sets 在ORL 數據集上對三個不同的網絡結構進行了40個epoch的訓練,如圖8所示,采用了分組卷積和批量歸一化的NvmNet和殘差網絡的ResNet收斂速度比采用常規卷積的AlexNet速度更快,基本在15個epoch就可以完成收斂,在ORL數據集上分類精度最好的是ResNet、NvmNet、AlexNet。同時在表5的參數量和計算量比較上可以看到,因為SqueezeNet在結構基礎上引用了Deep Compression壓縮技術,才讓參數降到1.24 MB,NvmNet在它原來4.6 MB基礎上在參數量上繼續有所降低。而在同時采用相同分類器的情況下精度并沒有降低。說明分組卷積后的Channel-shuffle的有效性。 如表5所示,通過和幾個熱門網絡結構的比較可以看出,常規卷積模式的AlexNet和VGG模型相比較其他輕量化模型都有較大的參數量。這與它們全連接層的參數多有關。采用全局平均池化層的ResNet參數量適中,但由于其網絡結構過深使得計算量很大。而NvmNet在參數量的優勢比較而言就很明顯。這大大增加了網絡模型的應用場景。節約應用存儲內存和運算成本。模型移動端可移植性更加優秀。 表5 不同網絡結構的對比 與SqueezeNet比較,在ORL數據集上。NvmNet的分類精度下降了0.7%。而在參數量上卻降低了百分之33%。因此NvmNet在輕量化模型上有一定的使用價值。 通過分組卷積的思想在SqueezeNet結構上做出了輕量化改進,引入批量歸一和SoftMax-center Loss分類器提升網絡結構在人臉下的識別精度和效率。在精化網絡整體結構的情況下在ORL數據集上分類效果也有一定提升。但由于ORL數據集訓練樣本相對較少,在以后實驗中可以增加數據樣本進行進一步驗證。本輕量化模型結構有良好的應用場景,未來可以進一步研究在人臉之外的視覺領域的可行性。2 實驗與分析


2.1 分組卷積對實驗精度和網絡質量的影響

2.2 不同分組數量對結構質量和精度的影響

2.3 模型輕量化的實現及效果對比


3 結論