神經網絡中的Average pooling 和 Max pooling
在訓練卷積神經網絡模型時,經常遇到 max pooling 和 average pooling,近些年的圖像分類模型多數採用了 max pooling,為什麼都是使用 max pooling,它的優勢在哪呢?
一般情況下,max pooling 的效果更好,雖然 max pooling 和 average pooling 都對數據做了 sampling,但是感覺 max pooling 更像是做了特徵選擇,選出了分類辨識度更高的特徵,提供了非線性,根據相關理論,特徵提取的誤差主要來自兩個方面:(1)鄰域大小受限造成的估計值方差增大;(2)卷積層參數誤差造成估計均值的偏移。一般來說,average pooling 能減小第一種誤差,更多地保留圖像的背景信息,max pooling 能減小第二種誤差,更多地保留紋理信息。average pooling 更側重對整體特徵信息進行 sampling,在減少參數維度方面的貢獻更大一些,更多地體現在信息的完整傳遞這個層面上,在一個很大很有代表性的模型中,比如 DenseNet 中的模塊之間的連接大多採用 average pooling,在減少維度的同時,更有利信息傳遞到下一個模塊進行特徵提取。
average pooling 在全局平均池化操作中應用得也比較廣,在 ResNet 和 Inception 結構中最後一層都使用了平均池化。有的時候,在接近模型分類器的末端使用全局平均池化還可以代替 flatten 操作,使輸入數據變成一維向量。
Average pooling 和 Max pooling 的使用性能對於設計卷積網絡模型還是很有幫助的,雖然池化操作對於整體的精度提升效果不大,但是在減參降維,控制過擬合以及提高模型性能,節約算力方面的作用還是很明顯的,所以池化操作是卷積神經網絡設計上不可缺少的一個環節。