日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

反向傳播BP學習算法Gradient?Descent的推導過程_相關技巧

作者:Cyril_KI ? 更新時間: 2022-07-04 編程語言

BP算法是適用于多層神經網絡的一種算法,它是建立在梯度下降法的基礎上的。本文著重推導怎樣利用梯度下降法來minimise Loss Function。

給出多層神經網絡的示意圖:

1.定義Loss Function

每一個輸出都對應一個損失函數L,將所有L加起來就是total loss。

那么每一個L該如何定義呢?這里還是采用了交叉熵,如下所示:

最終Total Loss的表達式如下:

2.Gradient Descent

L對應了一個參數,即Network parameters θ(w1,w2…b1,b2…),那么Gradient Descent就是求出參數 θ?來minimise Loss Function,即:

梯度下降的具體步驟為:

圖源:李宏毅機器學習講稿

3.求偏微分

從上圖可以看出,這里難點主要是求偏微分,由于L是所有損失之和,因此我們只需要對其中一個損失求偏微分,最后再求和即可。

先抽取一個簡單的神經元來解釋:

因為我們并不知道后面到底有多少層,也不知道情況到底有多復雜,我們不妨先取一種最簡單的情況,如下所示:

4.反向傳播

l對兩個z的偏導我們假設是已知的,并且在這里是作為輸入,三角形結構可以理解為一個乘法運算電路,其放大系數為 σ′(z)。但是在實際情況中,l對兩個z的偏導是未知的。假設神經網絡最終的結構就是如上圖所示,那么我們的問題已經解決了:

其中:

但是假如該神經元不是最后一層,我們又該如何呢?比如又多了一層,如下所示:

原理跟上面類似,如下所示:

那假設我們再加一層呢?再加兩層呢?再加三層呢?。。。,情況還是一樣的,還是先求l對最后一層z的導數,乘以權重相加后最后再乘上 σ′(z′′,z′′′,...)即可。

最后給一個實例:

它的反向傳播圖長這樣:

我們不難發現,這種計算方式很清楚明了地體現了“反向傳播”四個字。好了,目標達成!!

5.總結

原文鏈接:https://blog.csdn.net/Cyril_KI/article/details/107030538

欄目分類
最近更新