郭俊亮,張洪川
(銅仁職業(yè)技術學院,貴州 銅仁554300)
卷積神經(jīng)網(wǎng)絡是一種局部提取特征的方法,可以有效地響應局部模式,用這種方法提取整張圖片的特征,它是平移不變模式。在網(wǎng)絡逐層累加的過程中,對圖像進行了縮放。卷積神經(jīng)網(wǎng)絡的核心是卷積層和池化層。
(1)輸入:W1×H1×D1。
(2)超參數(shù):卷積核的個數(shù):K,卷積核的尺寸:F,步長:S,填充:P。
(3)輸出:W2×H2×D2,
(4)參數(shù):(F×F×D1+1)×K,其中,W是圖像的寬度,H是圖像的高度,D是圖像的深度。
(1)輸入:W1×H1×D1。
(2)超參數(shù):卷積核的尺寸:F,步長:S。
(3)輸出:W2×H2×D2,
參數(shù):最大池化和平均池化是沒有參數(shù)的,但是一些池化方法中是有參數(shù)的。
LeNet-5是由輸入層、卷積層、池化層、卷積層、池化層、全連接層、全連接層、輸出層組成[1]。輸入層圖像的尺寸大小是32*32,卷積層C1使用了6個5*5*1卷積核,對輸入圖像進行valid卷積操作,輸出28*28*6。池化層S2使用了6個2*2的矩陣,對28*28*6進行最大池化操作,輸出14*14*6。卷積層C3使用了16個5*5*6的卷積核,對14*14*6進行valid卷積操作,輸出10*10*16。池化層C4使用了16個2*2的矩陣,對10*10*16進行最大池化操作,輸出5*5*16。全連接層有兩個隱含層,第一個隱含層有120個神經(jīng)元,第二個隱含層有84個神經(jīng)元。輸出層有10個神經(jīng)元。
AlexNet是由卷積層、池化層、卷積層、池化層、卷積層、卷積層、卷積層、池化層、輸出層組成[2]。輸入層圖像的尺寸是224*224*3,在實際應用中,需要變成227*227*3,卷積層C1使用了96個11*11*3卷積核,對輸入圖像進行步長為4的valid卷積操作,輸出55*55*96。S1使用96個3*3卷積核,對55*55*96進行步長為2的valid最大值池化操作,輸出27*27*96。C2使用了256個5*5*96卷積核,對27*27*96,進行same卷積操作,輸出27*27*256。S2使用256個3*3卷積核,對27*27*256,進行步長為2的valid最大池化操作,輸出13*13*256。C3使用256個13*13*256卷積核,對13*13*256進行same卷積操作,輸出13*13*384。C4使用384個13*13*384卷積核,對13*13*384進行same卷積操作,輸出13*13*384。C5使用256個13*13*384卷積核,對13*13*384進行same卷積操作,輸出13*13*256。S3使用3*3*256卷積核,對13*13*256進行步長為2的valid最大池化操作,輸出6*6*256。全連接層6有4096個神經(jīng)元,全連接層7有4096個神經(jīng)元,輸出有1000個神經(jīng)元。
VGG是由牛津大學計算機視覺組和DeepMind公司共同研發(fā)的經(jīng)典的CNN模型,它采用小卷積核和增加網(wǎng)絡的深度方法,對網(wǎng)絡最后的分類識別效果有很大作用[3]。VGG共有6種不同的網(wǎng)絡結(jié)構(gòu),它們都包含5組卷積操作,每組卷積包括2個2*2或3個2*2卷積操作,然后進行2*2的最大值池化,將卷積層和最大池化層反復疊加,最后連接3個全連接層,組成VGG網(wǎng)絡結(jié)構(gòu),現(xiàn)在,在圖像處理研究和應用最多的是VGG16和VGG19,VGG16是卷積層和池化層疊加的層數(shù)是16,VGG19是卷積層和池化層疊加的層數(shù)是19,兩者只是網(wǎng)絡的深度不同,VGG16是16層,VGG19是19層。
Inception網(wǎng)絡結(jié)構(gòu)是由Google團隊提出,因此也稱為GoogLeNet,該模型一共有四個版本,V1到V4[4]。采用并行執(zhí)行多個具有不同尺度的卷積運算或池化操作,并將多個卷積核卷積的結(jié)果拼接到一起,增加特征圖的深度,使用全局平均池化代替全連接層。在V2中,采用Batch Normaliziton。在V3中,采用非對稱卷積降低運算量。如圖1所示。
圖1 經(jīng)典Inception模塊
在同一層使用多個不同的卷積核,會導致過多的參數(shù)出現(xiàn),在原來的Inception結(jié)構(gòu)中加入1*1卷積核,進行降維操作。如圖2所示。
圖2 改進Inception模塊
ResNet是由微軟研究院何愷明等人提出來的,該算法獲得了2015年大規(guī)模視覺識別挑戰(zhàn)賽的冠軍[5]。它提出了殘差學習的思想。圖3是殘差學習模塊,該模塊包括幾個卷積層,相當于對輸入X進行F(X)變化,同時加入原始的輸入X,整合成F(X)+X,作為整體的輸入,并用激活函數(shù)激活,最終得到此殘差學習模塊的輸出結(jié)果如圖3所示。
圖3 殘差學習模塊
圖4是ResNet網(wǎng)絡結(jié)構(gòu)中常用的兩種殘差學習模塊,第一個是2個3*3卷積神經(jīng)網(wǎng)絡串聯(lián)在一起作為殘差學習模塊,第二個是1*1、3*3、1*1卷積神經(jīng)網(wǎng)絡串聯(lián)在一起,組成一個殘差學習模塊。
圖4 兩種殘差學習模塊
ResNet網(wǎng)絡結(jié)構(gòu)都是以這兩種學習模塊疊加在一起來實現(xiàn)的。常見的ResNet網(wǎng)絡結(jié)構(gòu)有50層、101層和152層。
DenseNet的論文獲得了2017年國際視覺與模式識別會議最佳論文[6]。該模型吸取了ResNet的精華,并做出創(chuàng)新,如圖5所示,組建了Dense Block卷積神經(jīng)網(wǎng)絡模塊。在該模塊中的任何兩層都有直接連接,模塊中每層的輸入是前面所有層輸出的并集。不同的Dense Block是沒有這種緊密連接的。該網(wǎng)絡模型緩解了梯度消失的問題,加強了特征的傳播,支持特征的重復利用,提高了網(wǎng)絡性能。
圖5 Dense Block的結(jié)構(gòu)
MobileNet是一項比較新的研究成果,它的核心要點是深度可分離卷積和兩個超參數(shù)[7]。其中,深度可分離卷積分成兩個步驟,第一步是深度卷積,卷積核分別去卷積輸入的每個通道;第二步是逐點卷積,用的是Inception中的1*1卷積。兩個超參數(shù)是α和ρ,α用于控制輸入和輸出的通道數(shù),ρ用于控制輸入圖像的分辨率。
ImageNet數(shù)據(jù)集是一個計算機視覺數(shù)據(jù)集,該數(shù)據(jù)集包含14197122張圖片和21841個Synset索引,在數(shù)據(jù)集中,包含多個種類的圖像,并且,每張圖像都被關聯(lián)了標簽(類別名)。將多種卷積神經(jīng)網(wǎng)絡的模型在ImageNet數(shù)據(jù)集進行了對比分析,運行精度和效率值如表1和表2所示。
表1 運行精度和效率值
表2 運行精度和效率值
表1可以看出三個模型在精度上不相上下,但是MobileNet比其他兩個模型在計算量和參數(shù)上降低了很多。表2是把寬度因子設定為0.5,與另外兩個模型相比,MobileNet的預測精度是最高的,計算量和參數(shù)也是最少的。MobileNet預測的精度最高,速度最快,表現(xiàn)最好。
本文分析了傳統(tǒng)經(jīng)典卷積神經(jīng)網(wǎng)絡的結(jié)構(gòu)和思想,介紹了最新改進過的卷積神經(jīng)網(wǎng)絡模型,最后,對常用的網(wǎng)絡模型進行了性能對比。為研究者選擇模型提供了依據(jù)。