1. 程式人生 > >【機器學習筆記20】神經網路(鏈式求導和反向傳播)

【機器學習筆記20】神經網路(鏈式求導和反向傳播)

【參考文獻】 【1】《面向機器智慧的TensorFlow實踐》4.7

假設存在網路結果如下

在這裡插入圖片描述

各個層輸出定義

L1=sigmoid(w1x)L_1 = sigmoid(w_1 \cdot x) L2=sigmoid(w2L1)L_2 = sigmoid(w_2 \cdot L_1) L3=sigmoid(w3L2)L_3 = sigmoid(w_3 \cdot L_2)

定義整個網路最終的損失函式為 loss=Loss(L3,yexpect)loss = Loss(L_3, y_{expect})

對損失函式求w3w_3偏導數,得到

lossw3=Loss(L3,yexpect)sigmoid(w3,L2)L2\dfrac{\partial loss}{\partial w_3}=Loss'(L_3, y_{expect})sigmoid'(w_3, L_2)L_2

同理我們得到對w2w_2w1w_1的偏導數 lossw2=Loss(L3,yexpect)sigmoid(

w3,L2)sigmoid(w2,L1)L1\dfrac{\partial loss}{\partial w_2}=Loss'(L_3, y_{expect})sigmoid'(w_3, L_2)sigmoid'(w_2, L_1)L_1

lossw1=Loss(L3,yexpect)sigmoid(w3,L2)sigmoid(w2,L1)sigmoid(w1,x)x\dfrac{\partial loss}{\partial w_1}=Loss'(L_3, y_{expect})sigmoid'(w_3, L_2)sigmoid'(w_2, L_1)sigmoid'(w_1, x)x

綜上所述,我們將整個求導公式簡寫 lossw3=LossL3L2\dfrac{\partial loss}{\partial w_3}=Loss'L_3'L_2 lossw2=LossL3L2L1\dfrac{\partial loss}{\partial w_2}=Loss'L_3'L_2'L1 lossw1=LossL3L2L1x\dfrac{\partial loss}{\partial w_1}=Loss'L_3'L_2'L1x

可以看到規律在反向求導中,每一次計算都可以重用前一層的計算結果,這也就是所謂的反向傳播演算法。