卷積神經網路

池化層

池化層藉由「把每個小鄰域摘要成單一數字」來縮小特徵圖——就像把照片縮小、用一個代表值取代每個 2x2 區塊。它沒有可學習的權重;只是對一個滑動視窗套用固定規則(取最大值、取平均值)。其用意有二:讓表示變小、讓後續各層更便宜;以及讓表示對「特徵究竟落在哪」稍微寬容一點,因為池化視窗內任一處的特徵都會落進同一個摘要後的格子。

精確地說,池化層對每個通道獨立套用一個大小為 k、步幅為 S 的視窗(通常 k = S = 2,形成不重疊的視窗),每個空間軸產生大小為 floor((W - k)/S) + 1 的輸出。由於它逐通道運作,通道數不變——只有高與寬縮小。兩種標準的縮減方式是對每個視窗取最大值(最大池化)與取平均值(平均池化);池化不會在通道之間混合資訊、也不增加任何參數,因此它純粹是一個降採樣與聚合的運算。

池化提供局部的平移不變性(translation invariance):把一個被偵測到的特徵移動一兩個像素,最大池化後的輸出往往不變,這對「只在乎特徵有沒有出現、而不太在乎它在不在第 47 欄」的分類器有幫助。但這種不變性對需要精確定位的任務也是負擔,而且池化是不可逆地丟棄資訊。因此許多現代網路會減少或移除明確的池化——ResNet 只在 stem 池化一次、在 head 做一次(全域平均池化),其餘處改用帶步幅的卷積降採樣——而視覺 Transformer 則完全捨棄它,改用 patch 嵌入與注意力。

步幅 2 的 2x2 最大池化把 32x32x64 的特徵體積變成 16x16x64:每個軸減半,通道數(64)不變,且不增加任何參數。

為何重要/陷阱:池化是用「破壞細節」來換取不變性。對分類沒問題;但對分割、深度估計或超解析度則有害,這也是為何 U-Net 風格的解碼器要用跳接(skip connection)來找回池化丟掉的空間細節。不要把你之後還要重建的解析度給池化掉。

又称
subsampling layerdownsampling layer