前言:昨天說過 CNN = 卷積層 + 池化層 + 密集神經網路,所以我們今天就要來介紹池化層
通常在 CNN 神經網路後面還會搭配池化層 (pooling layer),它會對卷積層輸出的特徵圖(feature map)做降維的動作,縮小特徵圖的寬與高,同時又可以保留到最重要的特徵。
池化層的運作原理與卷積層類似,它也有一個滑動窗口,可以將特徵圖從頭掃到尾,再去擷取特徵圖中重點的重點。窗口
的尺寸是一個超參數,稱為池化尺寸 (pooling size)。池化窗口跟濾鏡(卷積核)一樣以固定步長由右到左由上到下滑動。
池化操作有下面三種:
(1). 最大池化 (max pooling)
最大池化(Max Pooling)是卷積神經網路(CNN)中常用的池化操作,主要在池化窗口(通常是2x2或3x3的矩陣)內選擇最大值,其餘都捨棄,並將其當作該窗口的代表值。我們用 2 * 2 窗口,步長為 2 來池化 MNIST 圖片,這樣的配置有一個好處,可以讓特徵圖尺寸寬、高各縮小一半,但保留深度。架設經過 16 個濾鏡輸出 28 * 28 * 16 的特徵圖,經過池化後會變成14 * 14 * 16。
(2). 平均池化 (average pooling)
與最大池化不同,平均池化不是選擇窗口內的最大值,而是計算窗口內所有值的平均值,然後將其用作輸出。它可以平滑特徵圖並減少噪音(圖像通常包含來自多種源頭的噪音,例如:在自駕車的圖像感測中,相機可能因震動而引入噪音)
(3). L2 範數池化 (L2-norm pooling)
在池化操作它屬於不常見的,與最大池化和平均池化不同,L2範數池化是一種對特徵圖內的值應用歐幾里得範數來計算。