卷积神经网络(CNN:Convolutional Neural Network)
1、感知器(perceptron)
感知器是卷積神經網絡的基本單元,下圖展示了其工作原理,為了方便理解,圖中只顯示了3個輸入。
向量w為輸入向量x的權重,b為偏差,最后對x的線性組合()的值進行判斷,
如果值大于0,輸出1.
如果值小于0,輸出0.
感知器的不同組合產生不同神經網絡
增加層次
增加深度
為什么感知器可以運用于圖像處理領域?
圖像濾波通過圖像的卷積運算來實現,其公式如下:
其實卷積運算也是像素值的線性組合,權重為濾波器對應像素位置的值。
圖像的卷積運算也可以通過感知機來表示。
下面的內容先介紹是什么,然后講如何理解,最后說為什么。
2、卷積神經網絡(CNN)
卷積神經網絡中常見的一種架構如下圖所示。
圖中的每一stage可以視為圖像的特征提取,圖中只顯示了3個stage的特征提取。
如果希望提取到更多的細節,可以增加 stage。
每一個stage由3小步驟組成,
第一為卷積層,提取特征;
第二為LCN(Local Contrast Normalization,局部對比度歸一化),歸一化局部圖像的對比度。
第三為Pooling,池化,縮小圖片大小。
2.1 卷積層(convolutional layer)
假設一張圖像32*32*3(3為RGB顏色通道),濾波器為5*5*3,卷積后得到特征圖像(28*28*1),這里默認stride 為1。
如果使用6個不同的濾波器進行卷積后,將會得到6個不同的特征圖像
如果步長(stride)為1,濾波器每隔一個像素點移動(向右移動,或向下移動)。
如果步長為2,濾波器每隔兩個像素點移動,如下圖所示。
若原圖大小為N*N,濾波器大小為F*F,步長為S,則卷積后的圖像大小為:
2.2 局部對比度歸一化(LCN)
圖像歸一化公式
其中
N(x,y) 表示將圖像中的像素值建模成為的正態分布。
m為均值,為標準差。
2.3 池化(Pooling)
池化的主要功能是縮小圖片,減少計算量。
池化有兩種一種是最大值池化,一種是均值池化,較常用的為最大值池化。
其公式如下:
如果公式很難看懂,可以如下圖方式理解最大值池化;
一張4*4的圖像,每2*2個像素組成一個小方格,
取小方格中四個像素中最大的那個值,然后扔掉其它值,
這樣就形成一個新的2*2的圖像,圖片變小了。
2.4 全連接層
全連接層的第一步需要flattening圖像,
如下3*3圖像,可視為二維矩陣
flattening后成為1*9的向量:
然后進行全連接,關于全連接的原理,需要另外用一章來說,涉及很多知識。
?
3 關于卷積神經網絡的直觀理解
這一小結的內容發現大牛‘沉迷學習的糕糕’發表在其知乎的個人專欄了,非常詳細,整個內容分為兩個部分:
卷積神經網絡CNN完全指南終極版(一)
卷積神經網絡CNN完全指南終極版(二)
?
4 關于卷積神經網絡的一些問題
4.1 為什么要使用LCN(local contrast normaliz)
對于兩張圖片(僅僅只是對比度不同),如下圖所示。
在提取特征過程中,希望眼睛這個部位的特征不受對比度影響,所以使局部對比度歸一化
4.2 為什么使用最大值池化
對于濾波后的圖片,無論是求邊緣或是實現其它功能,最有用的是哪些高亮度值的像素點,
非極大值抑制也是利用亮度值最高的像素。
?
?
?
?
?
?
?
總結
以上是生活随笔為你收集整理的卷积神经网络(CNN:Convolutional Neural Network)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux、Windows、RHEL操作
- 下一篇: 从attention到Transform