卷積神經網路

卷積核

卷積核是定義「某個濾波器在找什麼」的那一小格可學習權重網格,也就是滑過輸入的那塊「模板」。把它想成一個局部圖樣的小型範本:當卷積核底下的輸入區塊與這個圖樣相似時,加權和就很大;不相似時就很小。訓練會調整這些權重,讓每個卷積核在數百萬筆範例之後,逐漸磨利成一個有用的偵測器——某個角度的邊緣、某種顏色的色塊、某種小紋理。

精確地說,2D 卷積層中的卷積核是一個形狀為 (C_in, k, k) 的 3D 張量:它的高與寬都是 k(空間視窗,常見有 3x3、5x5、7x7 或 1x1),深度則等於輸入通道數 C_in。因此它含有 C_in 乘 k 乘 k 個可學習的數字,外加一個共用偏置。一個有 C_out 個輸出通道的層會持有 C_out 個這樣的卷積核堆疊在一起,常寫成形狀為 (C_out, C_in, k, k) 的 4D 權重張量。「濾波器」(filter)一詞通常與「卷積核」(kernel)同義,不過有些作者會把「kernel」保留給單一通道的 2D 切片,而把「filter」用來指跨所有通道的完整 3D 堆疊。

卷積核大小是在「表達力」與「成本及感受野」之間取捨。大卷積核(7x7)一次看到較寬的鄰域,但成本高、參數多;小卷積核(3x3)便宜,而把兩層 3x3 疊起來能達到同樣的 5x5 感受野,卻用更少參數、且中間還多了一個非線性——這正是讓 VGG 全用 3x3 的設計蔚為主流的洞見。極端情況的 1x1 卷積核完全不看任何空間鄰域,而是改為在通道之間混合資訊。

常見混淆:這裡的「kernel」與核方法/SVM 中的核(一種相似度函數)或作業系統核心無關。在 CNN 裡它就只是可學習的濾波器權重。另外要注意:在標準卷積中,卷積核一定會貫穿整個輸入深度——並不存在「會忽略某些輸入通道的 3x3 卷積核」這種東西。

又称
filterweight tensor