胡韜
摘 要
卷積神經(jīng)網(wǎng)絡是深度學習算法中一個重要組成部分,在深度學習圖像識別技術的應用中起到了關鍵作用,本文先闡述了卷積神經(jīng)網(wǎng)絡的基本概念和結(jié)構,然后介紹和對比了幾種經(jīng)典的卷積神經(jīng)網(wǎng)絡,并論述了發(fā)展方向。
關鍵詞
卷積神經(jīng)網(wǎng)絡;輸入層;卷積層;全連接層;輸出層;AlexNet
中圖分類號: TP183 ? ? ? ? ? ? ? ? 文獻標識碼: A
DOI:10.19694/j.cnki.issn2095-2457.2020.09.058
1 卷積神經(jīng)網(wǎng)絡的基本概念
卷積神經(jīng)網(wǎng)絡基于傳統(tǒng)的人工神經(jīng)網(wǎng)絡,它類似于傳統(tǒng)的全連接神經(jīng)網(wǎng)絡,但也有自己的不同之處,卷積神經(jīng)網(wǎng)絡把圖片轉(zhuǎn)換成二維矩陣格式的數(shù)據(jù),輸入數(shù)據(jù),網(wǎng)絡的各層都以二維矩陣的方式處理數(shù)據(jù),這樣的數(shù)據(jù)處理方式適用于二維矩陣格式的數(shù)字圖像,相較于傳統(tǒng)的人工神經(jīng)網(wǎng)絡,它能更快更好地把特征值從圖像數(shù)據(jù)中提取出來。
2 卷積神經(jīng)網(wǎng)絡的基本結(jié)構
卷積神經(jīng)網(wǎng)絡的基本結(jié)構由以下幾個部分組成:輸入層(input),卷積層(convolution),池化層(pooling),全連接層(full-connection)和輸出層(output),如圖1所示。
2.1 輸入層
在輸入層中,主要進行輸入數(shù)據(jù)處理,有兩種常用的方法:去均值:把數(shù)據(jù)的各個維度均中心化為0。歸一化:調(diào)整輸入數(shù)據(jù)到相同的范圍之間,以避免數(shù)據(jù)之間的差距過大而造成的干擾。
2.2 卷積層
卷積層中對數(shù)據(jù)進行卷積運算,卷積運算的主要目的是增強原數(shù)據(jù)的特征信息,并減少噪音。卷積運算一共有三個步驟:
(1)求點積:如圖2,將5x5輸入矩陣中3x3深藍色區(qū)域中每個元素分別與其對應位置的權值(紅色數(shù)字)相乘,然后再相加,所得到的值作為3x3輸出矩陣(綠色的)的第一個元素。
(2)滑動窗口:如圖3,將3x3權值矩陣向右移動一個格(即步長為1)。
(3)重復操作:同樣地,將此時深色區(qū)域內(nèi)每個元素分別與對應的權值相乘然后再相加,所得到的值作為輸出矩陣的第二個元素;重復上述“求點積-滑動窗口”操作,直至得到輸出矩陣所有值。卷積核在2維輸入數(shù)據(jù)上“滑動”,對當前輸入部分的元素進行矩陣乘法,然后將結(jié)果匯為單個輸出像素值,重復這個過程直到遍歷整張圖像,這個過程就叫作卷積,這個權值矩陣即卷積核,卷積操作后的圖像稱為特征圖。
2.3 池化層
在卷積層之后常常緊接著一個降采樣層,主要目的是減小矩陣的長和寬以及減少輸入矩陣的參數(shù)。計算圖像一個區(qū)域上的某個特定特征的平均值或最大值,這種聚合操作就叫作池化。常用的池化方法有兩種:
(1)均值池化:對池化區(qū)域內(nèi)的像素點取均值,這種方法常用于獲取背景信息,因為得到的特征數(shù)據(jù)對背景信息更敏感。
(2)最大池化: 如圖4,對池化區(qū)域內(nèi)所有像素點取最大值,這種方法常用于獲取紋理特征信息,因為得到的特征數(shù)據(jù)對紋理特征信息更加敏感。卷積層的作用是獲取上一層的局部特征,而池化的作用是合并相似的特征,目的是降維。
2.4 全連接層
類似于傳統(tǒng)的神經(jīng)網(wǎng)絡,全連接層的作用是連接所有的神經(jīng)元,向下一層神經(jīng)元傳遞數(shù)據(jù),上一層的每個神經(jīng)元和下一層的神經(jīng)元都相互連接,因為用到了所有局部特征,所以叫全連接層。全連接層一般跟在所有的卷積層和池化層之后,在輸出層之前,對數(shù)據(jù)進行分類。
2.5 輸出層
輸出層一般在全連接層之后,輸出層通過全連接層的激活函數(shù)輸出各個圖像類別的概率。
2.6 激活函數(shù)
激活函數(shù)的作用是選擇性地對神經(jīng)元節(jié)點進行特征增強或減弱,增強激活有用的目標特征,減弱無用的特征,從而可以解決非線性問題。常見的激活函數(shù)有Sigmoid函數(shù)、Tanh函數(shù)、ReLu函數(shù)和Softmax函數(shù)等。Sigmoid函數(shù)在傳統(tǒng)的全連接神經(jīng)網(wǎng)絡中用得較多,ReLu函數(shù)和Softmax函數(shù)在卷積神經(jīng)網(wǎng)絡中常用。Sigmoid函數(shù)的數(shù)學模型如下:
3 經(jīng)典卷積神經(jīng)網(wǎng)絡模型
在卷積神經(jīng)網(wǎng)絡發(fā)展的歷程中,有不少經(jīng)典卷積神經(jīng)網(wǎng)絡模型有著突出的表現(xiàn),有的在卷積神經(jīng)網(wǎng)絡的發(fā)展歷程中有重要意義。
AlexNet是一個經(jīng)典的卷積神經(jīng)網(wǎng)絡模型,它采用了兩種方法了避免過擬合,第一種方法是Dropout,即以一定的概率(比如0.6)將神經(jīng)元的輸出設置為0,每一個樣本嘗試了一種新的神經(jīng)網(wǎng)絡結(jié)構,每種神經(jīng)網(wǎng)絡的權重共享,降低了神經(jīng)元復雜相互依賴的關系。但AlexNet也有缺點,其收斂所需要的迭代次數(shù)增加了一倍左右。第二種方法是數(shù)據(jù)增強,即對樣本圖像進行縮放、隨機裁剪、水平翻轉(zhuǎn)、上下翻轉(zhuǎn)改變對比度和白化處理等。
在AlexNet之后,隨后又出現(xiàn)了多種卷積神經(jīng)網(wǎng)絡模型,其中有VGGNet,GoogleNet模型等。VGGNet是加深版本的AlexNet,VGGNet有VGG16和VGG19兩種,分別是16層和19層的卷積神經(jīng)網(wǎng)絡模型。而GoogleNet的深度比VGGNet更深,達到了22層,同時在網(wǎng)絡不同深度增加了損失函數(shù)來避免反向傳播梯度消失,GoogLeNet的一大重要的特點就是使用了Inception模塊,在Inception 出現(xiàn)之前,大部分流行卷積神經(jīng)網(wǎng)絡僅僅是不斷增加卷積層和池化層,使網(wǎng)絡越來越深,以此希望能夠得到更好的性能,而Inception模塊在3x3卷積層和5x5卷積層之外還增加了1x1卷積層,1x1卷積層起到了降維的作用,同時使得網(wǎng)絡的寬度和深度都擴大了。這些模型呈現(xiàn)的趨勢是網(wǎng)絡的深度和寬度不斷擴大,并且模型準確率也越來越高,收斂所需要的時間也越來越短。
4 結(jié)語
本文從三個不同方面綜述了卷積神經(jīng)網(wǎng)絡,分別為:卷積神經(jīng)網(wǎng)絡的基本概念、卷積神經(jīng)網(wǎng)絡的基本結(jié)構和經(jīng)典的卷積神經(jīng)網(wǎng)絡。卷積神經(jīng)網(wǎng)絡的基本結(jié)構主要包含以下幾個部分:輸入層、卷積層、池化層、全連接層、輸出層和激活函數(shù),本文詳細闡述了每個部分的原理和功能。最后介紹了一些經(jīng)典的卷積神經(jīng)網(wǎng)絡,對比了它們之間的優(yōu)缺點并闡述了每種網(wǎng)絡的特點以及重要意義。
參考文獻
[1]田啟川,王滿麗.深度學習算法研究進展[J].計算機工程與應用.2016.4.
[2]張亞倩.卷積神經(jīng)網(wǎng)絡研究綜述[J].信息通信.2018.11.
[3]黃友文,萬超倫.基于深度學習的人體行為識別算法[J].人工智能.2018.10.
[4]俞頌華.卷積神經(jīng)網(wǎng)絡的發(fā)展和應用綜述[J].信息通信.2019.2.
[5]Simonyan K,Zisserman A.Very deep convolutional networks for large-scale image recognition[J].arXiv preprint arXiv:1409.1556,2014.
[6]Zhang Pengfei,Lan Cuiling,Xing Junliang.View Adaptive Neural Networks for High Performance Skeleton-Based Human Action Recognition[C].IEEE.2019.