昨天我們聊到神經網路與多層結構,今天要正式踏進影像辨識的「明星技能」:卷積神經網路 (Convolutional Neural Network, CNN)。CNN 是電腦視覺領域的核心技術,它能夠自動提取圖片特徵,並廣泛應用於手寫數字辨識、人臉辨識、自駕車、醫學影像,甚至到現今的 AI 繪圖基礎裡。傳統機器學習需要我們手動設計特徵(例如提取邊緣、角點),但 CNN 能自動學習,前層捕捉邊緣與紋理,中層識別形狀與局部結構,後層則能辨識完整的物件。這個過程就像遊戲裡的「鷹眼技能」,幫助角色從雜亂的畫面中鎖定重點。
CNN 的發展歷史
CNN 的發展歷程就像一場接力賽,每個時代的突破都為下一個世代奠定基礎。首先是 LeNet (1998),由 Yann LeCun 所提出,它第一次將 CNN 成功應用在手寫數字辨識 (MNIST) 任務上,雖然架構只有兩層卷積與池化層,但它奠定了 CNN 的基本雛形。
真正引爆深度學習浪潮的是 AlexNet (2012),由 Alex Krizhevsky 團隊在 ImageNet 比賽中實現了里程碑式的突破。它使用了更深的卷積層,並引入 ReLU 激活函式、多重 GPU 訓練與 Dropout 技術以減少過擬合,成功將 Top-5 錯誤率從 26% 降至 16.4%,震驚了學術界。
接著,英國牛津大學的團隊在 2014 年提出了 VGG,證明了「網路越深,表現越好」的理念。他們主要使用 3x3 的小型卷積核進行多層堆疊,這種規則性的設計讓 VGG-16 與 VGG-19 成為了後續研究的基準模型。同年,Google 也提出了 GoogLeNet,這個模型引入了 Inception Module,讓網路在同一層能同時處理不同尺寸的卷積,並用 1x1 卷積來減少參數,證明了不只深度,好的架構設計同樣能提升效能。
到了 2015 年,微軟研究團隊的 ResNet 解決了深度網路訓練時的「梯度消失」問題。他們提出的 Residual Block (殘差連接) 允許資訊跳過某些層直接傳遞,使得網路可以堆疊到驚人的 152 層,並首次在 ImageNet 比賽中達到比人類更高的準確度。這個創新開啟了「超深網路」的時代,甚至啟發了後續的 Transformer 架構。
而在 ResNet 之後,研究人員繼續尋找更優化的網路結構。2016 年,DenseNet 提出了 Feature Reuse (特徵重用) 的概念,將所有前一層的特徵圖直接連接到後續的每一層,有效解決了梯度消失並減少了參數數量。2017 年的 SENet 則引入了 Squeeze 與 Excitation 機制,讓網路能夠學習不同通道的重要性,並自動強化有用的特徵,在不增加太多計算成本的情況下提升了準確性。
我們看過 CNN 的發展歷史,知道它能從邊緣一路學到完整物件。
但問題來了:這些網路到底是怎麼「學」的?
一張圖片進來,電腦怎麼知道要調整哪個濾波器、怎麼更新權重,最後才變得越來越準?
答案就在 CNN 的「訓練流程」裡:先往前算 (Forward),再往後修 (Backward)