深度學習

步幅與填充(stride and padding)

/ STRYD and PAD-ing /

步幅與填充,是決定一塊滑動濾鏡如何在影像上行進、以及結果出來是多大的兩個旋鈕。要想像這兩者,最簡單還是回到那張你在照片上滑動的模板。步幅,是你每次落腳之間跨多遠。步幅為 1,意味著你讓濾鏡一次只挪一個像素,檢查每一個位置,產出又大又細的結果。步幅為 2,意味著你隔一個位置跳一次,於是每個方向上少做一半的活,結果縮到大約四分之一大小——這是一種內建的縮小辦法,很像池化。

填充,處理的是邊緣處的一樁麻煩。當濾鏡走到影像的邊界,它有一部分會懸空在「無」之上,所以若不幫忙,輸出圖會比輸入略小一圈,而最靠邊的地方被走到的次數也比中間少。填充的辦法,是在影像四周加上一圈額外的像素——通常是零,故稱「補零」。配上恰當的填充,輸出可以與輸入保持一模一樣的大小(即「same」填充),邊角也能得到公平的對待。不加填充(即「valid」填充)時,特徵圖就會在每一層刻意地縮小。

這兩個設置合在一起,讓設計者得以掌控「細節」與「開銷」之間的取捨。小步幅加充足填充,保住了解析度,卻堆起了運算量;大步幅加不填充,縮得又快又省,卻扔掉了精細的空間資訊。它們是超參數——訓練之前就定下的選擇,而非網路去學的東西——一旦設錯,常常會害得特徵圖出來時形狀不對,接不上下一層。

用一塊 3×3 濾鏡掃過一張 5×5 的影像。步幅為 1、不填充時,輸出是 3×3(縮小了)。加上一圈一像素的補零邊框(即「same」填充),輸出又回到 5×5。改成步幅 2,輸出就降到約 3×3——這是有意的縮小。

填充把尺寸穩住;更大的步幅則有意把它縮小。

記住:步幅管的是濾鏡每次跳多遠(也因此決定輸出縮多少),填充管的是邊緣處怎麼處理(也因此決定輸出是否保持原尺寸)。把這兩者搞混,是初學者的經典失誤。

又稱
stridepadding步幅步長填充补零zero-padding