iPAS AI 應用規劃師 中級 科目三 機器學習技術與應用

CNN 為何比全連接網路更有效率?

原題 06

某智慧城市團隊開發一套交通監控系統,用於即時辨識路口監視器影像中的車輛與行人。團隊比較後發現,卷積神經網路(Convolutional Neural Network, CNN)在訓練與推論效率上,明顯優於傳統的全連接神經網路(Fully Connected Neural Network, FCNN)。請問下列何者為主要原因?

白話

一個智慧城市團隊比較了 CNN 和全連接神經網路來處理交通監控影像,發現 CNN 在訓練速度和推論效率上明顯勝出。他們在分析勝出的原因。

問你:CNN 效率優於全連接網路的主要原因是什麼?

點選你的答案。

01 總結

一句話總結

CNN 比全連接網路高效的核心原因是局部感受野(Local Receptive Field)和參數共享(Parameter Sharing):每個神經元只看影像的一小塊,同一個卷積核在整張影像重複使用,大幅減少參數量和計算量。

02 情境

先感受問題:1080p 影像有多少像素

台北市交通局在忠孝復興路口裝了 4K 監視器,每格影像 3840×2160 像素,共 8,294,400 個數值(加上 RGB 三個通道,接近 2500 萬個數值)。

如果用全連接神經網路處理這張影像:

  • 輸入層:2500 萬個神經元。
  • 第一層只要 1000 個神經元,每個和輸入全連接 → 參數量 = 2500 萬 × 1000 = 250 億個。
  • 光是一層就需要儲存 250 億個權重,還要全部計算梯度。一台 A100 GPU 連一次前向傳播都跑不完。

這根本不可能用在即時影像辨識系統。必須有更聰明的方法。

03 對照

全連接網路處理影像的問題

  1. 參數爆炸:每個輸入像素連接到每個隱藏神經元,參數量隨影像大小和神經元數量指數成長。
  2. 計算量巨大:前向傳播要做的乘法加法運算量與參數量同等級,大圖根本跑不動。
  3. 忽略空間結構:影像攤平成一維向量,像素的空間相鄰關係(上方、左方)完全消失。
  4. 記憶體需求高:存參數、存梯度、存中間激活值,GPU 記憶體快速耗盡。
  5. 容易過擬合:參數太多而訓練樣本相對少,模型容易記住訓練影像的噪音而非真正特徵。
04 解法

CNN 的兩個效率關鍵:局部感受野 + 參數共享

台北交通局的影像辨識系統改用 CNN 後,兩個機制讓參數量從 250 億降到幾百萬:

局部感受野(Local Receptive Field):每個卷積神經元不看整張影像,只看一個 3×3 或 5×5 的小視窗。相鄰的車牌數字一定在空間上相鄰,只要看局部就夠了。

參數共享(Parameter Sharing):同一個卷積核(例如「偵測水平邊緣的濾波器」)在整張影像的每個位置都用同一組權重。一個 3×3 的卷積核只有 9 個參數,卻可以掃過一張 4K 影像的每個位置。

兩個機制加在一起:一層 32 個 3×3 卷積核,總共只需要 32 × 9 = 288 個參數,卻能處理整張 4K 影像,輸出 32 張特徵圖。

這就是選項 C 講的:CNN 透過區域感知(Local Receptive Field)與參數共享(Parameter Sharing)機制,降低模型參數量與運算複雜度

技術版:局部感受野與參數共享的數學意義

CNN 的高效率來自兩個核心歸納偏置(Inductive Bias):局部性假設(相鄰像素更相關)和平移不變性假設(同樣的特徵出現在不同位置都有意義)。

局部感受野的數學意義:全連接層的連接數 = 輸入大小 × 輸出大小。卷積層的連接數 = 卷積核大小 × 輸出大小。對於 1000×1000 的影像,全連接到 1000 個神經元需要 10 億個參數;3×3 卷積核只需要 9 個參數,掃描後輸出 1 張特徵圖。

參數共享的含義:不同位置的「偵測邊緣」任務是一樣的,沒必要為每個位置學一個獨立的濾波器。這個假設對影像成立(邊緣到處都可能出現),對文字資料則不一定(不同位置的詞通常扮演不同語法角色)。

為什麼出題者要考這題:理解 CNN 為何高效,是選擇「用 CNN 還是其他架構」的基礎判斷能力,也是面試 AI 工程師的高頻考題。

05 陷阱

為什麼其他選項是錯的

ACNN 能自動學習影像的旋轉與比例不變性

字面在說什麼

無論影像旋轉多少度或放大縮小,CNN 都能正確識別。

為什麼不對

標準 CNN 對「平移」有一定不變性(因為參數共享),但對旋轉和比例縮放並不具備天然的不變性,除非訓練資料有做旋轉增強或使用特殊架構(如 Spatial Transformer Networks)。這個說法本身也不完全準確,且跟「效率」無關,是個偷換概念的干擾選項。

誰會選錯

知道 CNN 有「不變性」概念但沒仔細看「為何效率高」這個問題的人。不變性是 CNN 的一個性質,不是效率提升的原因。

BCNN 可直接跳過人工特徵提取步驟進行分類

字面在說什麼

傳統方法需要手動設計特徵,CNN 不需要,可以端對端訓練。

為什麼不對

這個說法是正確的(CNN 確實可以端對端學習,不需要手工特徵),但這描述的是 CNN 「能做什麼」,而不是「為什麼比全連接網路更有效率」。跳過人工特徵提取是 CNN 的便利性,不是它參數量少、速度快的原因。

誰會選錯

知道 CNN 不需要手工特徵,就覺得「這就是它更好的原因」的人。題目問的是「效率」(訓練速度、推論速度),不是「方便性」。

DCNN 捨棄激勵函數(Activation Function),以加快運算速度

字面在說什麼

不用激活函數,計算量減少,速度更快。

為什麼不對

完全錯誤。CNN 沒有捨棄激活函數,每一層卷積後通常都接一個 ReLU 激活函數。如果去掉激活函數,多層卷積會退化成一層線性變換,失去學習非線性特徵的能力,模型會完全失效。

誰會選錯

以為「少一個步驟就更快」的人。記住:激活函數是神經網路非線性表達能力的來源,絕對不能省。速度優化是靠減少參數量,不是靠去掉激活函數。

06 變形

同個考點下次怎麼變形

變形 1

全連接層在 CNN 中扮演什麼角色?

直覺

CNN 最後還是有全連接層,難道它沒有問題嗎?

答案

全連接層通常在 CNN 最後一到兩層,此時特徵圖已經透過多次卷積和池化縮小到很小(例如 7×7),全連接所需的參數量已在可接受範圍內。它的工作是把空間特徵「壓縮」成分類分數,不可省略。

變形 2

參數共享為什麼能提高泛化能力?

直覺

同一個濾波器在不同位置重複使用,不只是省參數。

答案

參數共享讓模型隱含地學到「平移不變性」:車出現在影像左邊還是右邊,辨識車的特徵應該一樣。這讓模型對位置偏移的資料更有泛化能力,不需要看過每個位置的訓練樣本。

變形 3

深度可分離卷積(Depthwise Separable Convolution)比標準卷積更省計算,為什麼?

直覺

MobileNet 就是用這個技術縮小模型、在手機上跑。

答案

標準卷積同時做「空間特徵提取」和「通道融合」。深度可分離卷積把兩件事拆開:先用 Depthwise 卷積對每個通道獨立做空間卷積,再用 1×1 Pointwise 卷積做通道融合。這樣參數量和計算量可以減少 8-9 倍。

變形 4

為什麼 Transformer(ViT)可以取代 CNN 做影像分類?

直覺

近年來 Vision Transformer 在很多影像任務上超過 CNN。

答案

ViT(Vision Transformer)把影像切成小塊(patch)當作序列輸入,用自注意力機制捕捉全局關係,不依賴局部感受野假設。在大資料量下 ViT 更強,但需要更多訓練資料才能超過 CNN。兩種架構各有優勢,現在業界常混合使用。

變形 5

在邊緣設備(Edge Device)上部署 CNN,如何進一步減少計算量?

直覺

路口的嵌入式攝影機計算資源有限,不能跑完整的 ResNet50。

答案

常用策略:模型剪枝(Pruning,移除不重要的連接)、量化(Quantization,將 32-bit 浮點數改為 8-bit 整數)、知識蒸餾(Knowledge Distillation,用大模型教小模型)、使用輕量架構(MobileNet、EfficientNet)。

07 延伸

想再往下看,這 5 個

出處

iPAS 經濟部產業人才能力鑑定 ・ 114 年第二梯次 iPAS AI 應用規劃師 中級 科目三 機器學習技術與應用 第 6 題

查看官方原文 PDF