一、池化層的作用:
1、抑制噪聲,降低信息冗余度
2、提升模型的尺度不變性和旋轉不變性
3、降低模型計算量
4、防止過擬合
二、池化算法的操作方式
1、平均池化:保留背景信息,突出背景信息
2、最大池化:保留主要特征,突出前景信息
3、全局平均池化
4、全局自適應池化
5、ROI池化
6、金字塔池化
7、重疊池化
8、隨機池化
9、雙線性池化
三、池化回傳梯度
原則: 保證傳遞的LOSS(或者梯度)的綜合不變
平均池化的操作如下:
最大池化的操作如下:
四、最大池化和平均池化的應用場景
五、空間金字塔池化
首先嘗試一下用幾句話介紹一下空間金字塔池化的背景,空間金字塔池化出自目標檢測的SPPNet中,在目標檢測中需要生成很多區域候選框,但這些候選框的大小都不一樣,這些候選框最后都需要進入分類網絡對候選框中的目標進行分類,因此需要將候選框所在區域變成一個固定大小的向量,空間金字塔池化就是解決這么一個問題。
對於一個通道數為C的feature map,一取全局最大值,得到一個1xC的張量,二將feature map分割成4塊,在每一塊上進行最大池化,得到一個4xC的張量,三將feature map分成16塊,在每塊上進行最大池化,得到一個16xC的張量,將這三個張量拼接起來,得到一個大小為21xC的張量。對於任意大小的feature map經過這些操作都可以得到固定大小的張量。
六、ROI池化
RoI即Region of Interest,RoI池化是空間金字塔池化的一種特殊形式。
在目標檢測以前的方法中,使用selective search生成候選框,這些候選框是在特征提取網絡前就生成了,但經過特征提取后該框的邊界不再是一個整數,例如,對於一個輸入為800x800的圖片,其中有一個665x665的框內框中一條狗,經過有五次池化的特征提取網絡后該框的區域變為了(665/32)(665/32)=20.8720.87的區域,因此RoI經過了第一次量化,對這個邊界進行取整為20,而分類網絡的輸入固定大小為7x7。因此將20x20的區域分成7x7塊,由於20/7=2.86也不是整數,因此第二次量化,取2。然后在分塊上進行最大池化生成一個7x7的大小。具體如上圖所示。
這種方法經過兩次量化得到的RoI於原始的RoI有了一定的偏差,當候選框比較大時,這個偏差影響不會很大,但候選框本身比較小時,這個偏差相對來說比較大,嚴重影響結果。
七、其它類型的池化
重疊池化(Overlapping Pooling):一般而言,池化的窗口大小等於步長,因此池化作用區域不存在重合部分。所謂重疊池化,即池化窗口大小大於步長,池化作用區域存在重合部分,這種池化也許有一定的效果。
隨機池化(Stochastic Pooling):在一個池化窗口內對feature map的數值進行歸一化得到每個位置的概率值,然后按照此概率值進行隨機采樣選擇,即元素值大的被選中的概率也大。該池化的優點是確保了特征圖中非最大響應值的神經元也有可能進入下一層被提取,隨機池化具有最大池化的優點,同時由於隨機性它能夠避免過擬合。
全局自適應池化:其作用也是對於任意大小的feature map,都可以輸出指定的大小。這背后的原理不知是否與RoI池化類似,即對於輸入大小為HxW的feature map,指定輸出大小為7x7,我猜測其可能就是將HxW分成7x7塊再進行最大池化或平均池化。