卷積神經網路(cnn)中為什麼要有池化層?
是因為目前計算機算力不夠嗎?
1) 池化層可以減少feature map的尺寸, 進而減少計算量. 當然stride大於1的卷積層也可以減少feature map的尺寸.
2) 池化層可以增加感受野. 不過卷積核尺寸大於1的卷積層同樣也可以增加感受野.
3) 池化層可以帶來特徵的平移, 旋轉等不變性.
4) (最大值等)池化層一般是非線性操作, 可以增強網路的表達能力. 激活層一般也是非線性的.
從1), 2), 4) 來看, 池化層在CNN中並不是必須的. 至於 3) 有沒有其他層也可以實現, 並替代池化層, 則不好說.
1.提特徵
2.提高模型的非線性
3.減少計算量(特徵圖變小了)
我覺得,使用池化層的原因主要是:1、減少大量的計算量。2、引入空間過濾器的層級結構,從而讓連續卷積層的觀察窗口變大,這樣可以更加充分地獲得信息。
池化層一方面是為了減少特徵圖的解析度,減少大量的計算量。另一方面平均池化和最大池化也能提取到一定的特徵,這跟傳統圖像處理有一定關係。不過現在大部分使用stride=2的卷積來減少解析度,只有最後到全連接層前才使用一層全局池化
max pooling擴大感受野,增加非線性提高模型表達能力,但同時會導致特徵丟失平移不變性
池化層進行的是下採樣操作。主要是進行特徵提取工作,使數據特徵更加明顯。同時也減少了計算量。
1.池化可以降低參數量。
2.池化(max-pooling、avg-pooling)可以一定程度做到旋轉不變、仿射不變。
3.有池化操作,確實效果不錯。
4.池化不是必須的,用stride替代pooling也是一個趨勢。
實際上池化層也能加大感受域,有一定的仿射不變性。
一方面是池化層可以降低參數量,我覺得更重要的是可以獲得高層次特徵。
減少計算量,降低維度,提取更多有用的特徵
為了增加感受野,不然基本維持不變
空域上稀疏
識別,分類等任務確實很有用
但你在生成模型引入,模型立馬崩掉
還有relu的的作用也一樣,引入稀疏,畢竟又不是生成得將各種信息都轉換
去掉與識別無關的噪音,節省算力,並允許網路冗餘更多識別相關的特徵
對特徵圖降採樣,提升計算速度
推薦閱讀: