back-propagation(反向傳播)算法是神經網絡算法中優化參數的一種經常使用的算法,它創建在Gradient Descent算法的基礎上。算法
對一個神經網絡算法:
網絡
咱們定義L表明神經網絡算法的層數,表明第j層第i個節點的激勵,表明將函數從第j層映射到第j+1層的參數矩陣,定義,使其知足。機器學習
在Andrew Ng的機器學習視頻中,使用Gradient Descent優化參數通常步驟是:函數
最後根據,按照梯度降低算法求解參數。學習
看到這裏,咱們也許會對二、3步產生疑問,二、3步時如何產生的?下面咱們就來推導反向傳播算法:
首先忽略正則部分,這部分對反向傳播算法沒有影響。爲了看起來簡潔明瞭,咱們假設訓練集只有一個樣本,將cost function重寫爲:優化
當l=L-1時,運用鏈式法則,求cost function的偏導數:spa
令,不難發現
3d
令l=L-2,求cost function的偏導數:視頻
令,有
blog
這裏有個須要注意的地方:使用鏈式法則求J(theta)對
求偏導的時候,不要忘記求和符號,由於輸出層的每個節點都是的函數。
按照上面的步驟依次類推下去,咱們發現後面的每個偏導數,均可以寫成
綜上所述,咱們即可得知上面的四個步驟是如何得來的。