卷積神經網路 (Convolutional Neural Network, CNN)
影像輸入設計:Flatten 方法的問題與反思
基本步驟
- 影像縮放 (Rescale):將圖片統一成固定大小(如 100 × 100)。
- 獨熱向量 (One-hot Vector):表示類別,維度長度決定可辨識的種類數量。
- 模型優化:通過 Softmax 後,追求預測值與正確標籤間的 Cross Entropy 最小化。

將圖片輸入到模型中
- 影像表示:彩色影像為三維張量 (Tensor),包含寬、高及 R G B 三個通道 (Channel)。
- 直覺思路:直接展平 (Flatten) 為向量輸入。
- 問題:參數量過大。如 100×100×3 輸入配 1000 個神經元,第一層即需 個權重,大幅增加 Overfitting 風險。

為什麼需要 CNN? (設計動機與影像特性)
在處理影像辨識時,若直接使用全連接網路 (Fully Connected Network),會面臨參數過多導致 Overfitting 的風險。CNN 透過對影像特性的三個關鍵觀察來簡化網路架構:
-
觀察一:偵測 Pattern 不需要看整張圖片
- 影像中的重要特徵(如鳥嘴、眼睛)通常只存在於局部區域。

- 簡化方式: 引入 Receptive Field (感受野),每個神經元只負責守備一小塊區域。


單一神經元的局部感受野計算 共享感受野的卷積特徵擷取
- 影像中的重要特徵(如鳥嘴、眼睛)通常只存在於局部區域。
-
觀察二:同樣的 Pattern 會出現在不同位置
- 鳥嘴可能出現在左上角,也可能出現在中間。

- 簡化方式: Parameter Sharing (參數共享)。讓不同守備範圍的神經元共用同一組參數(即 Filter)。


共享參數、不同感受野,產生不同輸出 不同感受野皆套用相同的 Filter(權重共享)
- 鳥嘴可能出現在左上角,也可能出現在中間。
-
觀察三:對影像做下採樣 (Subsampling) 不影響辨識
- 將圖片縮小後,人依然能辨認出物件。

- 將圖片縮小後,人依然能辨認出物件。