深度學習cnn中,怎麼理解圖像進行池化(pooling)後的平移不變性?

是因為卷積是平移得到的,所以圖像在相應的平移程度下,進行max或average的池化結果是一樣的嗎?


手邊沒有圖,我就抽象一點回答了。假如三個元素(1,5,3)取max就取到5,如果三個元素向右平移一下變成(0,1,5),那取max之後還是5,具備了平移不變性。大概就是這麼個理。


也是剛研究,所以不是很專業,簡單說下個人理解。

「如果人們選擇圖像中的連續範圍作為池化區域,並且只是池化相同(重複)的隱藏單元產生的特徵,那麼,這些池化單元就具有平移不變性 (translation invariant)。」

注意這兩點:1、連續範圍 2、池化相同隱藏單元產生的特徵

這意思是指,在池化單元內部能夠具有平移的不變性,它的平移範圍也是有一定範圍的,因為每個池化單元都是連續的,所以能夠保證圖像整體上發生了平移一樣能提取特徵進行匹配。

無論是max還是average都是在提取區域特徵,均相當於一種抽象,抽象就是過濾掉了不必要的信息(當然也會損失信息細節),所以在抽象層次上可以進行更好的識別。

至於max與average效果是否一樣,還是要看需要識別的圖像細節特徵情況,這個不一定的,不過據說差異不會超過2%。

不過仔細點說的話,評估特徵提取的誤差主要來自兩個方面:

(1)鄰域大小受限造成的估計值方差增大,average能減小這種誤差。

(2)卷積層參數誤差造成估計均值的偏移,max能減小這種誤差。

也就是說,average對背景保留更好,max對紋理提取更好,如果是識別字體什麼的,應該考慮max.


感謝邀請

把近視眼鏡摘了以後,我依然能夠挑中菜里的肉

一直有個教學圖,但是找不到了,有張類似的,對池化不了解的同學湊活看

圖侵刪

差不多了


由Yann Lecun, Yoshua Bengio, Geoffery Hinto撰寫的Deep Learning Review(發表在Nature)中提到了池化層能夠reduce the dimensionality of the representation, create an invariance to small shifts and distortions. 池化層能夠降低特徵表示的維度這個很好理解,伴隨來的副作用是局部特徵信息的損失,想像如果池化層的filtering bank不是通常的2x2維的矩陣,而是更大維度的矩陣,用max pooling 或者average pooling,信息會損失更多,而且因為每層卷積後都跟著池化層,實際上是相當於在特徵的每個提取階段,從低級特徵到中級特徵再到高級特徵,都有略微的信息損失,因為做了多層的pooling,而不是只做一次pooling,這也是設計上的一個trick啊.這是計算複雜度和性能的trade-off, 信息如果不損失,模型的性能當然會更好,最後得到的特徵表示更全面,隨著計算能力的提高,這一點也在逐漸得到緩和.

第二個作用是具有一定程度上的平移和失真不變性,注意原文是說small shifts and distortions,我把他翻譯成一定程度,這個程度我認為取決於pooling層中的filtering bank的維度大小,維度越高,在保持性能相同的前提下,圖像可平移的距離越大,當然這本身就和上面的信息損失相衝突. 對於失真的理解,假設有一副包含人臉的圖像64x64 維,你把圖像左邊這一列或者前幾列的像素值都人為置為[0,255]中的某一個數,這時候池化層反而在一定程度上能夠過濾掉這些不相關的像素值(通過max或average掉filtering bank對應的像素值)


池化=漲水

卷積的目的是為了得到物體的邊緣形狀

可以想像水要了解山立體的形狀

水位低時得出山腳的形狀

水位中等時得出山腰的形狀

水位高時得出山頂的形狀

三點就可以大致描出山的簡筆畫

池化的過程=升高水位(擴大矩陣網格)

卷積的過程是區分哪裡是水,哪裡是山


池化的不變性

如果人們選擇圖像中的連續範圍作為池化區域,並且只是池化相同(重複)的隱藏單元產生的特徵,那麼,這些池化單元就具有平移不變性 (translation invariant)。這就意味著即使圖像經歷了一個小的平移之後,依然會產生相同的 (池化的) 特徵。在很多任務中 (例如物體檢測、聲音識別),我們都更希望得到具有平移不變性的特徵,因為即使圖像經過了平移,樣例(圖像)的標記仍然保持不變。例如,如果你處理一個MNIST數據集的數字,把它向左側或右側平移,那麼不論最終的位置在哪裡,你都會期望你的分類器仍然能夠精確地將其分類為相同的數字。

請注意這句話:「即使圖像經歷了一個小的平移之後」,這是指你的平移小於你的池化矩陣的範圍。所以只有平移小於這個範圍,才能保證平移不變性。


池化主要的作用是降維。


推薦閱讀:

學習聖經Deeplearning需要掌握哪些數學基礎?
神經網路的損失函數為什麼是非凸的?
如何評價邢波(Eric Xing)老師實驗室開發的深度學習平台 Poseidon?
wasserstein 距離的問題?
圖森科技的演算法實習生和地平線的人工智慧演算法實習生如何選擇?

TAG:深度學習DeepLearning |