2.卷積神經網絡CNN結構及其模型

一、卷積神經網絡分爲以下層次:

一般的層次爲:輸入層->卷積層->ReLU激勵層->池化層->全連接層

各層參數的個數:

https://www.cnblogs.com/hejunlin1992/p/7624807.html

1. 數據輸入層---input layer

常用數據處理方式:

    

圖像裏只用去均值---中心化--加減某值--目的就是把樣本的中心拉回到座標系原點上

1)227x227x3---去均值----像素相加/像素個數得到均值矩陣,每次減去矩陣-------Alexnet的方法!

2)VGG方法!----三個顏色通道均值,分別減去三個均值!

2.卷積計算層--conv layer

每個神經元---->一個filter濾波器-----窗口滑動,即filter對局部數據計算;

深度/depth----圖中圓圈的個數,即神經元個數,每個圓圈代表一個滑動窗口,窗口內每個像素都有一個權重w;

步長/stride-------窗口每次滑動的像素個數;

填充值/zero-padding-----爲了整除,邊緣補0;

計算方法:

y = wx + b;

w即圖中3x3的矩陣;b是指偏置項;

三通道分別求卷積,然後求和,得到輸出的圖像,所以有幾個卷積核就有幾個輸出。

在卷積層中每個神經元連接數據窗的權重是固定的,每個神經元只關注一個特性。神經元就是圖像處理中的濾波器,比如邊緣檢測專用的Sobel濾波器,即卷積層的每個濾波器都會有自己所關注一個圖像特徵,比如垂直邊緣,水平邊緣,顏色,紋理等等,這些所有神經元加起來就好比就是整張圖像的特徵提取器集合。

3.激勵層---Relu layer

actvation  function---激活函數去過濾!---f()

用的多的是Relu----如艾路---(The Rectified Linear Unit/修正線性單元),它的特點是收斂快,求梯度簡單,但較脆弱。

Relu---0~正無窮---輸入小於0的壞的部分刪除,只取正的部分;

缺點---全部數據都在小於0部分---概率小!-----leak Relu來修正!小於0部分斜率很小!放一部分進去!

4. 池化層---Pooling layer

夾在連續的卷積層之間---作用是下采樣!-----壓縮數據和參數的量,減小過擬合!

方法是----求均值或者求最大值!----圖像一般用Max pooling!

關於池化層的理解:

1. 特徵不變性,也就是我們在圖像處理中經常提到的特徵的尺度不變性,池化操作就是圖像的resize,平時一張狗的圖像被縮小了一倍我們還能認出這是一張狗的照片,這說明這張圖像中仍保留着狗最重要的特徵,我們一看就能判斷圖像中畫的是一隻狗,圖像壓縮時去掉的信息只是一些無關緊要的信息,而留下的信息則是具有尺度不變性的特徵,是最能表達圖像的特徵。

2. 特徵降維,我們知道一幅圖像含有的信息是很大的,特徵也很多,但是有些信息對於我們做圖像任務時沒有太多用途或者有重複,我們可以把這類冗餘信息去除,把最重要的特徵抽取出來,這也是池化操作的一大作用。

3. 在一定程度上防止過擬合,更方便優化。

5.全連接層---FC layer

兩層之間所有神經元權重連接;---一般在CNN的尾部!

M是以上結構的個數 ;N是卷積層個數;

卷積層1後留下學習後的東西---輪廓,顏色等!

卷積層2----?。。。。。。解釋不清楚!

二、CNN的訓練算法

1)Loss函數

2)找到最小化損失函數的W和b-------SGD算法/隨機梯度下降法(求W和b的偏導數-----BP算法--求導的鏈式法則求dW和db)

除了SGD還有---Adam........

三、優缺點

如何理解卷積神經網絡中的權值共享?

就是整張圖片在使用同一個卷積核內的參數,比如一個3*3*1的卷積核,這個卷積核內9個的參數被整張圖共享,而不會因爲圖像內位置的不同而改變卷積核內的權係數。

無論圖像的尺寸是多大,都可以選擇固定尺寸的卷積核,LeNet中最大的卷積核只有5*5*1,而在AlexNet中最大的卷積核也不過是11*11*3。而卷積操作保證了每一個像素都有一個權係數,只是這些係數是被整個圖片共享的,着大大減少了卷積核中的參數量。此外卷積操作利用了圖片空間上的局部相關性,這也就是CNN與傳統神經網絡或機器學習的一個最大的不同點,特徵的自動提取。 

CNN利器之感受野:

通俗點的解釋是,特徵圖上的一個點對應輸入圖上的區域;

對感受野的理解:

https://blog.csdn.net/qq_36653505/article/details/83473943

結論: 隨着卷積層數的逐漸增加,感受野的範圍在逐漸擴大,也就是說,越靠近後面的輸出,所受到的圖像的像素影響的範圍更加寬闊。卷積神經網絡正是通過這種層層推進的方式,每一個卷基層都能學習到不同的特徵,最後實現相關的識別、分類等功能的。

四、Dropout-隨機失活正則化方法

約束過擬合!----Dropout-----訓練時關掉一部分學習單元!

五、典型的CNN

 

AlexNet結構

ZFnet只是比上一個調了參數!

 

 

六、調優訓練

w參數用別人訓練好的初始化。------fine-tuning就是使用已用於其他目標、預訓練好模型的權重或者部分權重,作爲初始值開始訓練。

那fine-tuning的具體做法是?
  • 複用相同層的權重,新定義層取隨機權重初始值
  • 調大新定義層的的學習率,調小複用層學習率

 

 

參考:

http://www.cnblogs.com/skyfsm/p/6790245.html

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章