CNN 的學習循環:
圖片來自:https://anstekadi.com/article/Detail/3315
Forward Pass:輸入 → 特徵提取 → 分類
Loss 計算:比較輸出與真實答案
Backward Pass:誤差回傳,計算梯度
Update:更新權重,提升模型能力
昨天我們看了 CNN 如何一步步把圖片「看懂」,今天要換個角度:如果 CNN 判斷錯了,它要怎麼「修正自己」?
答案就是 —— 反向傳播 (Backpropagation)
一、定義錯誤:損失函數 (Loss Function)
在 CNN 的世界裡,錯誤是透過 損失函數 (Loss) 來衡量的。它比較模型的輸出和真實答案 (Ground Truth),差距越大,Loss 就越高。可以把它想像成遊戲裡的「扣血數字」,打得不準,血條掉得越多。
二、學習方向:梯度與鏈鎖律 (Gradient & Chain Rule)
為了修正錯誤,CNN 需要知道「往哪裡調整才會更好」。
這就是 梯度 (Gradient) 的工作:計算 Loss 對每個參數的偏導數 (∂L/∂W)。
反向傳播 (Backpropagation) 則是讓這些誤差訊號從輸出層一路「倒流」回前面每一層,靠的是 鏈鎖律 (Chain Rule)。就像一條流水線,誤差能層層傳遞,告訴每個 Filter 該怎麼改。
三、權重優化:梯度下降與更新
計算出梯度後,CNN 會用 梯度下降法 (Gradient Descent) 來更新權重。
公式:
在 Pooling 層,梯度只會回傳到當初被選為最大值的位置;在 卷積層,Filter 的權重會被調整,慢慢變成能專門偵測某些特徵的「利器」。這就像角色每次被 BOSS 打敗,都會調整戰術、換裝備,直到能打贏為止。