三、反向傳播算法的案例
3.1、前向傳播計算
以下面神經網絡的基本結構,已對神經網絡進行了初始化,賦予了權重、偏置和輸入輸出:
對網絡開始前向傳播計算:
因爲h1使用了神經元激勵函數,所以h1的輸出爲:
同理可得,h2的輸出爲:
繼續前向傳播,計算o1節點的輸出爲:
同理,得到o2節點的輸出爲:
接下來就是計算總的誤差:
計算好誤差,接下倆就需要利用誤差來進行反向傳播,更新參數的值。
3.2、反向傳播計算
1、更新倒數第二層和輸出層之間的權值
首先考慮w5對最後總的誤差的影響,計算Etotal對w5的導數:
將Etotal對w5的求導進行分解:
將上面三式相乘求得Etotal對w5的導數:
所以可以計算得到:
同理,可得:
2、更新輸入層和第二層之間的權值
考慮w1對最後總的誤差的影響,計算Etotal對w1的導數:
具體分解如下圖:
對分解結果分別求解:
先求解上式的前一部分:
所以計算得到前一部分的解爲:
同理,可得:
因此,可得:
下面對outh1對neth1進行求導:
然後求neth1對w1的導數:
最後將上面得到的三部分結果相乘,得到Etotal對w1的導數:
然後對相應的權值進行更新:
同理,可計算得到:
至此已對整個網絡進行了一次參數更新。