特徵通道
特徵通道是特徵體積的深度維度——某一層上特徵圖的堆疊。如果高與寬是「在哪裡」,那麼通道就是「是什麼」:每個通道是一個濾波器的輸出,因此是一個不同的、學出來的特徵偵測器。形狀為 (C, H, W) 的張量,最好讀成 C 張各自獨立的 H 乘 W 影像,每一張在它自己的特徵出現之處亮起。在輸入端,通道是原始的顏色平面(RGB 為 3 個);在網路內部,它們是抽象的、學出來的特徵。
精確地說,通道數是每一層設定的「寬度」超參數。一個卷積層取 C_in 個輸入通道、產生 C_out 個輸出通道,其中每個輸出通道由一個「一次讀入全部 C_in 個輸入通道」的濾波器算出。通道數通常隨深度增長(例如 ResNet 的 64、128、256、512),因為網路以空間解析度(透過步幅/池化縮小 H、W)換取表示的豐富度(更多、更抽象的特徵)——形成一個讓每層運算量大致平衡的金字塔。
通道並非互不相通的孤島:卷積會明確地混合它們,因為每個濾波器都跨所有輸入通道相加,而 1x1 卷積之所以存在,正是為了便宜地重新組合通道。這種通道混合,正是網路把簡單特徵組合成複雜特徵之處(把一個邊緣通道與一個顏色通道組合成一個「紅色邊界」通道)。現代架構會刻意管理通道——瓶頸區塊先把通道擠小再擴張、squeeze-and-excitation 依全域重要性對通道重新加權、而分組/深度卷積則限制哪些通道彼此交談以節省運算。
常見混淆:在網路內部,「通道」「特徵圖」與「濾波器輸出」是同一件事,但「濾波器」指的是權重、而「通道」指的是由此產生的激活。也要小心資料佈局:NCHW(通道優先,PyTorch 預設)與 NHWC(通道在後,對 TensorFlow/TPU 友善)描述同一個張量,但對通道的索引方式不同——這是轉置錯誤的常見來源。