筆試準備(一)——前向傳播算法(Forward propagation)與反向傳播算法(Back propagation)

研一的時候上過深度學習的課,但是很久沒複習忘得差不多了,趁着找工作準備筆試面試的機會把之前模糊的概念再複習一下。

假設初始的三層網絡結構如圖,其中激活函數爲sigmod函數,損失函數C爲均方誤差。

首先進行前向傳播:

同理,下一級:

最終的損失爲:

先將鏈式法則中需要用到的函數列出:

然後根據鏈式法則,計算:

關於橙色部分的推導爲:

則更新後的weights爲:

其中,奇怪的希臘字母是學習率。

同理,可以計算其他所有的weights,這裏再舉一例:

-------------------------------------------------------------------------------------------

再從頭理一遍:

前向傳播的意思就是往前計算,即從x經過w到y的過程,y = wx

反向傳播的意思就是往後計算,即通過y和y_out的偏差,反向推導出偏導數,來更新w成爲w'的過程;

之後神經網絡又通過更新了的參數w',計算y'=w'x

再反向,求出w''

……

如此循環往復,就會使得y'''''(很多')'''逐漸接近y_out

這就是BP算法。

-------------------------------

最後一個小點就是學習率(那個奇怪的希臘字母)

它控制的是參數更新的“步長”

圖中黑色是要擬合的曲線,假設橙色的步長爲0.001,綠色的步長爲0.1,步長小的能夠更好的擬合曲線,但是訓練較慢,步長大的訓練快,但是可能會錯過最優解。

所以訓練中一般是先用大的學習率,一段時間後將學習率逐步變小。

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章