卷積神經網絡的結構由輸入層、卷積神經層(Convolutional Layer)、下采樣層(Pooling Layer)、全連接層(Fully Connected Network)及輸出層構成[20]。其中卷積神經網絡層、下采樣層、全連接被合稱為隱含層。
在卷積神經網絡中,卷積神經層與下采樣層的連接方式是局部連接的形式,即每層的神經元只連接輸入層中的跟它相近的幾個節點。而全連接層中采用的是全連接的方式,即每一個神經元與輸入層中的所有節點連接。
1 卷積神經層(Convolutional Layer)
卷積神經層(Convolutional Layer)由多個特征面(Feature Map)構成,每一個特征面則是由很多個神經元構成的[22]。神經元包含兩個計量單位,一個是輸入x,一個是權值w。輸入數據x與權值w相乘得到其加權和e,然后在通過激活函數f(e)獲得該神經元的輸出,也就是特征。如下圖。

圖1-1神經元
常見的激活函數有Rectified Linear Unit(ReLU)函數、Sigmoid函數以及Softmax函數。其中ReLU函數是一種常見的激活函數[22]。與傳統的激活函數相比,ReLU函數能夠在大量的數據的情況下,依然能夠保持良好的效果。它的運算速度也比傳統函數要快。它利用簡單地閾值化就可以達到參數稀疏化的目的。但是,ReLU函數的一個缺點是它的神經元在訓練的時候,可能會死亡,導致該單元無法激活數據點。ReLU函數的計算公式如下:ReLU:f(x)=max(0,x) 該公式表示,如果輸入的數據大於0,那么就把輸入的數據作為輸出的數據輸出,否則就輸出0。通過使用ReLU函數,我們可以保證輸出的數據不會因為輸入數據的增加而接近飽和。另外一些常用的激活函數有Sigmoid函數、Tanh函數、以及以ReLU為基礎改進而來的LRelu函數和Prelu函數。
在卷積神經網絡層中,神經網絡通過卷積核來獲取提取特征。在每一層中可以使用多個卷積核進行特征提取,每一個卷積核提取一種特征。一般而言,卷積層的層次越高,提取的特征也越接近事物本身的特征。卷積核是一個n×n×r的權值矩陣。其中n為卷積核的大小,而r為卷積核的深度。如圖1-2是一個深度為1,大小為2的卷積核,以及深度為2大小為2的卷積核。卷積核的深度與輸入數據的深度保持一致。在第一層卷積層中,卷積核的深度應該與輸入的圖片的深度保持一致,圖片如果為黑白的圖片,那么他的深度為1,如果圖片為彩色圖片,深度則為3(RGB三個維度)。而網絡中的其他卷積層(既不在輸入層之后的卷積層)中卷積核的深度則與上一層卷積核的個數保持一致。

圖1-2 卷積核
如圖3-4,深度為1的卷積核卷積了輸入矩陣中的紅色得到了a0這一個神經元。而深度為2的卷積核的卷積過程是:由卷積核的灰色矩陣卷積輸入層的灰色部分,同時由白色的卷積核卷積的輸入層中的白色部分,這兩部分的值相加進過激勵函數得到輸出。
卷積核,根據網絡設置的步長數,對輸入的特征圖進行卷積操作,圖1-3中,卷積核的步長為1,紅色部分為一次卷積。圖1-3中右邊為步長為1的一個卷積過程,而右邊是步長為2的一個卷積過程。步長為1的卷積在輸入矩陣中每完成一次卷積之后,向右或向下移動一步,卷積下一個局部感受野。卷積核的步長為2時,則移動兩步。

圖1-3卷積核的移動過程
我們注意到,當步長設置為1的時候,輸出的特征矩陣為3*3,而當步長設置為2的時候,輸出的特征矩陣為2*2。這表明圖像大小、步幅和卷積后的特征圖的大小是有關系的。他們之間的關系為:

其中w2為卷積后的特征圖的寬度,w1為卷積前的特征圖的寬度,F為卷積核的寬度,P為全零填充的數量,全零填充是指在原始圖像周圍補幾圈0,如果P的值是1,那么就在圖片四周補1圈0。S為步長。H2是卷積后的特征圖的高度。H1是卷積前圖像的寬度。
在神經網絡中,上一層網絡的輸出就是下一層網絡的輸入。在卷積層中,上下兩層的神經元通過卷積核進行連接。在卷積神經網絡中,上下兩層的神經元的連接方式為局部連接,其連接方式如圖1-4所示。在圖中,輸入的是一個2×2的圖片,深度為1,而卷積核的大小為2×2,深度也為1。通過卷積核進行卷積操作,得到的特征圖為a0到a8的一個輸出矩陣。在圖中的右邊是根據卷積操作得出的網絡的連接方式,藍色的線表示的是w1,紅色的線表示的是w2,綠色的線表示的是w3,而黃色的線表示的是w4。可以看出在卷積層中,下一層的神經元並沒有與上一層的節點全部連接,而是與上一層中的部分神經元連接。在網絡中一個卷積核連接到的部分被稱為局部感受野,局部感受野的大小和卷積核的大小一致,圖1-4的局部感受野大小為4。局部感受野的優點是它減少了訓練時所需要的參數個數,降低了訓練的復雜度。

圖1-4卷積層的連接方式
神經網絡的一個重要的概念就是權值共享,而實現權值共享這一特性,主要是由於卷積核的連接方式。如圖1-4,顏色相同的連接線的權值是相同的。共享權值的優點是在圖像進行特征提取的過程中,可以忽略局部特征所在的位置。相對於全連接方式,權值共享降低了網絡模型參數的數量,減少了算法的復雜度。卷積層中參數的個數=卷積核的個數*卷積核的大小*卷積核的深度+卷積核的個數(偏置量的個數)。
2、下采樣層(Pooling Layer)
下采樣層,也可以叫做池化層。下采樣層連接在卷積層之后,也是由多個特征面構成。采樣層中的神經元連接了卷積神經層的局部感受野。下采樣層把卷積神經層的輸出數據作為輸入的數據,通過去除輸入數據中的無用信息,減少需要處理的數據量,從而提高訓練的網絡速度。這一層的主要功能是通過降低特征圖的維度,來減少特征圖的個數,達到減少計算的復雜度的目的。
采樣層中,主要操作是池化。池化是一種非線性降采樣方法。最大池化(max-pooling)、均值池化(mean pooling)、隨機池化(stochastic pooling)等都是常用的池化方法。
一般我們把卷積神經層和下采樣層合稱為卷積層。卷積神經網絡中的一個卷積過程包括了這兩層的運算。在卷積神經網絡中包含了多個卷積層。卷積層與采樣層的連接,如圖1-5所示,輸入數據經過卷積層的卷積之后,得到卷積層的輸出a0到a8的輸出矩陣,然后傳入下采樣層,下采樣層通過池化操作的到v、x、z、d這四個節點。

圖1-5卷積層與下采樣層的連接方式
3 全連接層
在卷積神經網絡網絡中,至少是有一個全連接層。全連接層位於所有的卷積層之后,層與層之間的神經元采用全連接的方式進行連接。全連接層是正規的神經網絡。全連接層的主要作用是對卷積層提取出來的特征進一步提取出高層次的特征。它通過將卷積層的特征進行合並或者取樣,提取出其中的具有區分性的特征,從而達到分類的目的。
全連接層與卷積層的區別第一個是連接方式的不同。卷積層中采用的是局部連接方式,即一個節點和上一層中的部分節點相連,而全連接層中,該層的每一個神經元與上一層的所有神經進行連接,如圖1-6。全連接層中權值是不共享的,每一條線都代表了一個權值。而在左邊卷積層的連接方式圖中,顏色相同的連接,參數相同。我們可以看出相對於卷積層,全連接層的參數更多,所以其網絡的復雜度也更大。

圖1-6 卷積層與全連接層的連接方式
在全連接層中,常用softmax 邏輯回歸來進行分類識別圖像。softmax 邏輯回歸分類方法主要用於多分類問題。在構建分類器的過程中,一般還采用正則化方法來防止訓練過擬合,提高分類的性能。