卷積神經網路

擴張卷積

擴張卷積藉由在卷積核的取樣點之間插入間隔,使它們彼此拉開,而不是讀取一塊連續的區塊。一個擴張率 2 的 3x3 卷積核仍然只有 9 個權重,但它讀取的是彼此相距 2 的像素——因此它覆蓋了 5x5 的範圍,卻只取樣那 25 個位置中的 9 個。直觀上,它讓一個濾波器「看得更寬」而不需更多權重、也不縮小特徵圖:你是藉由「分散目光」來放大感受野,而不是靠拉遠鏡頭。

精確地說,在擴張率 d 之下,大小為 k 的卷積核表現得像一個有效大小為 d(k-1)+1 的卷積核,但每個軸上只有 k 個權重(間隔不貢獻任何東西)。一般輸出尺寸公式 floor((W + 2P - (d(k-1)+1))/S) + 1,在 d = 1 時化簡為普通情況。把擴張率遞增的層疊起來(例如 1、2、4、8),會讓感受野隨深度指數成長,而每一層都維持相同解析度——這正是 WaveNet 處理長距離音訊、以及 DeepLab 的 atrous 金字塔做語意分割的關鍵技巧。

其回報是「具廣泛脈絡的稠密預測」。在分割中你要在每個像素都給出標籤,所以不能一直用池化把解析度丟掉,但你仍需要大感受野來判斷一塊藍色區域是天空還是海——擴張在不降採樣的情況下給了這份脈絡。眾所周知的陷阱是「網格化」(gridding artifact):若每一個疊起來的層都用相同的擴張率,取樣位置會形成一個忽略中間像素的稀疏格網,在覆蓋上留下棋盤狀的空洞。解法是採用混合擴張率(例如 1、2、3),刻意挑選使組合後的取樣沒有共同間隔。

擴張率分別為 1、2、4 的 3x3 卷積核,沿每個軸的感受野為 3、5、9;疊起來後,這三層達到 1 + (3-1) + (5-1) + (9-1) = 15 像素的感受野,只用 3*9 = 27 個權重,且全程不降採樣。

為何重要:擴張把「感受野」與「解析度」和「參數量」解耦——這三者通常會綁在一起變動。正是這份獨立性,讓它成為分割(DeepLab)、音訊生成(WaveNet),以及任何「需要廣泛脈絡卻又必須維持高解析度輸出」場景中的標準做法。

又稱
atrous convolutionà trous