【模型解读】pooling去哪儿了?
文章首發于微信公眾號《與有三學AI》
【模型解讀】pooling去哪兒了?
這是深度學習模型解讀第5篇,本篇我們將介紹深度學習模型中的pooling。
作者&編輯 | 言有三
?
01 概述
相信大家都記得,LeNet5,AlexNet,Vgg系列的核心思想,是convolution+pooling的核心結構。
?
但是,不知道從何時開始,pooling沒了,對,就是沒了。這是mobilenet【1】可視化后的部分結構圖,懶得去畫block圖了。
?
如今大部分情況下,pooling就出現在網絡的最后,或者一些需要concat/add不同通道的block里面,為何?本文從3個方面來說說。
?
02 pooling是什么
pooling,小名池化。
?
上圖就是一個池化的示意圖,用了一個10*10的卷積核,對20*20的圖像分塊不重疊的進行了池化,池化之后featuremap為2*2的大小。
pooling有什么用呢?或者說為什么需要pooling呢?
原因有幾個:
(1)?增大感受野
所謂感受野,即一個像素對應回原圖的區域大小,假如沒有pooling,一個3*3,步長為1的卷積,那么輸出的一個像素的感受野就是3*3的區域,再加一個stride=1的3*3卷積,則感受野為5*5,我們看左上角像素的傳播就明白了。
?
依次,再多一個卷積,則為7*7,如果想看到224*224的全圖,大家可以算算需要多少卷積層。
假如我們在每一個卷積中間加上3*3的pooling呢?很明顯感受野迅速增大,這就是pooling的一大用處。感受野的增加對于模型的能力的提升是必要的,正所謂“一葉障目則不見泰山也”。
(2)?平移不變性
我們希望目標的些許位置的移動,能得到相同的結果。因為pooling不斷地抽象了區域的特征而不關心位置,所以pooling一定程度上增加了平移不變性。
(3)?容易優化,pooling是每個featuremap單獨做降采樣,與基于卷積的降采樣相比,不需要參數,更容易優化。
?
03 如何去除pooling
那pooling是必要的嗎?答案已經很明了了,不需要。文【2】做了詳細的實驗,在cifar,imagenet等多個數據集上實驗結果表明,完全沒有必要。因為我們可以用步長大于1的卷積來替代。
當步長不為1時,降采樣的速度將變快。
當stride,也就是步長等于2,上面的5*5一次卷積后就為2*2了。這其實還減輕了重疊的卷積操作,通過卷積來學習了降采樣,看起來好處還是不少的。
實驗結果也佐證了這一點。
?
?
上面就是作者的實驗結果,all-cnn-c相比convpool-cnn-c,就是在同等卷積層的基礎上,去掉了pooling,結果B和C系列模型效果都是提升的,關于A,B,C系列具體細節大家可以參考文章。
總之,不管是文獻的研究結果,以及大家的實際使用經驗,都已經完全使用帶步長的卷積替換掉了pooling這一降采用的操作。
?
04pooling沒用了嗎?
答案是有,因為pooling相對于帶步長的卷積操作,畢竟減少了計算量,所以對于很多需要concat/add?featuremap通道的小模型,pooling仍然可以以小搏大。比如下面的shufflenet的block。
?
不過總的來說,pooling,走好。
?
參考文獻
【1】Howard A G, Zhu M, Chen B, et al. MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications[J]. 2017.
【2】Springenberg J T, Dosovitskiy A, Brox T, et al. Striving for Simplicity: The All Convolutional Net[J]. Eprint Arxiv, 2014.
【3】Zhang X, Zhou X, Lin M, et al. ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices[J]. 2017.
?
同時,在我的知乎專欄也會開始同步更新這個模塊,歡迎來交流
https://zhuanlan.zhihu.com/c_151876233
注:部分圖片來自網絡
—END—
轉載請留言,侵權必究
本系列的完整目錄:
【模型解讀】從LeNet到VGG,看卷積+池化串聯的網絡結構
【模型解讀】network in network中的1*1卷積,你懂了嗎
【模型解讀】GoogLeNet中的inception結構,你看懂了嗎
【模型解讀】說說移動端基準模型MobileNets
【模型解讀】pooling去哪兒了?
【模型解讀】resnet中的殘差連接,你確定真的看懂了?
【模型解讀】“不正經”的卷積神經網絡
【模型解讀】“全連接”的卷積網絡,有什么好?
【模型解讀】從“局部連接”回到“全連接”的神經網絡
【模型解讀】深度學習網絡只能有一個輸入嗎
【模型解讀】從2D卷積到3D卷積,都有什么不一樣
【模型解讀】淺析RNN到LSTM
感謝各位看官的耐心閱讀,不足之處希望多多指教。后續內容將會不定期奉上,歡迎大家關注有三公眾號 有三AI!
?
?
總結
以上是生活随笔為你收集整理的【模型解读】pooling去哪儿了?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【模型解读】说说移动端基准模型Mobil
- 下一篇: 【模型解读】resnet中的残差连接,你