內容已複查
25 分鐘 · 0 張概念卡 · 0 題對應考古題

CNN 與影像辨識:從 filter 到特徵金字塔

本頁為依教材與考古題整理的原創摘要;考古題答案經技術覆核,但不是官方答案。

考古題證據邊界: im-it-ai-cnn-rnn-sequence 目前沒有 direct primary past-paper refs,本課為教材導向的進階補充。

第一次接觸也沒關係

這堂先懂這些詞

先記住白話意思,不必急著背英文。看到正文時,再把正式名稱接回來。

CNN、RNN 與 LSTM

也會看到:CNN、convolutional neural network、RNN、LSTM

CNN 擅長利用局部與共享模式;RNN/LSTM 以序列狀態處理前後次序資訊。

生活例子:
CNN 像在照片各處找同一種圖案,RNN/LSTM 像讀句子時保留前文線索。
別搞混:
這是典型設計偏好,不代表 CNN 只能看圖片或 RNN 一定最適合所有序列。

神經網路

也會看到:neural network、layer、weight、activation function、神經網路

由多層可調參數的計算單元組成,透過資料調整權重來近似複雜關係。

生活例子:
像一排排篩選站,各站把前一站訊息重新加權後再傳下去。
別搞混:
名稱來自生物啟發,但不是大腦的完整複製品。

過度擬合與模型評估

也會看到:overfitting、training set、validation set、test set、precision、recall

過度擬合是模型太會記訓練資料卻不會應付新資料,需用未參與訓練的資料與合適指標檢查。

生活例子:
背熟題庫答案卻遇到改寫題就不會,是過度擬合的生活版。
別搞混:
訓練分數高不等於模型好;accuracy 也不適合所有不平衡問題。

監督式與非監督式學習

也會看到:supervised learning、unsupervised learning、label、監督式學習、非監督式學習

監督式學習從有答案標籤的例子學預測,非監督式學習則從無標籤資料找結構。

生活例子:
用已標垃圾郵件訓練分類器是監督式;自動把客群分群是非監督式。
別搞混:
監督式不是有人每一步盯著模型,非監督式也不是完全沒有目標。

深入 CNN 的卷積運算、pooling 策略與典型架構演進(LeNet → VGG → ResNet),理解 feature map 的階層語義,並以 transfer learning 連結預訓練模型與下游任務。補齊零考古題的 CNN 子題。

先抓住這幾件事

  • 說明 convolution filter 如何在 input 上滑動並產生 feature map
  • 區分 max pooling 與 average pooling 的取捨
  • 以 ResNet 的 skip connection 解釋為何更深的網路不一定更難訓練
  • 說明 transfer learning 如何將預訓練的 feature extractor 接上新任務

先想像這個場景

圖書館自動分類系統

圖書館想自動辨識書封上的圖案來分類:掃描器用固定大小的視窗逐格檢查,每層看到越來越複雜的圖樣(邊緣→紋理→物件),最後壓縮成一個分類標籤。

先別急著往下看,花十秒想一想:

如果把一本偵探小說的書封左移 5 像素,系統還能正確分類嗎?

把故事換成電腦語言

生活中的角色對應到技術概念
固定大小視窗逐格掃描書封Convolution filter sliding over input
每層看到更複雜的圖樣Hierarchical feature extraction
壓縮成一個代表值Pooling reduces spatial dimensions
借用已訓練好的辨識器只換分類頭Transfer learning with pre-trained backbone

題目出現這些字,先想到

  • Convolution 的 parameter sharing 讓同一 filter 偵測所有位置的 pattern。
  • Max pooling 取最大值,average pooling 取平均值。
  • ResNet 的 skip connection 解決深層網路的 degradation problem。
  • Transfer learning 分 feature extraction(凍結)和 fine-tuning(微調)兩種模式。

1.Convolution 提取局部空間特徵

CNN 的核心運算是 convolution:一個小型 filter(通常 3×3 或 5×5)在 input 上滑動,每個位置計算 element-wise multiply 再加總,產生一個 feature map 的值。同一個 filter 在所有位置共享 weights,這就是 parameter sharing — 讓 CNN 能偵測位移不變的局部 pattern(如邊緣、角落、紋理),且參數量遠小於 fully connected layer。

  • Filter size 決定 receptive field,stride 決定 output resolution
  • Padding 用來控制 output 尺寸,常見 same padding 保持 input 大小
  • 多個 filters 產生多個 feature maps,每個偵測不同 pattern
  • Parameter sharing 是 CNN 高效的關鍵:一個 3×3 filter 只有 9 個 weights

2.Pooling 壓縮空間保留語義

Pooling layer 降低 feature map 的空間尺寸,保留重要特徵同時減少運算量。Max pooling 取 window 內最大值,保留最強 activation;average pooling 取平均值,保留整體分布。Global average pooling 將整張 feature map 壓成一個數值,常用在最後的分類層之前,取代 fully connected layer。

  • Max pooling 對微小位移提供 translation invariance
  • Average pooling 保留更多空間資訊但可能模糊 strong activation
  • Pooling 不含可學習參數,純粹是降維操作
  • 現代架構有時用 stride > 1 的 convolution 取代 pooling

3.從 LeNet 到 ResNet:深度的挑戰與解法

LeNet(1998)用 5 層處理手寫數字;VGG(2014)證明堆疊 3×3 filters 到 16-19 層能大幅提升效果;但更深的網路遇到 vanishing gradient 與 degradation problem — training accuracy 反而下降。ResNet(2015)引入 skip connection:每個 block 的 output 加上 input(y = F(x) + x),讓 gradient 有直接通路,使 100+ 層的訓練成為可能。

  • VGG 用多個 3×3 取代大 filter,receptive field 相同但參數更少
  • Degradation 不是 overfitting — training error 也上升
  • Skip connection 讓 block 只需學習 residual F(x) = y - x
  • ResNet-50 是許多 transfer learning 任務的預設 backbone

4.Transfer learning 讓預訓練知識可重用

在大型資料集(如 ImageNet)預訓練好的 CNN 已學到通用的視覺特徵:低層是邊緣和紋理,高層是物件部件和語義。Transfer learning 凍結或微調這些層,只重新訓練最後的分類頭,讓小資料集也能達到好效果。這是目前最常見的 CNN 應用方式。

  • Feature extraction 模式:凍結所有卷積層,只訓練分類層
  • Fine-tuning 模式:以較小 learning rate 微調部分或全部卷積層
  • 預訓練模型的底層特徵通常可跨 domain 重用
  • 資料量越少越應偏向 feature extraction,避免 overfitting

一起拆題目

範例 1一個 3×3 filter 在 32×32 input 上以 stride=1、padding=0 滑動,output feature map 大小是多少?

  1. Output size = (input - filter + 2*padding) / stride + 1
  2. = (32 - 3 + 0) / 1 + 1 = 30
  3. Output 是 30×30

所以答案是:30×30。每邊少了 (filter_size - 1) / 2 = 1 個像素。

範例 2為什麼 ResNet-152 的 training error 比 plain 56-layer network 還低?

  1. Plain network 深度增加後遇到 degradation — training error 反而上升。
  2. ResNet 的 skip connection 讓 gradient 直接流過,解決 gradient vanishing。
  3. 每個 block 只需學 residual,worst case 是 identity mapping。

所以答案是:Skip connection 確保加深不會比淺網路差,gradient 有直接通路。

這裡最容易選錯

  • 把 pooling 當成有可學習參數的操作
  • 認為更深的網路一定更好(忽略 degradation)
  • 把 transfer learning 的 feature extraction 和 fine-tuning 混為一談
  • 認為 CNN 只能處理影像(也可處理 1D signal 和 structured grid data)

換你快速判斷

先在心中作答,再展開答案。答不出來時,回頭找本課的對照關係。

再到題庫找辨識線索

這個基礎主題在現有考古題中沒有可確認的直接題,所以不會為了湊數量而硬連題目。可回到完整題庫,練習辨識它與相鄰概念的關係。

瀏覽資訊科技概論題庫

參考來源