天天看點

python 神經網絡預測結果畫圖_用示例一步步解釋BP反向傳播神經網絡Python中的反向傳播反向傳播可視化總覽前進通道計算總誤差向後通行

Python中的反向傳播

可以試用編寫的Python腳本,該腳本在此Github存儲庫中實作了反向傳播算法。

反向傳播代碼:https://github.com/mattm/simple-neural-network

反向傳播可視化

要獲得顯示神經網絡的互動式可視化效果,請檢視神經網絡可視化:

http://www.emergentmind.com/neural-network

總覽

在本教程中,我們将使用具有兩個輸入,兩個隐藏的神經元,兩個輸出神經元的神經網絡。另外,隐藏和輸出的神經元将包括偏差。

基本結構如下:

python 神經網絡預測結果畫圖_用示例一步步解釋BP反向傳播神經網絡Python中的反向傳播反向傳播可視化總覽前進通道計算總誤差向後通行

為了獲得一些數字,下面是初始權重,偏差和訓練輸入/輸出:

python 神經網絡預測結果畫圖_用示例一步步解釋BP反向傳播神經網絡Python中的反向傳播反向傳播可視化總覽前進通道計算總誤差向後通行

反向傳播的目标是優化權重,以便神經網絡可以學習如何正确地将任意輸入映射到輸出。

對于本教程的其餘部分,我們将使用單個訓練集:給定輸入0.05和0.10,我們希望神經網絡輸出0.01和0.99。

前進通道

首先,讓我們看看在上述權重和偏差以及輸入為0.05和0.10的情況下,神經網絡目前預測的結果。

為此,我們将通過網絡提供這些輸入。我們計算出每個隐含層神經元的總輸入,使用激活函數(這裡我們使用邏輯函數)壓縮總輸入,然後對輸出層神經元重複這個過程。

python 神經網絡預測結果畫圖_用示例一步步解釋BP反向傳播神經網絡Python中的反向傳播反向傳播可視化總覽前進通道計算總誤差向後通行
python 神經網絡預測結果畫圖_用示例一步步解釋BP反向傳播神經網絡Python中的反向傳播反向傳播可視化總覽前進通道計算總誤差向後通行

計算總誤差

現在,我們可以使用平方誤差函數計算每個輸出神經元的誤差,并對它們求和以獲得總誤差:

python 神經網絡預測結果畫圖_用示例一步步解釋BP反向傳播神經網絡Python中的反向傳播反向傳播可視化總覽前進通道計算總誤差向後通行

該1/2包括在内,以便我們以後區分該指數被取消。無論如何,最終結果還是要乘以學習率,是以我們在此處引入常數[ 1 ] 都沒關系。

python 神經網絡預測結果畫圖_用示例一步步解釋BP反向傳播神經網絡Python中的反向傳播反向傳播可視化總覽前進通道計算總誤差向後通行

向後通行

我們反向傳播的目标是更新網絡中的每個權重,以便它們使實際輸出更接近目标輸出,進而将每個輸出神經元和整個網絡的誤差最小化。

輸出層

python 神經網絡預測結果畫圖_用示例一步步解釋BP反向傳播神經網絡Python中的反向傳播反向傳播可視化總覽前進通道計算總誤差向後通行
python 神經網絡預測結果畫圖_用示例一步步解釋BP反向傳播神經網絡Python中的反向傳播反向傳播可視化總覽前進通道計算總誤差向後通行
python 神經網絡預測結果畫圖_用示例一步步解釋BP反向傳播神經網絡Python中的反向傳播反向傳播可視化總覽前進通道計算總誤差向後通行
python 神經網絡預測結果畫圖_用示例一步步解釋BP反向傳播神經網絡Python中的反向傳播反向傳播可視化總覽前進通道計算總誤差向後通行
python 神經網絡預測結果畫圖_用示例一步步解釋BP反向傳播神經網絡Python中的反向傳播反向傳播可視化總覽前進通道計算總誤差向後通行
python 神經網絡預測結果畫圖_用示例一步步解釋BP反向傳播神經網絡Python中的反向傳播反向傳播可視化總覽前進通道計算總誤差向後通行
python 神經網絡預測結果畫圖_用示例一步步解釋BP反向傳播神經網絡Python中的反向傳播反向傳播可視化總覽前進通道計算總誤差向後通行
python 神經網絡預測結果畫圖_用示例一步步解釋BP反向傳播神經網絡Python中的反向傳播反向傳播可視化總覽前進通道計算總誤差向後通行
python 神經網絡預測結果畫圖_用示例一步步解釋BP反向傳播神經網絡Python中的反向傳播反向傳播可視化總覽前進通道計算總誤差向後通行
python 神經網絡預測結果畫圖_用示例一步步解釋BP反向傳播神經網絡Python中的反向傳播反向傳播可視化總覽前進通道計算總誤差向後通行
python 神經網絡預測結果畫圖_用示例一步步解釋BP反向傳播神經網絡Python中的反向傳播反向傳播可視化總覽前進通道計算總誤差向後通行