范青
摘要:深度學習在人工智能尤其是在圖像處理,圖像分類方面的應用越來越廣泛。其中卷積神經(jīng)網(wǎng)絡在其中具有重要地位。本文的主要目的為探究通過調(diào)整在網(wǎng)絡中卷積過程所使用的濾波器大小,在保證分類結果準確率可接受情況下,盡量減少樣本的訓練時間,并總結出一套較為通用的濾波器大小設置規(guī)則。在文章中,通過對theano中基于lenet模型所構造的卷積神經(jīng)網(wǎng)絡的兩層卷積層中的濾波器大小進行不同搭配的設置,測試數(shù)據(jù)集為廣泛使用的mnist手寫數(shù)字庫以及cifar_10庫,最后對比探究出適用于這兩個數(shù)據(jù)集的減少訓練時間的設置規(guī)律。
關鍵詞:卷積神經(jīng)網(wǎng)絡;深度學習;圖像處理;訓練時間
中圖分類號:TP18 文獻標識碼:A 文章編號:1009-3044(2016)33-0167-04
如今在機器學習領域中,深度學習方法已經(jīng)占據(jù)了相當重要的地位,通過模仿人腦學習方式構造模型,在圖像、文本、語音處理方面取得了顯著成果[1]。目前應用較為廣泛的深度學習模型包含多層感知器模型(MLP)[2],卷積神經(jīng)網(wǎng)絡模型和限制性玻爾茲曼機模型等[4]。多層感知器[2]網(wǎng)絡結構的神經(jīng)節(jié)點一般分層排列,主要由輸入層,輸出層和一些隱層組成,同層之間的神經(jīng)元節(jié)點無連接,相鄰的兩層神經(jīng)元進行全連接,前一層的神經(jīng)元的輸出作為后一層神經(jīng)元的輸入,但本身此種算法存在著一些問題,那就是它的學習速度非常慢,其中一個原因就是由于層與層之間進行全連接,所以它所需要訓練的參數(shù)的規(guī)模是非常大的,所以對其進行改進,產(chǎn)生了卷積神經(jīng)網(wǎng)絡模型。卷積神經(jīng)網(wǎng)絡模型在圖像識別方面的應用十分廣泛[5,8,9]。從它的結構上來看,層與層之間的神經(jīng)元節(jié)點采用局部連接模式,而并非MLP的全連接模型,這樣就降低了需要訓練的參數(shù)的規(guī)模。而在它卷積層中,它的每一個濾波器作為卷積核重復作用于整個輸入圖像中,對其進行卷積,而得出的結果作為輸入圖像的特征圖[6],這樣就提取出了圖像的局部特征。而由于每一個卷積濾波器共享相同的參數(shù),這樣也就大大降低了訓練參數(shù)的時間成本。而本文,以卷積神經(jīng)網(wǎng)絡為研究對象,在其模型的基礎上通過對其結構中卷積核也就是濾波器的大小進行調(diào)整并結合卷積核個數(shù)調(diào)整和gpu加速等已有的訓練提速方法,達到降低訓練時間并且對識別結果并無太大影響的目的。
1 卷積神經(jīng)網(wǎng)絡
卷積神經(jīng)網(wǎng)絡在MLP的基礎上,已經(jīng)對結構進行了優(yōu)化,通過層與層之間的局部連接以及權值共享等方式對要訓練的參數(shù)的進行了大幅減低。
1.1局部連接
BP神經(jīng)網(wǎng)絡中,神經(jīng)元在本層中呈線性排列狀態(tài),層與層之間進行全連接,而在卷積神經(jīng)網(wǎng)絡中,為了減少每層之間的可訓練參數(shù)數(shù)量,對連接方式進行了修改,相對于BP神經(jīng)網(wǎng)絡的全連接,卷積神經(jīng)網(wǎng)絡采取了局部連接的連接方式[7],也就是說按照某種關聯(lián)因素,本層的神經(jīng)元只會與上層的部分神經(jīng)元進行連接。
2.2 權值共享
在CNN中,卷積層中的卷積核也就是濾波器,重復作用在輸入圖像上,對其進行卷積,最后的輸出作為他的特征圖,由于每個濾波器共享相同的參數(shù),所以說他們的權重矩陣以及偏置項是相同的。
我們從上圖看出,相同箭頭連線的權值是共享的,這樣在原有的局部連接的基礎上我們又降低了每層需要訓練的參數(shù)的數(shù)量。
2.3卷積過程
特征圖是通過濾波器按照特定的步長,對輸入圖像進行濾波,也就是說我們用一個線性的卷積核對輸入圖像進行卷積然后附加一個偏置項,最后對神經(jīng)元進行激活。如果我們設第k層的特征圖記為[hk],權重矩陣記為[Wk],偏置項記為[bk],那么卷積過程的公式如下所示(雙曲函數(shù)tanh作為神經(jīng)元的激活函數(shù)):
2.4 最大池采樣
通過了局部連接與權值共享等減少連接參數(shù)的方式卷積神經(jīng)網(wǎng)絡中還有另外一個重要的概念那就是最大池采樣方法,它是一種非線性的采樣方法。最大池采樣法在對減少訓練參數(shù)數(shù)量的作用體現(xiàn)在兩個方面:
1 )它減小了來自m-1層的計算復雜度。
2 )池化的單元具有平移不變性,所以即使圖像在濾波后有小的位移,經(jīng)過池化的特征依然會保持不變。
3卷積神經(jīng)網(wǎng)絡整體構造以及減少訓練時間的方法
3.1使用GPU加速
本次論文實驗中,使用了theano庫在python環(huán)境下實現(xiàn)卷積神經(jīng)網(wǎng)絡模型,在lenet手寫數(shù)字識別模型上進行改進,由于theano庫本身支持GPU加速,所以在訓練速度上實現(xiàn)了大幅度的提高。
3.2 數(shù)據(jù)集的預處理
本次實驗使用的兩個數(shù)據(jù)集是mnist手寫數(shù)字庫以及cifar_10庫
Mnist手寫數(shù)字庫具有60000張訓練集以及10000張測試集,圖片的像素都為28*28,而cifar_10庫是一個用于普適物體識別的數(shù)據(jù)集,它由60000張32*32像素的RGB彩色圖片構成,50000張圖片組成訓練集,10000張組成測試集。而對于cifar_10數(shù)據(jù)集來說,由于圖片都是RGB的,所以我們在進行實驗的時候,先把其轉換為灰度圖在進行存儲。由于實驗是在python環(huán)境下運行,theano函數(shù)庫進行算法支持,所以我們把數(shù)據(jù)集進行處理,此處我們對使用的數(shù)據(jù)集進行了格式化。格式化的文件包括三個list,分別是訓練數(shù)據(jù),驗證數(shù)據(jù)和測試數(shù)據(jù)。而list中每個元素都是由圖像本身和它的相對應的標簽組成的。以mnist數(shù)據(jù)集為例,我們包含train_set,valid_set,test_set三個list,每個list中包含兩個元素,以訓練集為例,第一個元素為一個784*60000的二維矩陣,第二個元素為一個包含60000個元素的列向量,第一個元素的每一行代表一張圖片的每個像素,一共60000行,第二個元素就存儲了對相應的標簽。而我們?nèi)∮柧殬颖镜?0%作為驗證樣本,進行相同的格式化,而測試樣本為沒有經(jīng)過訓練的10000張圖片。在以cifar_10數(shù)據(jù)集為實驗對象時,把其進行灰度化后,進行相同的格式化處理方式。
3.3實驗模型結構
本次實驗是在python環(huán)境下基于theano函數(shù)庫搭建好的lenet模型進行參數(shù)的調(diào)整,以達到在實驗準確度可接受情況下減少訓練時間的目的。
上圖為實驗中的基礎模型舉例說明實驗過程,首先以mnist數(shù)據(jù)集為例,我們的輸入圖像為一個28*28像素的手寫數(shù)字圖像,在第一層中我們進行了卷積處理,四個濾波器在s1層中我們得到了四張?zhí)卣鲌D。在這里要特別的說明一下濾波器的大小問題,濾波器的大小可根據(jù)圖像像素大小和卷積神經(jīng)網(wǎng)絡整體結構進行設置,舉例說明,假如說我們的輸入圖像為28*28像素的圖像,我們把第一層卷積層濾波器大小設置為5*5,也就是說我們用一個大小為5*5的局部滑動窗,以步長為一對整張圖像進行滑動濾波,則滑動窗會有24個不同的位置,也就是說經(jīng)過卷積處理后的C1層特征圖的大小為24*24。此處的濾波器大小可進行調(diào)整,本論文希望通過對濾波器大小的調(diào)整,已達到減少訓練時間的目的,并尋找調(diào)整的理論依據(jù)。C1層的特征圖個數(shù)與卷積過程中濾波器數(shù)量相同。S1層是C1經(jīng)過降采樣處理后得到的,也就是說四個點經(jīng)過降采樣后變?yōu)橐粋€點,我們使用的是最大池方法,所以取這四個點的最大值,也就是說S1層圖像大小為12*12像素,具有4張?zhí)卣鲌D。而同理S1層經(jīng)過卷積處理得到C2層,此時我們?yōu)V波器的大小和個數(shù)也可以自行設置,得到的C2層有6張?zhí)卣鲌D,C2到S2層進行降采樣處理,最后面的層由于節(jié)點個數(shù)較少,我們就用MLP方法進行全連接。
3.4實驗參數(shù)改進分析
由此可見,我們對濾波器的大小以及個數(shù)的改變,可以直接影響到卷積訓練參數(shù)的個數(shù),從而達到減少訓練時間的目的。
從另一種角度來看,增大濾波器的大小,實際效果應該相似于縮小輸入圖像的像素大小,所以這樣我們可以預測增大濾波器的大小會減少樣本的訓練時間,但是這樣也可能會降低訓練后的分類的準確率,而濾波器的大小是如何影響訓練時間以及分類準確率的,我們通過對兩種圖片庫的實驗來進行分析。
4 實驗結果與分析
4.1以mnist手寫數(shù)字數(shù)據(jù)集作為實驗數(shù)據(jù)
我們知道卷積層可訓練參數(shù)的數(shù)字與濾波器的大小和數(shù)字有關,所以我們通過對卷積層濾波器大小的變化來尋找較為普遍的可減少訓練參數(shù)從而達到減少訓練時間的目的。在實驗記錄中,我們表格縱列記錄兩層卷積層濾波器大小,橫列分別為對已經(jīng)過訓練圖像識別和對未經(jīng)過訓練的驗證圖像進行識別的錯誤率,最后記錄每種濾波器大小搭配的使用時間。我們設定每次試驗都進行100次重復訓練,每次對權重矩陣進行優(yōu)化。
此處我們記錄兩層濾波器大小之和作為橫坐標,比較濾波器大小與實驗之間的關系。兩層濾波器大小相加后相同的元素我們把其對應時間做平均。
4.2以cifar_10數(shù)據(jù)集作為實驗數(shù)據(jù)
同樣是以100次循環(huán)訓練進行測試,通過改變兩層中濾波器的大小來尋找減少訓練時間的設定。
此處以同樣的方法,記錄兩層濾波器大小之和作為橫坐標,比較濾波器大小與實驗之間的關系。
4.3實驗結果分析
從兩組試驗中,在不同的數(shù)據(jù)集下,我們得到了濾波器的大小與訓練時間成反比的關系,而在減少了訓練時間的同時確實增大了訓練的錯誤率。
5 總結
通過實驗結果分析表明,增大卷積層濾波器大小的方法,在此兩種數(shù)據(jù)庫的情況下,是有效減小訓練時間的方式,而在不同的數(shù)據(jù)庫對分類準確率的影響程度不同,mnist手寫數(shù)字數(shù)據(jù)庫中圖像之間的相似度非常高,所以濾波器的增大對準確率產(chǎn)生的負面影響較小,而ifar_10數(shù)據(jù)集中圖像之間的相似度較小,所以增大濾波器的大小對其分類結果的準確率的負面影響較大。
參考文獻:
[1]LeCun Y, Bengio Y, Hinton G. Deep learning[J]. Nature, 2015, 521(7553): 436-444.
[2] Ruck D W, Rogers S K, Kabrisky M. Feature selection using a multilayer perceptron[J]. ]Journal of Neural Network Computing, 1990, 2(2): 40-48.
[3]LeCun Y, Bengio Y. Convolutional networks for images, speech, and time series[J]. The handbook of brain theory and neural networks, 1995, 3361(10): 1995.
[4] Larochelle H, Bengio Y. Classification using discriminative restricted Boltzmann machines[C]//Proceedings of the 25th international conference on Machine learning. ACM, 2008: 536-543.
[5]Krizhevsky A, Sutskever I, Hinton G E. Imagenet classification with deep convolutional neural networks[C]//Advances in neural information processing systems. 2012: 1097-1105.
[6] Zeiler M D, Fergus R. Visualizing and understanding convolutional networks[C]//European Conference on Computer Vision. Springer International Publishing, 2014: 818-833.
[7] Jarrett K, Kavukcuoglu K, Lecun Y. What is the best multi-stage architecture for object recognition?[C]//2009 IEEE 12th International Conference on Computer Vision. IEEE, 2009: 2146-2153.
[8] Ji S, Xu W, Yang M, et al. 3D convolutional neural networks for human action recognition[J]. IEEE transactions on pattern analysis and machine intelligence, 2013, 35(1): 221-231.
[9] Ciregan D, Meier U, Schmidhuber J. Multi-column deep neural networks for image classification[C]//Computer Vision and Pattern Recognition (CVPR), 2012 IEEE Conference on. IEEE, 2012: 3642-3649.