池化層理解


 

參考網址:

https://www.zhihu.com/question/36686900/answer/130890492

https://www.cnblogs.com/skyfsm/p/6790245.html

池化層夾在連續的卷積層中間, 用於壓縮數據和參數的量,減小過擬合。
簡而言之,如果輸入是圖像的話,那么池化層的最主要作用就是壓縮圖像。

下采樣層也叫池化層,其具體操作與卷積層的操作基本相同,只不過下采樣的卷積核為只取對應位置的最大值、平均值等(最大池化、平均池化),即矩陣之間的運算規律不一樣,並且不經過反向傳播的修改。

池化層的作用:

個人覺得主要是兩個作用:
1. invariance(不變性),這種不變性包括translation(平移),rotation(旋轉),scale(尺度)
2. 保留主要的特征同時減少參數(降維,效果類似PCA)和計算量,防止過擬合,提高模型泛化能力

A: 特征不變性,也就是我們在圖像處理中經常提到的特征的尺度不變性,池化操作就是圖像的resize,平時一張狗的圖像被縮小了一倍我們還能認出這是一張狗的照片,這說明這張圖像中仍保留着狗最重要的特征,我們一看就能判斷圖像中畫的是一只狗,圖像壓縮時去掉的信息只是一些無關緊要的信息,而留下的信息則是具有尺度不變性的特征,是最能表達圖像的特征。

B. 特征降維,我們知道一幅圖像含有的信息是很大的,特征也很多,但是有些信息對於我們做圖像任務時沒有太多用途或者有重復,我們可以把這類冗余信息去除,把最重要的特征抽取出來,這也是池化操作的一大作用

(1) translation invariance:
這里舉一個直觀的例子(數字識別),假設有一個16x16的圖片,里面有個數字1,我們需要識別出來,這個數字1可能寫的偏左一點(圖1),這個數字1可能偏右一點(圖2),圖1到圖2相當於向右平移了一個單位,但是圖1和圖2經過max pooling之后它們都變成了相同的8x8特征矩陣,主要的特征我們捕獲到了,同時又將問題的規模從16x16降到了8x8,而且具有平移不變性的特點。圖中的a(或b)表示,在原始圖片中的這些a(或b)位置,最終都會映射到相同的位置。

(2) rotation invariance:
下圖表示漢字“一”的識別,第一張相對於x軸有傾斜角,第二張是平行於x軸,兩張圖片相當於做了旋轉,經過多次max pooling后具有相同的特征

池化層用的方法有Max pooling 和 average pooling,而實際用的較多的是Max pooling。這里就說一下Max pooling,其實思想非常簡單。

 

對於每個2*2的窗口選出最大的數作為輸出矩陣的相應元素的值,比如輸入矩陣第一個2*2窗口中最大的數是6,那么輸出矩陣的第一個元素就是6,如此類推。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM