CNN卷積神經網絡層級結構

卷積神經網絡層次結構包括:

數據輸入層/ Input layer
卷積計算層/ CONV layer
激勵層 / ReLU layer
池化層 / Pooling layer
全連接層 / FC layer

輸入層(Input layer)

輸入數據,通常會作一些數據處理,例如:

去均值:把輸入數據各個維度都中心化到0

歸一化:幅度歸一化到同一範圍

PCA/白化:用PCA降維,白化是在對數據每個特徵軸上的數據進行歸一化。

卷積計算層(CONV layer)


如上圖圖所示,左邊爲數據集,右邊爲一個神經網絡

窗口:卷積計算層會在數據集上選定一個窗口,從窗口內選擇數據

深度(depth):如下圖所示,左邊的數據集深度爲3,右邊的神經網絡深度爲5(有五個神經元)

步長(stride):窗口每次移動的距離

填充值(zero-padding):因爲窗口移動到數據邊緣時,可能不能正好遍歷完所有數據,所以有時要在數據集周邊填充上若干圈全爲0的數據

如上所示,左邊爲輸入數據,中間爲兩個神經元,右邊爲輸出。可以看到左邊的輸入數據中,窗口大小爲3*3,每次移動的步長爲2,周圍有一層的填充數據,深度爲3。中間爲兩個Filter,也就是線性方程的係數,注意Filter下面還有兩個Bias偏移量。將窗口中的數據分別和Filter中的數據做卷積運算(即對應位置的數據相乘),再加上Bias偏移量即可得到一個輸出矩陣中的一個值。比如在第一幅圖的第三個窗口中的數據與Filter W0所做的運算爲:

第一個窗口:0*0+0*0+0*(-1)+0*1+1*0+2*0+0*1+1*0+0*1=0

第二個窗口:0*0+0*1+0*(-1)+0*(-1)+0*1+2*(-1)+0*0+2*(-1)+2*0=-4

第三個窗口:0*0+0*1+0*(-1)+0*1+0*(-1)+1*0+0*0+2*0+0*(-1)=0

將這三個窗口中的值加起來再加上偏移量即得到了輸出值:0+(-4)+0+1(偏移量)=-3,即第一個輸出矩陣中的第一個值。

通過卷積層的計算後,可以使數據量大大減少,並且能夠一定程度上保存數據集的信息

激勵層

  激勵層的主要作用是將卷積層的結果做非線性映射。常見的激勵層函數有sigmoid、tanh、Relu、Leaky Relu、ELU、Maxout

sigmoid函數如下所示:

sigmoid函數是早期用的比較多的激勵函數,但現在已經不常用了。主要是當輸入特別大或者特別小時,sigmoid函數的偏導數趨於0,這樣在使用反向傳播算法時將會出現問題,並且sigmoid函數不是關於原點對稱的,這樣在進行反向傳播時w的梯度要麼全爲正,要麼全負(w的梯度即爲x乘以上一層的梯度,x恆爲正,所以梯度的正負一直不變),收斂速度會非常慢。tanh函數與sigmoid函數圖像類似,但是它比sigmoid函數好的一點是tanh函數是關於原點對稱的,這樣可以減少數據的傾斜。

現在比較常用的激勵函數爲ReLu(The Rectified Linear Unit/修正線性單元),函數表達式爲:f(x)=max(0,x),其函數圖像如下所示:

ReLu函數的有點是收斂非常快,因爲在原點右側它的偏導數爲1,求導簡單,這樣在做反向傳播時速度比較快。缺點時較爲脆弱,原點左側的函數具有的sigmoid相似的問題,即導數等於0。

Leaky ReLu在是ReLu的“增強版”,其函數表達式爲:f(x)=max(ax,x),a通常爲一個比較小的數,比如0.01,線面是a=0.01時的圖像:

可以看到,相比ReLu,Leaky ReLu在原點左側的表達式中對x乘以了一個比較小的係數,這樣保證了在做反向傳播時不會掛掉,並且其計算也很快。

ELU指數線性單元

ELU不會掛掉,計算速度比較快,並且輸出的均值趨於0,但是由於指數的存在,計算量略大。

Maxout:

兩條直線拼接而成,計算是線性的,比較快,不會飽和不會掛,但是參數比較多。

激勵函數使用總結:

1.儘量不要用sigmoid函數

2.首選ReLu,速度快,但是需要小心,有可能會掛掉

3.ReLu不行的話再選用Leaky ReLu或者Maxout

池化層(Pooling layer)

在連續的卷基層和激勵層中間,用於壓縮數據和參數的量,用於減少過擬合。

池化層的選擇策略有max pooling和average Pooling,上圖展示的就是max Pooling的過程。在原始的數據層上劃分一個個小塊,在每個小塊中選擇最大的那個數代表這個小塊中所有的數(如果是average Pooling就選擇平均數),放到下一層。這樣就打打減少了數據量。這種做法的理論依據好像還不太清楚,但是可以想象在一幅圖中,每個像素點和其周邊的點大致是一樣的,所以用一個點代替其周邊點也有一定道理。

全連接層(FC layer)

全連接層即兩層之間的所有神經元都有權重連接,通常會在卷積神經網絡的尾部。



發佈了107 篇原創文章 · 獲贊 297 · 訪問量 76萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章