卷積神經網路(Convolutional Neural Network, CNN)中反向傳播算法(Backpropagation)及如何進行參數更新。CNN 的反向傳播是訓練過程的關鍵,它使得網路中的權重得以更新,最終讓模型學會正確地從數據中提取特徵和進行分類。

反向傳播的核心目標是通過誤差函數(Loss Function)計算出每個層的參數(如卷積核、權重矩陣)對最終誤差的影響,並且通過計算梯度來更新這些參數。整個過程依賴於微積分中的鏈式法則,通過逐層計算梯度,從輸出層往輸入層反向傳遞。

對於卷積層,參數更新的步驟與全連接層略有不同,因為卷積層的權重是共享的,且卷積操作涉及多維數據。因此,反向傳播的數學推導在卷積層中有點難。


CNN 中的梯度下降法(Gradient Descent)

CNN 的訓練過程依賴於梯度下降法來最小化損失函數。基本思想是對損失函數 $L$ 對網路中每個參數進行微分,然後沿著負梯度的方向更新參數,使損失逐步減小。參數更新的公式如下:

$$ \theta = \theta - \eta \frac{\partial L}{\partial \theta} $$

其中:


CNN 中的反向傳播原理

反向傳播算法在 CNN 中的分成兩個部分:

  1. 前向傳播:輸入數據通過網路層逐層傳遞,並最終產生預測結果 $y_{\text{pred}}$。
  2. 反向傳播:通過計算每個層的梯度,將誤差從輸出層反向傳遞到輸入層,並更新權重參數。

1. 前向傳播

在 CNN 中,前向傳播涉及以下幾個步驟: