感受野
一個輸出單元的感受野,是指原始輸入中「能夠影響它的值」的那塊區域——也就是一個神經元實際看到的「對外窗口」。單一一次 3x3 卷積讓每個輸出擁有 3x3 的感受野:它只知道一個 3x3 的區塊。但當你把多層疊起來,每一新層都看的是前一層輸出的鄰域,而那些輸出本身又各自摘要了一塊區塊,於是感受野層層複合、隨深度增長。正是這個機制,讓一個僅由微小 3x3 濾波器堆成的深層 CNN,最終能「看見」整個物體。
精確地說,對一疊卷積核大小為 k、步幅為 s、擴張率為 d 的層,感受野會逐層增長。在步幅 1 且無擴張的情況下,把 L 層卷積核 k 疊起來會得到大小為 1 + L(k-1) 的感受野;例如十層 3x3 可達 1 + 10*2 = 21 個像素寬。步幅會放大這個增長(每個帶步幅的層都會放大「先前感受野彼此間距」的尺度),而擴張則在不增加參數下放大單層的覆蓋範圍,因此兩者都能讓感受野擴張得遠比單靠深度更快。其遞迴式為 r_l = r_{l-1} + (k_l - 1) 乘以(第 l 層之前所有步幅的乘積),計入擴張時則把 k 換成它擴張後的大小。
一個關鍵的注意點,是「理論感受野」與「有效感受野」(effective receptive field)的差別。即使某個單元在原理上可被一塊 200x200 的區域影響,中央的像素仍會主導,而影響力朝邊緣大致呈高斯衰減;Luo 等人(2016)指出有效感受野常常只有理論值的一小部分,並且僅以深度的平方根速度增長。這正是為何分割與偵測架構會刻意加入擴張、較大步幅或全域池化,以確保有足夠的真實脈絡,而不是只仰賴深度。
兩層疊起來的 3x3、步幅 1 卷積層:第二層的每個輸出依賴第一層輸出的一個 3x3 區塊,而那些輸出各自又依賴一個 3x3 的輸入區塊——重疊後形成 5x5 的感受野,並含有兩個非線性,使用 2*(3*3)=18 個權重,相較單一 5x5 的 25 個更省。
為何重要:分類器的感受野至少要和它需要辨識的物體一樣大,而分割模型則需要足夠的脈絡來消除歧義(例如區分天空與水面)。如果你的模型漏掉了大型結構,解法通常是增加感受野(擴張、帶步幅的降採樣、池化或全域脈絡模組),而不只是單純加更多層,因為有效感受野增長得很慢。