BP神經網絡(Backpropagation Neural Network)是一種常用的多層前饋神經網絡,通過反向傳播算法進行訓練。反向傳播算法的核心思想是通過計算損失函數對每個權重的偏導數,從而調整權重,使得網絡的預測輸出與真實輸出之間的誤差最小。下面是反向傳播算法的公式推導過程:
1. 前向傳播(Forward Propagation)
假設我們有一個三層神經網絡(輸入層、隱藏層和輸出層),并且每層的激活函數為 sigmoid 函數。
- 輸入層:
- 隱藏層:
- 輸出層:
各層之間的權重分別為:
- 輸入層到隱藏層的權重:
- 隱藏層到輸出層的權重:
對于第 j 個隱藏層神經元,其輸入為:
其輸出為:
對于第? 個輸出層神經元,其輸入為:
其輸出為:
其中,?是激活函數(sigmoid 函數):
2. 計算損失函數(Loss Function)
假設損失函數為均方誤差(MSE):
其中, 是網絡的預測輸出,
是真實輸出。
?3. 反向傳播(Backpropagation)
反向傳播的目標是計算損失函數對每個權重的偏導數,并根據梯度下降法更新權重。
3.1 輸出層的誤差項
首先計算輸出層的誤差項:
由于:
所以:
3.2 隱藏層的誤差項
接下來計算隱藏層的誤差項:
其中:
所以:
3.3 更新權重
根據梯度下降法更新權重:
其中,?是學習率。