深度學習
池化(pooling)
/ POOL-ing /
池化,是網路「拉遠鏡頭」的那一步。在某一層產出了細緻的特徵圖之後,池化把它們縮小——做法是把每一小片鄰域歸納成一個數,留下要旨,扔掉細枝末節。這就像給一張照片做縮圖:你失去了像素級的細節,但整體形狀還在,檔案也小了很多、處理起來更快。
最常見的一種是「最大池化」:把一個小視窗(常是 2×2)滑過特徵圖,每停一處,只保留視窗裡最大的那個值。既然大的值意味著「這一小片裡某處強烈地出現了這種特徵」,最大池化便記下了「這個特徵出現過」,卻忘掉了它具體在哪個像素。「平均池化」則保留視窗裡的平均值——是更溫和的一種歸納。無論哪種,特徵圖都會變小,通常寬高各減一半,於是更深的層做的活更少,還能一眼看到影像更寬的範圍。
池化換來兩樣東西。它讓網路更省,並賦予一點「平移不變性」:哪怕貓往左挪了幾個像素,池化後的歸納幾乎不變,辨識因此更穩。要老實說出的代價是:池化是故意丟掉空間精度的——對「這裡有沒有貓?」無妨,可一旦你需要精確知道每條邊緣究竟落在哪裡(比如像素級的任務),就成了問題。正因如此,許多現代結構少用池化,或者用「帶步幅的卷積」來取代它:既縮小了特徵圖,又能學會該怎麼去做這個歸納。
對小塊 [ [1, 5], [3, 2]] 做 2×2 最大池化,只留下 5。一張 4×4 的特徵圖會變成 2×2,縮小到四分之一,只保留每個角落裡最強的那個信號。
最大池化:保留最強的,丟掉其餘——一種刻意的、有損的縮小。
池化沒有要學的數字——它是一條固定的歸納規則,而不是一個可訓練的層。它的活兒是縮小、再為位置添一點容差;網路的知識並不存放在這裡。
又稱
另見