前向傳播與反向傳播


前向傳播

通過輸入樣本x及參數\(w^{[1]}\)\(b^{[1]}\)到隱藏層,求得\(z^{[1]}\),進而求得\(a^{[1]}\);
再將參數\(w^{[2]}\)\(b^{[2]}\)\(a^{[1]}\)一起輸入輸出層求得\(z^{[2]}\),進而求得\(a^{[2]}\);
最后得到損失函數:\(\mathcal{L}(a^{[2]},y)\),這樣一個從前往后遞進傳播的過程,就稱為前向傳播(Forward Propagation)

前向傳播過程中:

\[z^{[1]} = w^{[1]T}X + b^{[1]} \]

\[a^{[1]} = g(z^{[1]}) \]

\[z^{[2]} = w^{[2]T}a^{[1]} + b^{[2]} \]

\[a^{[2]} = σ(z^{[2]}) = sigmoid(z^{[2]}) \]

\[{\mathcal{L}(a^{[2]}, y)=-(ylog\ a^{[2]} + (1-y)log(1-a^{[2]}))} \]

在訓練過程中,經過前向傳播后得到的最終結果跟訓練樣本的真實值總是存在一定誤差,這個誤差便是損失函數。想要減小這個誤差,當前應用最廣的一個算法便是梯度下降,於是用損失函數,從后往前,依次求各個參數的偏導,這就是所謂的反向傳播(Back Propagation),一般簡稱這種算法為BP算法。

反向傳播

sigmoid函數的導數為:

\[{a^{[2]’} = sigmoid(z^{[2]})’ = \frac{\partial a^{[2]}}{\partial z^{[2]}} = a^{[2]}(1 - a^{[2]})} \]

由復合函數求導中的鏈式法則,反向傳播過程中:

\[da^{[2]} = \frac{\partial \mathcal{L}(a^{[2]}, y)}{\partial a^{[2]}} = -\frac{y}{a^{[2]}} + \frac{1 - y}{1 - a^{[2]}} \]

\[dz^{[2]} = \frac{\partial \mathcal{L}(a^{[2]}, y)}{\partial a^{[2]}} \cdot \frac{\partial a^{[2]}}{\partial z^{[2]}} = a^{[2]} - y \]

\[dw^{[2]} = \frac{\partial \mathcal{L}(a^{[2]}, y)}{\partial a^{[2]}} \cdot \frac{\partial a^{[2]}}{\partial z^{[2]}}\cdot \frac{\partial z^{[2]}}{\partial w^{[2]}} = dz^{[2]}\cdot a^{[1]T} \]

\[db^{[2]} = \frac{\partial \mathcal{L}(a^{[2]}, y)}{\partial a^{[2]}} \cdot \frac{\partial a^{[2]}}{\partial z^{[2]}}\cdot \frac{\partial z^{[2]}}{\partial b^{[2]}} = dz^{[2]} \]

\[da^{[1]} = \frac{\partial \mathcal{L}(a^{[2]}, y)}{\partial a^{[2]}} \cdot \frac{\partial a^{[2]}}{\partial z^{[2]}} \cdot \frac{\partial z^{[2]}}{\partial a^{[1]}} = dz^{[2]} \cdot w^{[2]} \]

\[dz^{[1]} = \frac{\partial \mathcal{L}(a^{[2]}, y)}{\partial a^{[2]}} \cdot \frac{\partial a^{[2]}}{\partial z^{[2]}} \cdot \frac{\partial z^{[2]}}{\partial a^{[1]}} \cdot \frac{\partial a^{[1]}}{\partial z^{[1]}}= dz^{[2]} \cdot w^{[2]} × g^{[1]’}(z^{[1]}) \]

\[dw^{[1]} = \frac{\partial \mathcal{L}(a^{[2]}, y)}{\partial a^{[2]}} \cdot \frac{\partial a^{[2]}}{\partial z^{[2]}} \cdot \frac{\partial z^{[2]}}{\partial a^{[1]}} \cdot \frac{\partial a^{[1]}}{\partial z^{[1]}} \cdot \frac{\partial z^{[1]}}{\partial w^{[1]}}= dz^{[1]} \cdot X^T \]

\[db^{[1]} = \frac{\partial \mathcal{L}(a^{[2]}, y)}{\partial a^{[2]}} \cdot \frac{\partial a^{[2]}}{\partial z^{[2]}} \cdot \frac{\partial z^{[2]}}{\partial a^{[1]}} \cdot \frac{\partial a^{[1]}}{\partial z^{[1]}} \cdot \frac{\partial z^{[1]}}{\partial b^{[1]}}= dz^{[1]} \]

這便是反向傳播的整個推導過程,在具體的算法實現過程中,使用梯度下降的方法,不斷進行更新。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM