池化、池化與卷積異同、zero-padding

1 池化(pooling)層的理解

池化,也即降採樣(subsample),降低數據的大小。

池化(pooling)

2 池化方法

常用的池化方法是:最大值池化(max_pooling),平均值池化。其中,最常用的是最大值池化。

3 池化過程

通過使用一個池化核,並採用max_pooling進行池化。

如圖所示,池化核的大小是2*2,切記,池化核裡面的數值其實是原始圖片中的像素值,池化核只是類似於一個模具,裡面並沒有參數。

進行池化過程,同樣需要一個步長(包括高,寬,通道)

使用池化層時,必須定義其大小,步長,padding類型

4 池化作用

…可以減少計算量,內存使用,參數數量(防止過擬合)

…提高神經網路的容錯能力(圖片發生平移,位置的變動)

5 池化和卷積的異同:

(1)通道方面:

池化前幾個通道,池化後還是幾個通道。

上一層的feature map的個數(也即圖層個數)與下一層的卷積和通道數一致。

(2)卷積對應有卷積核,池化對應有池化核。卷積核裡面有參數,但是池化核只是一個框架,裡面沒有參數。

(3)使用方面都需要,定義其大小(size),步長(stride),padding類型。

(4)卷積裡面一般用padding same ;池化裡面用padding valid

6 卷積中使用「same」模式

目的是為了保證每個像素點都可以掃描到。

輸出神經元個數等於輸入神經元個數除以步長(向上取整)ceil(13/5)=3

7 使用zero padding相關計算

一:(「same」模式下)

(1)原始圖片的高,寬可以被步長整除

Eg:輸入圖片為6*6,卷積核大小為3*3,步長為(1,2)

那麼feature map的大小(h,w),h=6/1=5,w=6/2=3(向上取整)

此時,若用「same」模式:需要補0的個數如何計算?

Feature map 高度上需要的補0行數:3-1=2

Feature map 寬度上需要的補0列數:3-3=0

(2)原始圖片的高,寬不可以被步長整除

Eg:輸入圖片為5*5,卷積核大小為3*3,步長為(1,2)

那麼feature map的大小(h,w),h=5/1=5,w=5/2=3(向上取整)

Feature map 高度上需要的補0行數:3-1=2(行)

Feature map 寬度上需要的補0列數:3-(5%2)=2(列)

原始圖片高度能整除步長的高,需補0個數:卷積核高-步長高

原始圖片寬度不能整除步長的寬,需補0個數:卷積核寬-(輸入圖片的寬與步長的寬取余)。

二:valid模式下

如果原始圖片的大小為32*32,卷積核大小為5*5,卷積核的個數為8,步長為(1,1)

那麼,feature map的高為:(32-5)/1+1=28,寬為:(32-5)/1+1=28。

其中公式為:(原始圖片大小-卷積核大小)/步長+1即可得到feature map的大小。

feature map的個數為8,也即卷積核的個數。

總結:

padding = 「SAME」輸入和輸出大小關係如下:

輸出大小等於輸入大小除以步長向上取整,s是步長大小;

padding = 「VALID」輸入和輸出大小關係如下:

輸出大小等於輸入大小減去濾波器大小加上1,最後再除以步長(f為濾波器的大小,s是步長大小)。


推薦閱讀:

TAG:神經網路 | 卷積 | 卷積神經網路(CNN) |