卷積神經網絡一般由卷積層、匯聚層和全連接層構成,本文我們來學習卷積層。
卷積層(Convolutional Layer)是卷積神經網絡(CNN)的核心組件,專門用于處理具有網格結構的數據(如圖像、音頻、時間序列等)。它的核心思想是通過局部連接和權重共享,高效提取數據的局部特征。
一、核心思想:用“滑動窗口”提取局部特征
假設你正在觀察一張貓的圖片:
-
全連接層:需要將整張圖片的像素展開成一維向量,每個像素與神經元獨立連接,導致參數爆炸。
-
卷積層:像用放大鏡掃描圖片,每次只觀察一個小窗口(如3×3的區域),通過重復使用同一組權重(卷積核)掃描全圖。
類比:
卷積層相當于一組“可學習的特征探測器”,每個探測器(卷積核)專門捕捉一種局部模式(如邊緣、紋理、顏色過渡等)。
卷積層在CNN中的輸出通常用一個三維張量表示,其結構為 (H, W, D):
- H(高度)和 W(寬度):對應卷積后得到的特征圖的空間尺寸。這個尺寸取決于原始輸入圖像的大小、卷積核尺寸、步幅(stride)和填充(padding)策略。
- D(深度或通道數):對應卷積層使用的濾波器(卷積核)的個數。每個濾波器在整個輸入上滑動后會生成一個二維特征圖,這些二維特征圖堆疊起來形成第三個維度。
舉個例子:
假設輸入是一張尺寸為32×32的RGB彩色圖像(即32×32×3),我們在卷積層中使用了16個大小為5×5的卷積核(每個卷積核的深度與輸入通道一致,即5×5×3)。如果采用適當的填充(例如“same”填充)和步幅為1,那么卷積層輸出的特征圖尺寸依然為32×32。因此,輸出張量的尺寸就是 32×32×16。
這種三維表示方式能保留圖像的空間結構(高度和寬度),同時通過多個濾波器提取不同的局部特征(深度),為后續的層提供豐富的特征信息。
卷積層的三維結構表示如下:
二、卷積層的數學操作
1. 單通道輸入(灰度圖像)
-
輸入矩陣:X(尺寸?H×W,如5×5)
-
卷積核:K(尺寸?Kh×Kw?,如3×3)
-
輸出特征圖:Y(尺寸?(H?Kh+1)×(W?Kw+1))
計算示例:
輸入矩陣:
[[1, 2, 3, 4, 5],[6, 7, 8, 9, 10],[11,12,13,14,15],[16,17,18,19,20],[21,22,23,24,25]]
卷積核:
[[1, 0, -1],[1, 0, -1],[1, 0, -1]]
輸出計算(以左上角3×3區域為例):
Y[0,0]=1×1+2×0+3×(?1)+6×1+7×0+8×(?1)+11×1+12×0+13×(?1)=?24
負值表示檢測到從亮到暗的垂直邊緣。
2. 多通道輸入(如RGB圖像)
-
輸入:Cin??個通道的矩陣(尺寸?H×W×Cin?)
-
卷積核:每個輸出通道對應?Cin??個核(尺寸?Kh×Kw)
-
輸出:CoutCout??個特征圖(尺寸?H′×W′×Cout)
參數計算:
參數總量 =?Kh×Kw×Cin×Cout+Cout(含偏置項)
三、特征映射的概念
卷積層中的“特征映射”(Feature Map)是指通過卷積核(濾波器)對輸入數據進行局部運算后產生的一組輸出矩陣,每個矩陣對應一種特定的特征響應。通俗地講,可以這樣理解:
-
局部響應:每個卷積核在輸入圖像上滑動,對每個局部區域計算加權和(加上偏置,并通過激活函數處理),這個計算結果反映了該區域是否包含卷積核所“關注”的特定模式(例如邊緣、紋理、角點等)。
-
特征“激活”圖:卷積核得到的輸出矩陣就是一個特征映射。矩陣中每個數值代表在對應位置上該特征出現的強度。比如,一個專門檢測垂直邊緣的濾波器,會在圖像中存在垂直邊緣的區域輸出較高的激活值。
-
多通道組合:通常一個卷積層會有多個卷積核,每個核負責提取不同的特征。這樣,該層的輸出就不只是一個矩陣,而是多個矩陣的組合(通道),每個通道對應一個特征映射,整體提供了豐富的局部特征信息。
-
空間信息保留:特征映射保留了輸入圖像的空間結構,只不過經過濾波器轉換成了另一種表示。這種空間保持性使得后續層能夠進一步組合這些局部特征,形成更高層次的語義理解。
總之,特征映射就是卷積層對輸入局部區域進行特定模式檢測后輸出的“圖像”,反映了卷積核在整個輸入上的響應情況。這一過程使得網絡能從原始像素中自動學習并提取有意義的局部特征,為進一步的圖像理解和分類提供基礎。
四、卷積層的核心特性
1. 局部連接(Local Connectivity)
-
原理:每個神經元僅連接輸入的一個局部區域。
-
優勢:
-
減少參數量(如3×3卷積核僅需9個權重,而全連接層需連接所有像素)。
-
聚焦局部特征,避免全局噪聲干擾。
-
2. 權重共享(Weight Sharing)
-
原理:同一卷積核在不同位置重復使用。
-
優勢:
-
參數效率極高(1個核掃描全圖)。
-
捕捉平移不變性(無論貓耳朵在圖像左側還是右側,同一核均可檢測)。
-
3. 平移不變性(Translation Invariance)
-
原理:物體在圖像中的位置變化不影響檢測結果。
-
實現:通過滑動窗口覆蓋所有位置,同一核在不同位置激活相同特征。
五、卷積層的實際效果
1. 淺層卷積:邊緣與紋理檢測
-
示例核:
-
水平邊緣檢測:
[[1,1,1], [0,0,0], [-1,-1,-1]]
-
垂直邊緣檢測:
[[1,0,-1], [1,0,-1], [1,0,-1]]
-
2. 深層卷積:抽象語義提取
-
組合低級特征:如通過邊緣檢測結果組合出車輪、窗戶等物體部件。
-
高級語義:最終識別出“汽車”“人臉”等復雜概念。
3. 特征圖可視化
-
淺層特征:顯示邊緣、顏色塊等低級模式。
-
深層特征:對應抽象形狀或物體部件。
六、卷積層與全連接層的對比
特性 | 卷積層 | 全連接層 |
---|---|---|
連接方式 | 局部連接 + 權重共享 | 全局連接 + 獨立參數 |
參數量 | 與輸入尺寸無關 | 與輸入尺寸成正比 |
空間信息保留 | 保留多維結構(如圖像的2D布局) | 展平為一維向量(丟失結構) |
適用場景 | 圖像、視頻、語音等網格數據 | 簡單分類任務 |
七、卷積層的核心價值
-
高效特征提取:通過滑動窗口和權重共享,以極少的參數捕捉局部模式。
-
層次化學習:淺層提取邊緣/紋理,深層組合抽象語義。
-
空間不變性:無論目標在圖像中的位置如何,均能穩定檢測。
實際應用建議:
-
圖像分類:堆疊多個卷積層,逐步抽象特征。
-
目標檢測:用卷積層生成候選區域(如Faster R-CNN)。
-
語義分割:全卷積網絡(FCN)保持空間分辨率。
最終理解:
卷積層是CNN的“智能掃描儀”,通過可學習的局部模板,在數據中逐段尋找重復出現的模式。這種設計既保留了空間/時序結構,又避免了參數冗余,是處理網格化數據的基石。