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中的反向傳播反向傳播可視化總覽前進通道計算總誤差向後通行