劉夢雅,毛劍琳
(昆明理工大學 信息工程與自動化學院,云南 昆明 650500)
近年來,深度學習的發(fā)展使得機器學習取得了重要突破。其中,卷積神經(jīng)網(wǎng)絡 (CNN)在圖像處理等方面的研究成果十分矚目。它不但可以像人類視覺系統(tǒng)一樣逐層提取得到圖像的深層特征,提高網(wǎng)絡的識別率;而且它提取到的特征具有較強的平移不變性,解決了由于圖像變換引起的特征提取不準確的問題[1]。由于存在很多優(yōu)點,目前卷積神經(jīng)網(wǎng)絡在虹膜識別、人臉識別、圖像識別、語音識別等許多方面有著廣泛的應用。
Lee等人[2]使用分層生成模型改進卷積神經(jīng)網(wǎng)絡來處理高維圖像,大幅提高了準確率;Alex等[3]在處理圖像識別問題時,構(gòu)建了一種大型深層卷積神經(jīng)網(wǎng)絡,經(jīng)測試發(fā)現(xiàn),識別率得到了明顯提高。目前提出的很多改進算法都取得了良好的識別效果,但對訓練數(shù)據(jù)量的要求仍然較大,如果數(shù)據(jù)量較小就會導致卷積神經(jīng)網(wǎng)絡前幾層得不到充分訓練。為解決這一問題,權(quán)值的初始化操作是一個改進方向,文獻[4]提出利用稀疏自動編碼器學習輸入圖像的特征以初始化卷積神經(jīng)網(wǎng)絡的卷積核,之后文獻[5]提出采用 PCA 改進初始權(quán)值的方法,但效果不佳,所以濾波器初值的優(yōu)化仍然比較困難。
此外,卷積核的大小、池化模型以及特征圖的個數(shù)都會影響CNN的運行速度和識別率。文獻[6]比較了卷積核大小為19、15、11、7、3共5種情況下的實驗結(jié)果,并得出結(jié)論:卷積核較小的情況更能擬合原始變化趨勢,但是時間消耗巨大。文獻[1]對不同池化模型進行了比較學習,并提出了一種改進的池化模型,使識別率得到了一定的提高。文獻[7]比較了不同特征圖個數(shù)下的識別率,發(fā)現(xiàn)當特征圖的個數(shù)較少時,網(wǎng)絡能夠提取到的特征較少,使得識別率較低;但如果特征圖的個數(shù)太多,識別率會有所提高,但會使網(wǎng)絡的結(jié)構(gòu)變復雜,訓練時耗也會增大,還有可能出現(xiàn)過度訓練現(xiàn)象。所以卷積神經(jīng)網(wǎng)絡隱層特征圖數(shù)的確定至關(guān)重要。
本文提出了一種基于稀疏自動編碼器和灰度關(guān)聯(lián)分析法的卷積神經(jīng)網(wǎng)絡優(yōu)化算法。首先,通過稀疏自動編碼器產(chǎn)生一組濾波器集合作為卷積核的初始權(quán)值[8],實驗數(shù)據(jù)顯示,卷積核初始權(quán)值的設定降低了初始均方誤差。其次,引入灰度關(guān)聯(lián)分析法篩選特征圖,通過設定閾值確定隱層特征圖個數(shù),挑選出對輸出層結(jié)點影響較大的特征圖,刪除部分對輸出影響偏小的特征圖。實驗結(jié)果表明,在迭代次數(shù)較小的情況下,算法可以降低誤識率,驗證了算法的有效性。
卷積神經(jīng)網(wǎng)絡是一種深層神經(jīng)網(wǎng)絡,一般來說,它的基本結(jié)構(gòu)包括5層,分別是輸入層、卷積層、子采樣層、全連接層和輸出層。每層由多個二維平面構(gòu)成,每個平面又由多個神經(jīng)元構(gòu)成?;窘Y(jié)構(gòu)如圖1所示。
原始輸入圖像首先經(jīng)過卷積層,與卷積核進行卷積操作,得到一組卷積層特征圖集合。這些特征被提取后,它們彼此間的位置關(guān)系不會再發(fā)生變化,所以卷積神經(jīng)網(wǎng)絡模型具有平移不變性。這些特征圖再與子采樣層的池化模型進行池化操作,對特征圖進行二次特征提取。池化操作可以降低輸入特征圖的數(shù)據(jù)量,還可以避免出現(xiàn)過度訓練現(xiàn)象。完成卷積和池化之后,把最后一層子采樣特征圖全部展開,重組成一個一維列向量(全連接層),該一維列向量和輸出層采用全連接的方式連接。
卷積神經(jīng)網(wǎng)絡通過輸入特征圖的感受域與卷積核進行卷積提取局部特征,和全連接方式相比,使得網(wǎng)絡的參數(shù)大幅減少。計算時,多個卷積核分別對圖像的不同感受域進行卷積,提取出多個特征圖(每個卷積核卷積得到一幅與之對應的特征圖),此時,卷積核參數(shù)對所有的感受域而言都是不變的,所以大幅減少了訓練參數(shù),提升了網(wǎng)絡的學習性能。但卷積神經(jīng)網(wǎng)絡在訓練過程中仍有許多環(huán)節(jié)需要優(yōu)化。在訓練數(shù)據(jù)量不充足的情況下,CNN前幾層網(wǎng)絡的參數(shù)就不能得到較好的訓練;但如果選用特別多訓練數(shù)據(jù)又會導致網(wǎng)絡訓練速度緩慢,所以在適當數(shù)據(jù)量的情況下訓練出較優(yōu)的網(wǎng)絡前層參數(shù)很重要。
圖1 卷積神經(jīng)網(wǎng)絡結(jié)構(gòu)圖
針對上述問題,本文采用稀疏自動編碼器對初始特征圖進行無監(jiān)督預訓練,得到一組能較好反映初始特征圖特征的濾波器集合。將這組濾波器集合作為CNN的C1層卷積核,能有效降低網(wǎng)絡的誤識率。
稀疏自編碼器(Sparse Autoencoder)可以自動從初始特征圖中學習出它的特征,提煉出比原始數(shù)據(jù)更精煉的特征描述。用稀疏編碼器提取的特征在實際運用中往往比原始數(shù)據(jù)更有助于網(wǎng)絡的訓練,其網(wǎng)絡結(jié)構(gòu)如圖2所示。
圖2 稀疏自動編碼器結(jié)構(gòu)圖
稀疏自動編碼器本質(zhì)上是一個只具有一層隱含層的BP神經(jīng)網(wǎng)絡,其基本思想是使輸出等于輸入,使得編碼器學習出輸入特征圖的另一種表達方式。BP神經(jīng)網(wǎng)絡在訓練過程中,最終輸出結(jié)果是與標簽比對,并計算損失代價函數(shù),而稀疏自動編碼器沒有預先設置好的標簽,與網(wǎng)絡輸出對比的是輸入本身。所以,稀疏自動編碼器的訓練過程與BP神經(jīng)網(wǎng)絡一致,也就是一種“信號正向傳播,誤差反向傳播”的過程[9],具體過程如下。
(1)
其中,f函數(shù)為激活函數(shù),一般取tanh函數(shù)或者sigmoid函數(shù),本文測試采用sigmoid函數(shù)。
稀疏自動編碼器的目標函數(shù)為
y(i)=x(i)
(2)
可以通過最小化以下代價函數(shù)(3),實現(xiàn)式(2),即使輸出值盡可能等于輸入值
(3)
(4)
在原始的代價函數(shù)中加入一項額外的懲罰因子稀疏性限制條件以實現(xiàn)稀疏性,可以選擇如式(5)形式的懲罰因子[10],該表達式也被稱為相對熵
(5)
ρ通常是一個較小的值,一般接近于0(如ρ=0.05),表示神經(jīng)元j的平均活躍度為0.05。此時的代價函數(shù)更新為
(6)
其中,β是稀疏性懲罰因子的權(quán)重。
上述部分是正向傳播過程,接下來要對誤差進行反向傳播以實現(xiàn)權(quán)值的更新。采用的方法是和神經(jīng)網(wǎng)絡一致的BP反向傳播算法[11]。權(quán)值更新公式如下
(7)
(8)
其中,α為學習率。不斷迭代上述“信號正向傳播,誤差反向傳播”的過程,實現(xiàn)權(quán)值的更新,直到算法收斂為止。最終得到的參數(shù)集Wl就是預訓練的卷積核參數(shù)集。
卷積神經(jīng)網(wǎng)絡特征圖的個數(shù)對網(wǎng)絡的結(jié)構(gòu)和識別效果均有很大的影響,很多情況下都是依靠開發(fā)者的經(jīng)驗選擇[12]。本文采用灰度關(guān)聯(lián)分析法對卷積神經(jīng)網(wǎng)絡的結(jié)構(gòu)進行優(yōu)化,以此確定卷積神經(jīng)網(wǎng)絡特征圖的個數(shù)。
灰度關(guān)聯(lián)分析法(Grey Relational Analysis, GRA)是著名學者鄧聚龍首創(chuàng)的灰色系統(tǒng)理論中的經(jīng)典方法[13]。GRA的基本思想是量化特征圖的幾何狀態(tài),再計算出參考序列和比較序列之間的關(guān)聯(lián)度。關(guān)聯(lián)度較大時,比較序列的幾何發(fā)展情況與參考序列更為接近。GRA能夠挖掘系統(tǒng)內(nèi)部的關(guān)聯(lián)度,計算量也比較小,能比較方便地應用到神經(jīng)網(wǎng)絡結(jié)構(gòu)的優(yōu)化中。
本文使用的CNN網(wǎng)絡結(jié)構(gòu)由兩個卷積層和兩個子采樣層組成。卷積層經(jīng)過池化操作得到子采樣層的特征圖,所以它們的個數(shù)相等。因此,只需要確定子采樣層的特征圖個數(shù)。在本次試驗中,僅對S4層的特征圖個數(shù)進行優(yōu)化,下面是GRA優(yōu)化卷積神經(jīng)網(wǎng)絡結(jié)構(gòu)的步驟[14]。
假設輸入層輸入個數(shù)為N,對應的標簽就是參考序列y,為(y1,y2,y3,…,yN)。假設S4層的特征圖個數(shù)為n,每個特征圖的輸出即比較序列ti,為 (ti(1),ti(2),ti(3),…,ti(N)),i=1,2,3,…,n。一般情況下,GRA的第一步是對數(shù)據(jù)進行歸一化處理,但由于卷積神經(jīng)網(wǎng)絡特征圖的輸出經(jīng)過sigmoid函數(shù)處理后范圍在0~1之間,所以可以直接求出比較序列與參考序列之間的關(guān)聯(lián)系數(shù),計算公式如式(9)所示。
(9)
其中,ρ為分辨率系數(shù),在0~1之間,一般取0.5。
由于每個特征圖均有多個特征系數(shù),所以有必要將這些關(guān)聯(lián)系數(shù)集中成一個值,即關(guān)聯(lián)度,計算公式如(10)所示。
(10)
以上求出了n個特征圖的輸出與對應的標簽之間的關(guān)聯(lián)度,然后對關(guān)聯(lián)度進行排序,設定關(guān)聯(lián)度閾值。小于閥值的特征圖可以考慮將其刪除,僅保留關(guān)聯(lián)性較大的特征圖,以此得到最優(yōu)的隱層特征圖個數(shù)[15]。
本文提出的改進后的CNN算法流程圖如圖3所示。算法步驟如下:
(1)導入訓練集與測試集,設定CNN的初始網(wǎng)絡結(jié)構(gòu)并對網(wǎng)絡參數(shù)進行初始化;
(2)利用稀疏自動編碼器預訓練,得到CNN網(wǎng)絡的第一個卷積層所對應的卷積核的初始參數(shù);
(3)通過式(1)計算得到C1層的特征圖;
(4)通過下采樣層對C1層進行池化,得到S2層的特征圖;
(5)與步驟(3)和(4)相似,得到C3層和S4層;
(6)將S4層所有的特征圖展開成列向量,采用全連接的方式,經(jīng)過分類器得到每個特征圖對應的識別結(jié)果;
(7)提取S4層的特征圖數(shù)據(jù),并將每個特征層對應的識別結(jié)果作為灰度關(guān)聯(lián)分析法的比較序列,對應的真實標簽作為參考序列,計算各特征圖與識別結(jié)果的關(guān)聯(lián)度。選擇關(guān)聯(lián)度大于閾值的特征圖,然后對CNN結(jié)構(gòu)進行優(yōu)化;
(8)在優(yōu)化后的CNN網(wǎng)絡結(jié)構(gòu)下,重復步驟(1)~(6),直到損失函數(shù)的值小于預設的閾值,或者達到最大迭代次數(shù);
(9)利用測試集對訓練過的網(wǎng)絡進行測試,計算出誤差率。
圖3 優(yōu)化后的CNN算法流程圖
本文利用全球手寫數(shù)字MNIST數(shù)據(jù)集對改進后的CNN進行訓練和測試。共有70 000條數(shù)據(jù),選取60 000條數(shù)據(jù)進行網(wǎng)絡的訓練,其余數(shù)據(jù)進行測試。實驗環(huán)境為Windows10,算法的實現(xiàn)平臺為Matlab(2012a)。
試驗中設置的CNN結(jié)構(gòu)與參數(shù)如下:網(wǎng)絡結(jié)構(gòu)為兩個卷積層和兩個子采樣層交替連接;C1層的隱藏特征圖個數(shù)為6,C3層的隱藏特征圖個數(shù)初始值為24,下采樣層的特征圖個數(shù)與對應的卷積層一致;卷積核尺寸為5×5,子采樣層的池化模型為2×2;C1層卷積核初始化為稀疏自動編碼器學習得到的濾波器集合,每層的偏置均初始化為0,其它權(quán)值初始值為設定范圍內(nèi)的任意值,在此不一一贅述。傳統(tǒng)的CNN、預處理后的CNN以及基于GRA的改進CNN分別迭代一次后測試出的誤識率如表1所示。
表1 3種算法迭代一次后的誤識率
由表1可知,對傳統(tǒng)的卷積神經(jīng)網(wǎng)絡進行無監(jiān)督預訓練后,誤識率降低了約2%;再結(jié)合GRA對網(wǎng)絡進行優(yōu)化,誤識率又降低了約1.2個百分點。所以,本文提出的改進算法在提高誤識率方面確實有效果。
本次試驗的C1層設置了6個隱藏特征圖,所以在稀疏自動編碼器進行預訓練時,設置的中間層節(jié)點數(shù)為6。為使訓練結(jié)果更形象得展示出來,試驗對訓練結(jié)果進行了可視化操作,稀疏自動編碼器的訓練結(jié)果如圖4所示,GRA根據(jù)計算出的關(guān)聯(lián)度選擇特征圖的過程如圖5所示。
圖4 稀疏自動編碼器訓練的濾波器集合
由圖4和圖5可知,稀疏自動編碼器訓練出了6個5×5大小的濾波器,提取出了能夠較好反映原始輸入圖像特征的卷積核,GRA完成關(guān)聯(lián)度排序后,會選擇大于關(guān)聯(lián)度閾值的特征圖進行訓練,這兩步的引入為誤識率的降低提供了可能性。
圖5 灰度關(guān)聯(lián)分析法對特征圖進行關(guān)聯(lián)度排序
除此之外,試驗過程中Matlab繪出的均方誤差圖還說明隨著預訓練和GRA的引入,CNN的初始均方誤差逐漸減小,由傳統(tǒng)CNN的1.7到預訓練CNN的1.3再到基于GRA改進CNN的1.18。均方誤差的下降趨勢也得到了改善,從圖6可以直觀的發(fā)現(xiàn),改進后的算法均方誤差下降迅速,收斂速度也有所提高。圖6(a)描述的訓練過程明顯可見,在批次200~500之間出現(xiàn)了一個平臺期,這段時間均方誤差的下降趨勢大幅減緩;圖6(b)在批次200~400之間時均方誤差的下降趨勢也出現(xiàn)了減緩現(xiàn)象,但較圖6(a)已經(jīng)有了改進;圖6(c)的訓練過程中這一現(xiàn)象已基本消失。
圖6 3種CNN算法的均方誤差
本文提出的改進的CNN算法,首先通過稀疏自動編碼器對網(wǎng)絡進行預訓練,解決了卷積神經(jīng)網(wǎng)絡前層得不到充分訓練的問題。然后,在對隱藏特征圖的選擇上,引入了灰度關(guān)聯(lián)分析法,對卷積神經(jīng)網(wǎng)絡的結(jié)構(gòu)進行了優(yōu)化。試驗結(jié)果表明,改進后的算法提高了傳統(tǒng)CNN的識別率,對收斂速度也有一定的提高。但是,如果在數(shù)據(jù)量很大的情況下,改進后的算法就不再占優(yōu)勢,最終的識別結(jié)果差別不大。60 000條數(shù)據(jù)迭代10次時,3種CNN的識別結(jié)果均在98%左右。所以,本文提出的改進算法適用于數(shù)據(jù)量較小的情況,在這種情況下,可以較快地提高卷積神經(jīng)網(wǎng)絡的識別率。
[1] 劉萬軍,梁雪劍,曲海成.不同池化模型的卷積神經(jīng)網(wǎng)絡學習性能研究[J].中國圖象圖形學報,2016,21(9):1178-1190.
[2] Lee H,Grosse R,Ranganath R,et al.Convolutional deep belief networks for scalable unsupervised learning of hierarchical representations [C]. Montreal:Proceedings of the 26thAnnual International Conference on Machine Learning,ACM,2009.
[3] Alex K,Ilya S,Hinton G E.ImageNet classification with deep convolutional neural networks[EB/OL].(2015-02-10)[2017-05-13]http://papers.nips.cc/paper/4824-imagenet-Classification-withdeep-convolutional-neural-networks.pdf.
[4] Kavukcuoglu K,Sermanet P,Boureau Y,et al. Learning convolutional feature hierarchies for visual recognition[C].Vancouver:Proceedings of 2010 Advances in Neural Information Processing System Conference,Neural Information Processing System Foundation,2010.
[5] 史鶴歡,許悅雷,馬時平,等.PCA預訓練的卷積神經(jīng)網(wǎng)絡目標識別算法[J].西安電子科技大學學報:自然科學版,2016,43(3):175-180.
[6] 張貴勇.改進的卷積神經(jīng)網(wǎng)絡在金融預測中的應用研究[D].河南:鄭州大學,2016.
[7] 李媛媛.卷積神經(jīng)網(wǎng)絡優(yōu)化及其在圖像識別中的應用[D].沈陽:沈陽工業(yè)大學,2016.
[8] 張文達,許悅雷,倪嘉成,等.基于多尺度分塊卷積神經(jīng)網(wǎng)絡的圖像目標識別算法[J].計算機應用,2016,36(4):1033-1038.
[9] 雒玉璽.稀疏自動編碼器及其加速算法的研究[D].蘭州:蘭州大學,2014.
[10] 鄧俊鋒,張曉龍.基于自動編碼器組合的深度學習優(yōu)化方法[J].計算機應用,2016,36(3):697-702.
[11] 畢艷亮,寧芊,雷印杰,等.基于改進的遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡并用于紅酒質(zhì)量等級分類[J].計算機測量與控制,2016,24(1):226-228.
[12] Husken M.Structure optimization of neural networks for evolutionary design optimization[J]. Soft Computing-a Fusion of Foundations, Methodologies and Applications,2005,9(1):21-28.
[13] 唐萬梅.BP神經(jīng)網(wǎng)絡網(wǎng)絡結(jié)構(gòu)優(yōu)化問題的研究[J].系統(tǒng)工程理論與實踐,2005(10):95-100.
[14] 楊延璞,陳登凱,顧蓉,等.基于色彩案例和灰度關(guān)聯(lián)分析的產(chǎn)品配色設計方法[J].圖學學報,2016,37(4):509-513.
[15] 王麗君,于蓮芝.基于卷積神經(jīng)網(wǎng)絡的位置識別[J].電子科技,2017,30(1):104-106.