閆 賀,郭秀娟
吉林建筑大學(xué) 電氣與計(jì)算機(jī)學(xué)院,長(zhǎng)春 130118
神經(jīng)網(wǎng)絡(luò)是通過(guò)對(duì)動(dòng)物神經(jīng)模擬出來(lái)的一種分布式處理信息的數(shù)學(xué)模型,最早由心理學(xué)家W·Mcculloch和數(shù)理邏輯學(xué)家W·Pitts提出,并且沿用至今.神經(jīng)網(wǎng)絡(luò)中最基本的成分是神經(jīng)元模型[1].模型如圖1所示.
圖1 神經(jīng)網(wǎng)絡(luò)模型Fig.1 Neural network model
圖1中的每一個(gè)圓圈代表一個(gè)神經(jīng)元,每條線代表一個(gè)神經(jīng)元的連接,神經(jīng)元被分成了很多層,每個(gè)層之間都有鏈接,而同一層之間沒(méi)有鏈接[2].
在動(dòng)物神經(jīng)網(wǎng)絡(luò)中神經(jīng)元對(duì)應(yīng)人工神經(jīng)網(wǎng)絡(luò)的感知器,感知器是由輸入權(quán)值、激活函數(shù)、輸出組成的.一個(gè)感知器可以有多個(gè)輸入x,并且?guī)в幸粋€(gè)權(quán)值w.激活函數(shù)有很多個(gè)選擇,其中常用的為:
(1)
模型的輸出為:
y=f(w*x+b)
(2)
人工神經(jīng)網(wǎng)絡(luò)的模型公式為:
y=f(∑w*x+b)
(3)
式中,w為權(quán)值;x為輸入;y為輸出;b是偏置項(xiàng).
1986年辛頓提出了反向傳播,通過(guò)誤差最小得到新的權(quán)重等信息,然后更新整個(gè)網(wǎng)絡(luò)參數(shù).指定學(xué)習(xí)的速率λ(超參數(shù)),通過(guò)變化率和學(xué)習(xí)速率乘積得出各個(gè)權(quán)重以及偏置項(xiàng)在一次訓(xùn)練之后變化多少,以提供給第二次訓(xùn)練使用.這個(gè)理論的提出使神經(jīng)網(wǎng)絡(luò)的研究迎來(lái)了一輪熱潮.
近幾年,卷積神經(jīng)網(wǎng)絡(luò)在圖像處理中的應(yīng)用不斷增加.由于手寫文字?jǐn)?shù)量龐大、種類繁多,普通的機(jī)器識(shí)別準(zhǔn)確率很低,但卷積神經(jīng)網(wǎng)絡(luò)的出現(xiàn)可以解決這一問(wèn)題,大大提升了準(zhǔn)確率.手機(jī)的解鎖方式層出不窮,但近幾年人臉識(shí)別解鎖的方案成為最流行的解鎖方案,這也離不開(kāi)卷積神經(jīng)網(wǎng)絡(luò)的發(fā)展,人臉識(shí)別的最重要的算法就是基于CNN的.隨著YOLOv3模型的提出,圖像分類識(shí)別變得更為精準(zhǔn),可以自動(dòng)識(shí)別出感興趣的目標(biāo),無(wú)論在軍事或者民用領(lǐng)域中都發(fā)揮著重要的作用.
相比較普通的神經(jīng)網(wǎng)絡(luò)來(lái)說(shuō),卷積神經(jīng)網(wǎng)絡(luò)更適合處理圖片,因?yàn)樵摼W(wǎng)絡(luò)簡(jiǎn)化了前期對(duì)圖片的處理,可以直接輸入未處理的圖片,廣泛地應(yīng)用于醫(yī)學(xué)、交通、安全等各個(gè)領(lǐng)域[3].卷積神經(jīng)網(wǎng)絡(luò)是由學(xué)習(xí)權(quán)重和偏差神經(jīng)元組成,每一個(gè)神經(jīng)元可以接收數(shù)據(jù)的輸入并且執(zhí)行點(diǎn)積,在最后的全連接層具有損失函數(shù)(如:Softmax),CNN的每一層可以通過(guò)激活函數(shù)將一個(gè)值轉(zhuǎn)換為另一個(gè)值.卷積神經(jīng)網(wǎng)絡(luò)分為卷積層、池化層、全連接層,一般在池化層之前都有一個(gè)激活函數(shù)[4].
卷積層是CNN的核心,通過(guò)過(guò)濾器(filter)對(duì)數(shù)據(jù)進(jìn)行降維處理,提取出核心的特征[5].過(guò)濾器一般有四個(gè)參數(shù),即過(guò)濾器大小、深度、步幅和零填充.根據(jù)實(shí)際需要設(shè)計(jì)出最合適的參數(shù),得出特征圖,計(jì)算公式為:
(4)
式中,ai,j為特征值,i與j為特征圖的行數(shù)與列數(shù);m與n為過(guò)濾器的行數(shù)與列數(shù);wm,n為過(guò)濾器的值;xi+m,j+n為輸入圖片的值;wb為權(quán)重的偏置.
激活函數(shù)中加入了非線性特征,它可以使每個(gè)層之間沒(méi)有線性聯(lián)系,這樣可以達(dá)到模擬任何復(fù)雜函數(shù)的目的,而不會(huì)使他們回歸到最原始的線性關(guān)系,這樣可以增強(qiáng)卷積神經(jīng)網(wǎng)絡(luò)的表達(dá)能力[6].常見(jiàn)的非線性激活函數(shù)包括 Sigmoid,RELU等.圖像如圖2,圖3所示.
圖2 Sigmoid函數(shù)圖像Fig.2 Image of the Sigmoid function
圖3 RELU函數(shù)圖像Fig.3 Image of the RELU function
其中,RELU函數(shù)具有速度快、計(jì)算代價(jià)小、不會(huì)產(chǎn)生梯度消失的特征,應(yīng)用非常廣泛.池化層的主要作用是減少數(shù)據(jù)的冗余,防止過(guò)度擬合,把不重要的樣本去除掉,能夠大大減少數(shù)據(jù)量[7].一般的CNN網(wǎng)絡(luò)都是不斷應(yīng)用這幾層,最終實(shí)現(xiàn)的.現(xiàn)在主流的CNN框架有LeNet:卷積網(wǎng)絡(luò)的第一個(gè)成功應(yīng)用是由Yann LeCun于1990年代開(kāi)發(fā)的,其中最著名的是LeNet架構(gòu),用于讀取郵政編碼、數(shù)字等[8].VGGNet.2011年ILSVRC的亞軍是來(lái)自Karen Simonyan和Andrew Zisserman的網(wǎng)絡(luò),被稱為VGGNet,ResNet.VGGNet對(duì)鏈接層做批量歸一化的處理,得到廣泛應(yīng)用[9].
由于CNN對(duì)圖像處理的各種優(yōu)點(diǎn),現(xiàn)在CNN在圖像處理的應(yīng)用非常廣,如無(wú)人駕駛的障礙識(shí)別、醫(yī)學(xué)領(lǐng)域中的對(duì)疾病的判斷、手寫文字的識(shí)別等[10],而且在這些領(lǐng)域中都取得良好的效果.下面將用卷積神經(jīng)網(wǎng)絡(luò)和普通神經(jīng)網(wǎng)絡(luò)對(duì)手寫數(shù)字的識(shí)別的對(duì)比,展現(xiàn)CNN對(duì)圖像處理的優(yōu)勢(shì),使用TensorFlow框架對(duì)其進(jìn)行實(shí)現(xiàn).
使用MINST手寫數(shù)據(jù)集用來(lái)訓(xùn)練模型,此數(shù)據(jù)集有60 000個(gè)訓(xùn)練樣本和10 000個(gè)測(cè)試樣本,該數(shù)據(jù)集都是處理過(guò)的圖片,圖片大小均為28×28像素的格式,使用二進(jìn)制格式對(duì)其進(jìn)行讀取.如圖4所示.
圖4 MINIST數(shù)字集圖像Fig.4 Image of MINIST digital set
卷積神經(jīng)網(wǎng)絡(luò)將采用兩層卷積和兩個(gè)全連接的模型進(jìn)行訓(xùn)練,第一層卷積權(quán)重張量形狀是[5,5,1,32],步長(zhǎng)為1,使用32個(gè)filter進(jìn)行觀察,使用RELU激活函數(shù)對(duì)其激活,第二層卷積接受上一層的數(shù)據(jù),繼續(xù)使用5×5的過(guò)濾器,這次采用64個(gè)filter進(jìn)行觀察,最后用兩個(gè)全連接層對(duì)數(shù)據(jù)處理.
經(jīng)過(guò)1 000次訓(xùn)練之后得到的識(shí)別準(zhǔn)確率和損失函數(shù)變化曲線如圖5,圖6所示.
圖5 CNN模型準(zhǔn)確率圖像Fig.5 Accurate image of CNN model
圖6 CNN模型損失圖像Fig.6 LOSS image of CNN model
由圖5,圖6可以看到最終識(shí)別準(zhǔn)確率大約為97 %,在400次訓(xùn)練之后模型基本達(dá)到飽和狀態(tài)和準(zhǔn)確識(shí)別的目的,識(shí)別率已經(jīng)達(dá)到比人眼識(shí)別的還要準(zhǔn)確.普通的神經(jīng)網(wǎng)絡(luò)的識(shí)別準(zhǔn)確率和損失函數(shù)如圖7、圖8所示.
圖7 普通神經(jīng)網(wǎng)絡(luò)模型準(zhǔn)確率圖像Fig.7 Accuracy image of ordinary neural network model
圖8 普通神經(jīng)網(wǎng)絡(luò)模型損失圖像Fig.8 Loss image of ordinary neural network model
卷積神經(jīng)網(wǎng)絡(luò)與普通神經(jīng)網(wǎng)絡(luò)對(duì)比可以看到,即使訓(xùn)練2 000次,普通的神經(jīng)網(wǎng)絡(luò)最終的準(zhǔn)確率僅為84 %,并且訓(xùn)練損失函數(shù)下降曲線明顯變慢,準(zhǔn)確率已經(jīng)達(dá)不到使用要求.
在圖像處理降噪方面,卷積神經(jīng)網(wǎng)絡(luò)通過(guò)多層的卷積處理后已經(jīng)把噪點(diǎn)基本處理干凈,而普通的神經(jīng)網(wǎng)絡(luò)對(duì)噪點(diǎn)的處理略有欠缺,對(duì)比圖如圖9,圖10所示.
圖9 卷積神經(jīng)網(wǎng)絡(luò)處理圖像Fig.9 CNN processes images
圖10 普通神經(jīng)網(wǎng)絡(luò)處理圖像Fig.10 Ordinary neural networks process images
這是因?yàn)槠胀ǖ纳窠?jīng)網(wǎng)絡(luò)有以下幾種缺陷:
(1) 參數(shù)的數(shù)量過(guò)多,大量的參數(shù)會(huì)使數(shù)據(jù)冗余,并且關(guān)聯(lián)性變強(qiáng),使數(shù)據(jù)處理的效果變差.
(2) 像素之間的位置信息利用的不好,對(duì)于圖片來(lái)說(shuō),各個(gè)像素之間的位置信息非常重要,里面包含了大量的信息,相鄰較近的像素關(guān)聯(lián)性強(qiáng),相鄰較遠(yuǎn)的像素關(guān)聯(lián)性較小,對(duì)其進(jìn)行統(tǒng)一處理并不合適,會(huì)浪費(fèi)大量的資源.
(3) 處理層數(shù)限制,普通的神經(jīng)網(wǎng)絡(luò)由于全部采用全連接的方式,該方式顯然不能有很多層,然而對(duì)數(shù)據(jù)處理來(lái)說(shuō)層數(shù)越多,處理效果越好,會(huì)使準(zhǔn)確率有明顯提升,所以從根本上說(shuō)普通的神經(jīng)網(wǎng)絡(luò)有局限性.
卷積神經(jīng)網(wǎng)絡(luò)對(duì)其處理的方法為:
(1) 局部連接,采用局部連接的方式可以大大減少參數(shù)的數(shù)量.
(2) 權(quán)值共享,一組連接之間可以共享參數(shù),這樣也可以減少大量的參數(shù)數(shù)量.
(3) 下采樣,可以保留有用的參數(shù),去除大量無(wú)用參數(shù),可以達(dá)到良好的學(xué)習(xí)效果.
通過(guò)以上的對(duì)比可以得出如下結(jié)論:
(1) 卷積神經(jīng)網(wǎng)絡(luò)對(duì)圖片的處理表現(xiàn)良好,不同模型對(duì)準(zhǔn)確率的提升至關(guān)重要.卷積神經(jīng)網(wǎng)絡(luò)對(duì)圖片的處理有它獨(dú)特的優(yōu)勢(shì),并且隨著CNN的不斷發(fā)展,將來(lái)可應(yīng)用的領(lǐng)域非常廣泛.
(2) 神經(jīng)網(wǎng)絡(luò)用于醫(yī)學(xué)領(lǐng)域可以對(duì)CT圖片進(jìn)行識(shí)別,處理人眼很難觀察到的病癥,可大大提升診斷的正確率.
(3) 神經(jīng)網(wǎng)絡(luò)用于無(wú)人駕駛方面可以對(duì)各種路況提前做出判斷,降低事故的發(fā)生概率.
(4) 神經(jīng)網(wǎng)絡(luò)用于面部微表情的識(shí)別,可以判斷人的內(nèi)心心里活動(dòng).
(5) 神經(jīng)網(wǎng)絡(luò)用于手寫文字,可以做到區(qū)分筆跡,對(duì)模仿簽名、公文造假等方面進(jìn)行判斷.