簡單的說鍊式法則就是原本y對x求偏導,但是由于過程較為複雜,我們引入了一個中間層z,先利用y對z求偏導,在乘上z對x求偏導,這樣會使整個計算更為簡單。
作用:通過鍊式法則我們就可以把最後一層的誤差,一層一層的輸出到中間層上面去,進而得到中間層的梯度資訊,通過梯度資訊我們就能很好的更新權值,進而達到更好的優化效果。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL0EkeNBTQE1EeVpHW3BjMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLzUzMyMDNwMjM4ITMwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
從上面可以知道E為最右邊,當E對w1做偏微分,可以更新w1;同理E對w2做偏微分,就更新w2.
從X到E之間我們經曆了O1和O2,通過鍊式法則,從一個複雜的偏微分,就變成了三個簡單的偏微分求解,使操作更為簡單。
實際代碼:
72行意思就是y2對y1求偏導,73行意思就是y1對w1求偏導,74行意思就是d2對w1求偏導,75行(通過鍊式法則)和76行表示所得結果都是一樣的,這就表明鍊式法則是完全符合神經網絡的。