iT邦幫忙

2025 iThome 鐵人賽

DAY 8
0
AI & Data

零基礎 AI 入門!從 Wx+b 到熱門模型的完整之路!系列 第 8

【Day 8】卷積神經網路不是深度學習的「原創」?從影像處理出發的 AI 革命

  • 分享至 

  • xImage
  •  

前言

當我們談到圖像深度學習第一個跳出來的技術名詞,往往就是 CNN(Convolutional Neural Network)卷積神經網路。這個架構幾乎成了影像識別與分類的代名詞,從自動駕駛到醫學影像分析,處處可見它的身影。

但如果我們把鏡頭拉遠一些,不難發現CNN 的核心概念其實並非誕生於深度學習時代,而是深深植根於過去的影像處理與訊號分析傳統中。

換句話說,CNN 與其說是 AI 的全新創造,不如說是「舊瓶裝新酒」:將早已有之的數學技術,如影像卷積、局部特徵提取,結合神經網路與反向傳播等深度學習的精華,再一次推向極致。

卷積從哪來?

https://ithelp.ithome.com.tw/upload/images/20250922/20152236QFPSrob0yP.png
早在深度學習尚未崛起的年代卷積(convolution)就已經是影像處理界的基本功。不論是 邊緣偵測、模糊處理、銳化濾鏡 或是 紋理強化,都少不了這個數學工具的身影。

它的核心概念很簡單:使用一個小小的濾波器(kernel),在圖片上滑動,針對周圍像素做加權運算。如下圖所示:
https://ithelp.ithome.com.tw/upload/images/20250922/20152236qQGZ0GZzSB.jpg
舉例來說,當我們用 SobelLaplacian 這類經典的邊緣偵測濾波器去掃描圖片時,只要碰到像素值變化劇烈的區域(例如物體邊界),便會產生強烈響應,讓邊緣浮現出來。這種技術,即便在沒有深度學習的時代,也早就是圖像分析的核心工具。

CNN 怎麼進行卷積?

在卷積神經網路中,卷積層(Convolution Layer) 是整個架構的基礎,與傳統影像處理不同的是,CNN 不再仰賴人為設計的濾波器,而是讓系統「自己學」,學會該使用什麼樣的卷積核來辨認特徵,這些濾波器可以理解為 AI 的視覺「眼鏡」:

  • 初階的濾波器可能只會辨識線條或角落;
  • 中階的則能看出紋理、形狀;
  • 高階的甚至可以抓出「眼睛」、「車輪」、「臉部輪廓」這類複雜圖樣。

而針對CNN的數學公式我們可以先看到以下寫法
https://ithelp.ithome.com.tw/upload/images/20250922/20152236RzuKjqIBJk.png
這裡的 X 是輸入的特徵圖(Feature Map)K 則是卷積核。運算方式就是簡單的滑動視窗(Sliding Windows)每次針對小區域的像素進行乘法加總,生成新的影像特徵。

圖解卷積的實際動作

雖然數學公式能精確描述卷積操作,但對多數人來說,圖像化理解往往更直觀。因此我們不談複雜的運算式,而是用一張圖來說明整個卷積的邏輯:
https://ithelp.ithome.com.tw/upload/images/20250922/20152236oOkKSlolyX.png

1. 輸入影像的局部視窗

首先看圖左邊那個大格子。這代表的是原始輸入影像中的一小塊區域。你可以想像它是一張圖裡的某個「局部」,例如某隻貓咪耳朵上的一小塊畫素矩陣。這些數字代表像素的強度(通常是灰階或 RGB 數值),是電腦眼中「看見」影像的方式。這樣的格子稱為特徵圖的一部分。

2. 卷積核(濾波器)

接下來中間的小格子就是所謂的卷積核(也常被稱為濾波器),這個小小的矩陣裡面裝的是一組數字權重,它們的功能就像是一副特定的眼鏡——可能專門用來偵測邊緣、水平線、紋理等等。而這些權重是 CNN 自己學出來的。

3. 逐元素相乘與加總

現在這個濾波器會疊在原始影像的某個區塊上。它們之間會一一對應,也就是每個位置的像素值,會和濾波器對應位置的權重值相乘。完成這一輪逐元素相乘後,接下來會把所有的乘積加總起來。這個加總結果,就是這次濾波後的輸出值。

用白話說這個數字反映了原始影像在這個區塊裡,有多符合濾波器關注的特徵,你可以把它想像成一個圖像掃描器或偵測器,會專注在某一種視覺特徵上。

4. 像拼圖一樣滑動整張圖

濾波器不會只做一次操作,它通常是往右移一格或往下移一格,然後在每一個新的位置上,重複剛才的乘法與加總步驟,這個「滑動」的動作,稱為捲積運算中的步長(stride)。透過這種方式,整張輸入圖就會被掃過一遍。

5. 產生特徵圖

每一次滑動產生的輸出值,會被放到一個新的矩陣中。這些數值組成的結果,就是所謂的特徵圖(Feature Map)。這張特徵圖是 CNN 對原圖的一次詮釋,會強調出原圖中符合濾波器特徵的區塊。

例如這個濾波器專門抓水平邊緣,那麼在有邊緣的地方,特徵圖上會出現高值;反之則是低值或零。可以說,CNN 就是透過這一層層的特徵圖疊加,逐步抽象出圖像中的重要資訊。

池化層

在 CNN 的架構中,除了卷積層之外,另一個不可或缺的角色就是 池化層(Pooling Layer)。它的功能可以被視為一種資訊的濃縮器,用來簡化資料,同時保留最具代表性的特徵。具體來說池化可以降低特徵圖的尺寸,進而減少模型的運算負擔;它也能過濾掉多餘的細節與雜訊,讓神經網路聚焦在關鍵特徵上。

此外池化還具有強化「平移不變性」的效果,意思是即使影像中的物體稍微位移、旋轉或變形,模型仍能正確辨識出相同的特徵,其中最常見的是最大池化(Max Pooling)平均池化(Average Pooling)
https://ithelp.ithome.com.tw/upload/images/20250922/20152236ZSfsagAzrY.png
如圖中顯示最大池化會在小區塊中取出數值最大的那個,聚焦於最強烈的特徵訊號;而平均池化則取該區塊中的平均值,使特徵圖整體趨於平滑,兩者本質上都是為了讓網路在保留關鍵訊息的同時,降低圖像維度與計算成本。

全連接層

經過前面的卷積與池化步驟後CNN已經完成了它的任務,它抽取了像是邊緣、紋理、形狀,甚至更抽象的高階概念,但接下來,一個問題浮現了:我們該如何根據這些特徵,做出具體的判斷? 這個答案就是全連接層(Fully Connected Layer)

所謂全連接其實就是我們的DNN,只不過接收的是特徵圖,而該層也是在 CNN 中進行「決策」的地方。例如,當我們訓練一個用來分類狗、貓、人臉的模型時,前面的卷積層與池化層負責抽取特徵,而全連接層則會根據這些特徵值,最終輸出「這張圖是哪一類」的判斷結果。

在實作上 CNN 中的特徵圖會先被攤平成一維向量,再送入一個或多個全連接層進行加權計算,並搭配**激勵函數(如 ReLU、Sigmoid 或 Softmax)**產出最終輸出。

簡單來說,卷積層與池化層像是圖像的觀察者,而全連接層則是做決定的人。這三者各司其職,構成了一個能夠學習、理解並判斷視覺資訊的完整神經網路架構。

下集預告

到這裡,我們已經完整理解了 CNN 的基本架構從卷積層如何提取特徵、池化層如何濃縮資訊、到全連接層如何完成分類判斷。明天我們將透過一個實際的圖像分類任務,一步步帶你用 PyTorch 從零建構 CNN 架構,讓你親手實踐今天所學的內容。

不只是學理更是實戰!但一旦動手實作,就會變得具體而清晰。


上一篇
【Day 7】PyTorch的威力, 20 行程式碼讓神經網路自己跑起來!
下一篇
【Day 9】60% 準確率只是起點用 CNN 與 CIFAR-10 探索深度學習優化之路
系列文
零基礎 AI 入門!從 Wx+b 到熱門模型的完整之路!10
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言