💡一句話定義
處理影像時,全連接網路(FCNN)讓每個像素都連到每個神經元,參數量隨像素暴增、又丟失空間關係;CNN 改用小小的卷積核滑動掃描局部區域、同一套規則掃全圖(參數共享),參數少、效率高、還具平移不變性。
這頁不談卷積怎麼算(那在 CNN 卷積互動頁),而是回答一個更前面的問題:為什麼影像不直接用全連接?
🔍用「放大鏡」來想
🎮互動:全連接爆炸 vs 卷積掃描
點「體驗 FCNN」看 64 條線全部連到一個神經元(而這才一個神經元!);點「體驗 CNN」看黃色放大鏡如何用同一套規則滑過整張圖。深色方塊是要找的「車輛」。
車輛辨識系統:CNN vs FCNN
請點擊上方的按鈕,看看 AI 是如何觀察一張圖片的!
(深色方塊代表我們要尋找的「車輛」)
(深色方塊代表我們要尋找的「車輛」)
💥參數爆炸:FCNN vs CNN
| 面向 | 全連接 FCNN | CNN |
|---|---|---|
| 連接方式 | 每個像素連到每個神經元 | 卷積核只看局部、滑動掃全圖 |
| 參數量 | 隨像素暴增(百萬像素→天文數字) | 只有一個小核的權重,少很多 |
| 空間結構 | 攤平就丟失 | 保留 |
| 平移不變性 | 幾乎沒有(移位就認不得) | 有(同一套規則掃全圖) |
🎯CNN 的三招(+池化)
🔬局部感知
一次只看一小塊區域找邊緣/紋理,運算量大減。
一次只看一小塊區域找邊緣/紋理,運算量大減。
♻️參數共享
同一個卷積核掃全圖,規則不變 → 參數極少、效率極高。
同一個卷積核掃全圖,規則不變 → 參數極少、效率極高。
📍平移不變
特徵出現在哪都用同一套規則認得,物體移位仍辨識。
特徵出現在哪都用同一套規則認得,物體移位仍辨識。
🗜️池化降維
對特徵圖降採樣,縮小尺寸、保留重要訊號、增加平移容忍。
對特徵圖降採樣,縮小尺寸、保留重要訊號、增加平移容忍。
🪜為什麼要疊很多層?
單一層只能看到很淺的特徵。堆疊多層後會形成由簡到繁的特徵階層:淺層學邊緣、紋理 → 中層學部件(如車輪、眼睛)→ 深層學完整物件(整台車、整張臉)。這種層層抽象,正是深層 CNN 強大的原因。
✅自我檢測
Q1. 為什麼影像不直接用全連接網路?
全連接讓每個像素都連到每個神經元,參數量隨像素暴增、運算極差,還會攤平丟失空間結構,且物體移位就認不得。CNN 用局部卷積+參數共享解決這些問題。
Q2. 「參數共享」是什麼意思?為什麼能省參數?
同一個卷積核(一套權重)滑過整張圖,每個位置都用同一套規則,而不是每個位置各學一套。所以參數量只等於一個小核,遠少於全連接。
Q3. 池化層的作用是什麼?
對特徵圖降採樣(如最大池化),縮小尺寸、保留最重要訊號、增加平移容忍度,並降低運算與過擬合。它不學參數。
Q4. 為什麼 CNN 要堆很多層?
層層堆疊形成由簡到繁的特徵階層:淺層邊緣紋理、中層部件、深層完整物件。越深的層能組合出越抽象、越有意義的特徵。
🎯重點整理
- 問題:全連接處理影像 → 參數爆炸、丟空間結構、無平移不變。
- CNN 解法:局部感知+參數共享,用小卷積核滑動掃全圖。
- 三招:局部感知、參數共享、平移不變(+池化降維)。
- 多層:邊緣 → 部件 → 物件,層層抽象。
- 結果:參數少、效率高、對影像效果好。