卷積神經網絡( Convolutional Neural Network , CNN )
- CNN 是前向傳播神經網絡,模擬人類視覺系統的工作方式,具有層次化的結構
- CNN 的核心是卷積操作,用來從圖像中提取特徵
- CNN 包括池化( Pooling )層用於降低特徵圖的空間尺寸,以及全連接層用在最終的分類或迴歸
圖源: 初探卷積神經網路 - CH.Tseng
卷積運算( Convolution )
處理圖像和提取特徵。模擬在圖像上滑動的濾波器或卷積核,計算出特徵映射( feature map )
-
卷積核( Filter )
- 卷積操作的核心,也叫過濾器,是一個小的矩陣或濾波器,包含權重(參數)
- 通常是正方形,例如 3x3 或 5x5 ,具體大小要看設計
- 每個卷積核內的權重是計算特徵映射的一個像素值
-
卷積操作
- 將卷積核應用於輸入圖的不同位置來執行的
- 卷積核和輸入圖的一個小區域進行逐元素相乘,然後將所有結果相加
- 從左上角開始,直到右下角,生成一個特徵映射
-
特徵映射( Feature Map )
- 是卷積操作的結果,是新的矩陣,每個元素都代表了原圖中一個位置的特徵
- 特徵映射中的元素都是卷積核從輸入圖中提取的特徵
-
步幅( Stride )和填充( Padding ):
池化( Pooling )
減小特徵映射的尺寸,減少計算量,並增強模型的 Robustness
-
池化操作
- 在特徵映射的局部區域上應用的,使用一個小的矩陣,通常是 2x2 或 3x3
- 不像卷積具有可訓練的權重,只執行統計運算,像最大池化( Max Pooling )或平均池化( Average Pooling )
- 最大池化選擇矩陣最大值為新特徵值,平均池化計算矩陣的平均值
-
尺寸減小
- 減少特徵映射的尺寸,例如用 2x2 最大池化將像素區域轉換為單一像素,尺寸減少了一半
- 減少計算複雜度,降低內存需求,加速模型的訓練和推理
-
特徵保留
- 雖然減少了特徵映射的尺寸,仍保留重要的特徵,最大池化能保留局部最強的特徵,平均池化則保留平滑的特徵
-
步幅和填充
Flatten
位於卷積層和全連接層之間,將多維的特徵映射轉換為一維向量,讓特徵可以被送入全連接層進行進一步的處理和分類
-
多維特徵映射
- 在卷積層中,特徵映射是二維或三維的,有高度、寬度和通道數,每個特徵映射代表了在不同位置和通道上提取的特徵
-
Flatten操作
- 多維特徵映射轉換成一維向量的過程,將所有特徵按照順序攤平,不管在特徵映射中的位置和通道
- 例如一個特徵映射是 7x7x64 (高度 7 、寬度 7 、通道 64 ),Flatten 將特徵映射轉換成長度為 7x7x64 = 3136 的一維向量
-
連接全連接層