卷積
-
卷積就是對(duì)矩陣(圖像)應(yīng)用的滑動(dòng)窗口函數(shù)。
- 圖中綠色為一個(gè)二值圖像,每個(gè)值代表一個(gè)像素(0是黑,1是白)。(更典型的是像素值為0-255的灰階圖像)
- 圖中黃色的滑動(dòng)窗口叫卷積核、過濾器或者特征檢測(cè)器,也是一個(gè)矩陣。
- 我們將這個(gè)大小是3x3的過濾器中的每個(gè)元素(紅色小字)與圖像中對(duì)應(yīng)位置的值相乘,然后對(duì)它們求和,得到右邊粉紅色特征圖矩陣的第一個(gè)元素值。
- 我們?cè)谡麄€(gè)圖像矩陣上滑動(dòng)這個(gè)過濾器來得到完整的卷積特征圖:
Convolution_schematic.gif
直覺理解
-
對(duì)每個(gè)像素點(diǎn),與它的周邊像素一起平均得到模糊效果。
模糊效果的卷積核
(1就相當(dāng)于權(quán)重,新像素點(diǎn)包含對(duì)應(yīng)像素點(diǎn)與其周邊像素點(diǎn)的綜合信息,“人人有份”)
應(yīng)用該卷積核模糊后的圖像 -
取一個(gè)像素與它周邊像素的差值來檢測(cè)邊緣
檢測(cè)邊緣的卷積核
(如果圖像某區(qū)域是平滑的,那么中心點(diǎn)像素值應(yīng)該與四周的像素都差不多相等,卷積后得到的就是0,即黑色。如果這里有銳邊、顏色的突變,就會(huì)得到一個(gè)很大的差異和卷積后相應(yīng)的非零值,對(duì)應(yīng)下圖的白色)
應(yīng)用該卷積核檢測(cè)邊緣后的圖像
卷積的其它資料
補(bǔ)零
- 如何對(duì)圖片矩陣的第一個(gè)元素(它在頂部和左邊并沒有相鄰的元素)應(yīng)用過濾器?
- 我們可以采用零填充,在對(duì)第一個(gè)元素應(yīng)用過濾器時(shí)落在矩陣之外的所有元素都取為零。
這樣就可以獲得更大或者相同大小的輸出了。 -
輸出尺寸的大小計(jì)算公式為:
*```
n_{out} = n_{in}+2n_{padding}-n_{filter}+1
以第一張圖為例,它的輸入尺寸為5x5,沒有補(bǔ)零,過濾器尺寸為3x3,輸出尺寸就是(5-3+1)x(5-3+1)即3x3的尺寸。
### 池化層
- 英文名pooling (subsampling) layer
- 典型的,**池化層**通常在**卷積層**之后應(yīng)用。
- 最常見的方式是對(duì)過濾器的結(jié)果取最大值。
如下是一個(gè)2x2的最大池化窗口,取出4個(gè)中最大的。

- 池化有**一般池化**(非重疊池化)、**重疊池化**、**空金字塔池化**,上圖為一般池化。
- 池化可以減少輸出維數(shù),同時(shí)一定程度上保持了最突出的信息。
- 池化可以提供基本的平移、旋轉(zhuǎn)不變性。最大化操作會(huì)提取出相同的值而不管你是否有一定程度內(nèi)的平移或旋轉(zhuǎn)。
- 池化可以提供一個(gè)固定大小的輸出矩陣。如果你有1000個(gè)過濾器,然后你對(duì)每一個(gè)的結(jié)果應(yīng)用最大池化,不論你過濾器的尺寸和輸入的尺寸是多少,你會(huì)得到1000維的輸出。這意味著我們可以使用可變大小的輸入和可變大小的過濾器,并且總可以得到相同尺寸的輸出,來饋入分類器。
> 其它參考
1. [池化方法總結(jié)(Pooling)](http://blog.csdn.net/danieljianfeng/article/details/42433475)
2. [斯坦福教程wiki池化](http://ufldl.stanford.edu/wiki/index.php/%E6%B1%A0%E5%8C%96#.E6.B1.A0.E5.8C.96.E7.9A.84.E4.B8.8D.E5.8F.98.E6.80.A7)
### 過濾器的值
- 在訓(xùn)練階段,一個(gè)卷積神經(jīng)網(wǎng)絡(luò)會(huì)基于你要執(zhí)行的任務(wù),自動(dòng)學(xué)習(xí)它的過濾器的值,實(shí)現(xiàn)相應(yīng)的變換。
- 比如說,一個(gè)處理圖像分類任務(wù)的卷積神經(jīng)網(wǎng)絡(luò)會(huì)學(xué)習(xí)到在第一層從原始像素中檢測(cè)邊緣,然后在第二層使用這些邊緣來檢測(cè)出簡(jiǎn)單的形狀,之后在更高的層次使用這些形狀來發(fā)現(xiàn)更高級(jí)別的特征,比如臉部特征。最后一層則是一個(gè)使用這些高級(jí)特征的分類器。

### 多通道
- 很多時(shí)候,我們輸入的是多通道圖像。如RGB三通道圖像,下圖就是。也有可能我們出于特定目的,將幾張圖組成一組一次性輸入處理。
- 對(duì)于這種情況,這時(shí)一個(gè)過濾器或卷積核其實(shí)對(duì)應(yīng)的是x個(gè)卷積核(對(duì)應(yīng)x通道)和一個(gè)偏置量,如下圖中的`W0`和`W1`。一個(gè)通道中的某個(gè)區(qū)域(藍(lán)框)和它對(duì)應(yīng)的卷積核(紅框)做卷積,多個(gè)通道的卷積結(jié)果線性相加,再加上偏置量(最下的單個(gè)紅框),得到卷積結(jié)果(最右列中心的綠色框)。下圖的卷積層包含2個(gè)多通道卷積核`W0`和`W1`,所以結(jié)果為2個(gè)綠色矩陣。而該卷積層的輸出對(duì)于下一卷積層一定程度上也就可以說是2通道,處理方式也是類似。
> 參考: [cs231 Convolutional Neural Networks](http://cs231n.github.io/convolutional-networks/)

### 常用激活函數(shù)
[ReLU](https://www.wikiwand.com/en/Rectifier_(neural_networks)) —— `f(x) = max(0, x) | -oo<x<+oo`

[Tanh](https://reference.wolfram.com/language/ref/Tanh.html) —— 雙曲正切

### 優(yōu)秀鏈接
- [技術(shù)向:一文讀懂卷積神經(jīng)網(wǎng)絡(luò)CNN](http://dataunion.org/11692.html)
- [斯坦福UFLDL教程](http://ufldl.stanford.edu/wiki/index.php/UFLDL%E6%95%99%E7%A8%8B)





