1. 程式人生 > >反向傳播演算法(BP演算法)

反向傳播演算法(BP演算法)

具體實現:
https://yongyuan.name/blog/back-propagtion.html

反向傳播演算法(Backpropagation)是目前用來訓練人工神經網路(Artificial Neural Network,ANN)的最常用且最有效的演算法。其主要思想是:
(1)將訓練集資料輸入到ANN的輸入層,經過隱藏層,最後達到輸出層並輸出結果,這是ANN的前向傳播過程;
(2)由於ANN的輸出結果與實際結果有誤差,則計算估計值與實際值之間的誤差,並將該誤差從輸出層向隱藏層反向傳播,直至傳播到輸入層;
(3)在反向傳播的過程中,根據誤差調整各種引數的值;不斷迭代上述過程,直至收斂。

1.變數定義

在這裡插入圖片描述

在這裡插入圖片描述

2.代價函式

在這裡插入圖片描述

3. 公式及其推導

本節將介紹反向傳播演算法用到的4個公式,並進行推導。如果不想了解公式推導過程,請直接看第4節的演算法步驟。
首先,將第l層第j個神經元中產生的錯誤(即實際值與預測值之間的誤差)定義為:
在這裡插入圖片描述
本文將以一個輸入樣本為例進行說明,此時代價函式表示為:
在這裡插入圖片描述

公式1(計算最後一層神經網路產生的錯誤):

在這裡插入圖片描述

公式2(由後往前,計算每一層神經網路產生的錯誤):

在這裡插入圖片描述

公式3(計算權重的梯度):

在這裡插入圖片描述

公式4(計算偏置的梯度):

在這裡插入圖片描述

4. 反向傳播演算法虛擬碼

在這裡插入圖片描述