用示例一步步解釋BP反向傳播神經網絡

Python中的反向傳播

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

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

反向傳播可視化

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

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

總覽

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

基本結構如下:

用示例一步步解釋BP反向傳播神經網絡

 

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

 

用示例一步步解釋BP反向傳播神經網絡

 

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

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

前進通道

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

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

 

用示例一步步解釋BP反向傳播神經網絡

 

 

用示例一步步解釋BP反向傳播神經網絡

 

計算總誤差

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

用示例一步步解釋BP反向傳播神經網絡

 

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

 

用示例一步步解釋BP反向傳播神經網絡

 

向後通行

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

輸出層

 

用示例一步步解釋BP反向傳播神經網絡

 

 

用示例一步步解釋BP反向傳播神經網絡

 

 

用示例一步步解釋BP反向傳播神經網絡

 

 

用示例一步步解釋BP反向傳播神經網絡

 

 

用示例一步步解釋BP反向傳播神經網絡

 

 

用示例一步步解釋BP反向傳播神經網絡

 

 

用示例一步步解釋BP反向傳播神經網絡

 

 

用示例一步步解釋BP反向傳播神經網絡

 

 

用示例一步步解釋BP反向傳播神經網絡

 

 

用示例一步步解釋BP反向傳播神經網絡

 

 

用示例一步步解釋BP反向傳播神經網絡

 
發佈了49 篇原創文章 · 獲贊 38 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章