池化、池化與卷積異同、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) |