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