人工全連接網絡
CNN相較人工全連接網絡:
1、卷積層的神經元只與前一層的部分神經元鏈接
2、同一層中的某些神經元之間連接的權重w和偏移b可以共享
爲什麼在圖像處理中要使用CNN:
全連接層的方式對於圖像數據來說似乎顯得不這麼友好,因爲圖像本身具有“二維空間特徵”,通俗點說就是局部特性。譬如我們看一張貓的圖片,可能看到貓的眼鏡或者嘴巴就知道這是張貓片,而不需要說每個部分都看完了才知道,啊,原來這個是貓啊。所以如果我們可以用某種方式對一張圖片的某個典型特徵識別,那麼這張圖片的類別也就知道了
1、對輸入層進行全連接的話,產生的結果會非常大,不利於計算。
2、某些模式與整個圖片相比,要小很多。比如鳥類的嘴、圍棋的局部等。
3、同樣的模式出現在不同區域。
4、子採樣後不會改變目標物。
CNN結構:
輸入層——卷積層——池化層——卷積——池化……——全連接層——輸出層
輸入層
保留了圖片本身的結構,對於黑白28*28的圖片,輸入的是28*28的二維神經元矩陣;對於28*28的彩色圖片,輸入的是28*28*3的三維神經元矩陣。
卷積層
local receptive fileds(感受視野)/filter/卷積核/權重w:是個矩陣
hidden layer(隱藏層):經過filter掃描後生成的下一層
stride:步長,filter每一次的移動距離
padding:填充,湊整用
經filter掃描一遍後可發現,每一次的神經元只與上一層的部分神經元相連。
一個filter掃描生成的下一層神經元矩陣稱爲一個feature map。同一個filter掃描生成的feature map上,所有的神經元共享權值。
一般會有多個filter,生成多層feature map。feature map尺寸計算方法:
P=(K-1)/2
O=(W-K+2P)/S +1
P爲填充值,K爲filter尺寸,W爲輸入圖片尺寸,S爲步長,O爲輸出尺寸
對於28*28的RGB圖片,這時卷積核也有了深度
下一層的神經元值爲=b+∑2d=0∑1i=0∑1j=0wdijxdij,,一個卷積核依然對應一個feature map。
池化層
一般採用max-pooling,最大值池化。
壓縮數據和參數,控制過擬合。利用特徵不變性進行特徵降維
舉例:
激勵層
做非線性映射,提高穩健性。一般採用ReLU函數,不使用sigmoid。
f(x)=max(x,0)
全連接層
(Full Connect)一般出現在最後,爲輸出做準備,兩層之間所有神經元都有權重相連,主要對特徵進行重新擬合,減少特徵信息的丟失。
【reference】
http://blog.jobbole.com/109748/
https://blog.csdn.net/cxmscb/article/details/71023576
Deep Learning Tutorial 李宏毅
https://www.cnblogs.com/skyfsm/p/6790245.html
https://www.cnblogs.com/charlotte77/p/7759802.html