CNN(卷積神經網路)
全名:Convolutional Neural Network
介紹:是一種專為處理圖像數據設計的深度學習模型
基本架構:由卷積層、池化層以及全連接層組成
卷積層**(Convolution Layer)**
介紹:把一張圖片的局部特徵提取出來,他透過卷積核(一個小矩陣)在這張圖片上滑動,他能減少圖像的資訊量,同時保留重要特徵
核心任務:自動提取圖像局部特徵
-
用多個「卷積核(filter)」在輸入圖像上滑動,挑出不同小區域的特徵。
-
能夠偵測到如邊緣、紋理、顏色等低階特徵,疊加多層後可抽象出高階特徵如形狀、物體輪廓。
-
這些特徵經由疊層逐層加深,讓模型能夠由簡單的像素資料漸漸「看懂」複雜的物體。
-
詳細介紹
1. 卷積核(Filter/Kernels)與特徵圖(Feature Maps)
-
卷積層使用「卷積核」這種小矩陣在輸入圖像上滑動。
-
每次卷積核覆蓋一小部分圖像,計算內積(像素 X 權重)加總,產生一個新值。
-
這個運算會在整張圖上滑動,最後產生「特徵圖」,記錄某種特徵(如邊緣、紋理)在各位置的強度。
-
通常卷積層不只用一個卷積核,每個核可偵測不同型態的特徵,因此每層可產生多張特徵圖,這些圖會組成下一層的輸入。
2. 運算流程
-
滑動:卷積核從左上到右下,逐一在圖像上各小區域進行運算。
-
內積計算:覆蓋範圍內像素與卷積核權重一一相乘後加總。
-
生成新特徵圖:每個卷積核會產生一個新的特徵圖,代表這種「模式」在整張圖像中的分布與強度。
3. 卷積層的優點與作用
-
自動學習特徵:卷積核的權重通過訓練自動尋找重要特徵,免去人工設計。
-
參數量少,計算效率高:只需處理小區域,極大減少參數和計算。
-
支援多層疊加:低階層提取簡單結構,高階層疊加抽象更複雜的型態(如形狀、物件等)。
-
空間感受野不斷擴大:每往後一層,特徵圖能看見越多來源像素,進而理解物件整體結構。
4. 激活函數與非線性轉換
- 卷積層通常接著「激活函數」(如 ReLU),讓特徵圖能捕捉非線性複雜性。
-
池化層(Pooling Layer)
介紹:將卷積層所生成的特徵圖去進行萃取精華,減少運算量和模型複雜度
主要用途:縮小特徵圖尺寸,減少參數與雜訊
-
最常見為「最大池化(Max Pooling)」,是在小區域裡取最大值代表這區塊。
-
池化有助於保留最重要資訊,同時讓模型對位置變化產生穩定性(平移不變性)。
-
也能減少模型計算量並防止過擬合。
註解:最大池化(Max Pooling)是指把一個區塊的數值找出最大的,把他留下來
-
詳細介紹
1. 核心原理
-
特徵圖下採樣:將原始特徵圖依固定大小(如2×2)區塊切分,對每個小區域進行池化(例如取最大值或平均值)。
-
常見作法:
-
最大池化(Max Pooling):每個區域取最大值。
-
平均池化(Average Pooling):每個區域取平均值。
-
-
滑動窗口:池化區塊根據設定的步幅(stride)滑動,可完全不重疊或部分重疊。
2. 主要功能與優點
-
降低資料維度:壓縮影像寬高,減少神經網路參數和運算量。
-
提升特徵抽象能力:保留最重要特徵,去除雜訊與微小變化。
-
加強空間不變性:例如,圖片出現小幅度平移、旋轉,特徵依然可被辨識,提高模型魯棒性。
-
降低過擬合風險:減少不必要的細節,讓模型專注於主要結構。
3. 池化層設計常見參數
參數 常用設定 作用 kernel (2, 2) 區塊大小,每次看2x2點 stride 2 每次滑動2格,確保不重疊 種類 Max/Average 最常用最大池化,也有平均池化 4. 與卷積層差異
-
卷積層:會自動學習權重,專注於抓出特徵(如邊緣、紋理)。
-
池化層:無需學習參數,專注於壓縮和穩健性,不直接抓新特徵。
5. 常見問題與設計建議
-
池化層不需使用激活函數。
-
池化過強會喪失細節;過弱則無法有效壓縮與泛化。
-
設計CNN時,通常「兩個卷積層後加一個池化層」,控制規模提升效率。
-
全連接層(Fully Connected Layer)
介紹:把前面兩個步驟最後的結果先變成一維數列,並把他們進行分類或預測
任務:最終「分類/判斷」決策中心
-
在此層,所有前面特徵圖會被「攤平」成一串數值,送到全連接神經元。
-
類似傳統神經網路,多數神經元彼此連接,最後配合 Softmax 輸出各類別的機率。
-
詳細介紹
1. 連接方式與運算
-
全部連接:每個神經元與前一層所有神經元都有連接,每一條連接皆有獨立的「權重」和「偏置」值可學習。
-
展平特徵圖:池化層或卷積層的輸出通常是多維特徵圖,進入FC層時會被「攤平成一維向量」。
-
線性組合:每個神經元計算所有輸入值的加權總和,再加偏置值,通常經過激活函數後產生最終輸出。
-
激活函數:常用 ReLU、Sigmoid、Tanh 等。最終分類層多用 Softmax,輸出各類別的機率。
2. 主要功能
-
特徵整合與判斷:FC層將前面提取的所有特徵綜合分析,做最終分類、預測、回歸等任務。
-
類比投票:每個特徵可視為 “投票”,票數(權重)不同,表示特徵重要程度不同。
3. 與卷積層的差異
層次 作用 參數連接方式 卷積層 局部特徵抽取 局部連接,權重共享 全連接層 整體分類判斷 全連接,每對節點一權重 4. 設計注意事項
-
FC層參數量大,容易造成運算負擔;有時使用 “全局平均池化” 或減少FC層數量減輕效能壓力。
-
通常設置在模型尾端,一到兩層即可完成主要任務。
-
資料來源:
相關筆記
- GoogLeNet:經典 CNN 架構
- 激活函數(Rectified Linear Unit)
- 前向傳播(Forward Propagation)
- 反向傳播(Backpropagation)
- 優化器:訓練 CNN 用的優化器