反向傳播BP學習算法Gradient?Descent的推導過程
BP算法是適用于多層神經(jīng)網(wǎng)絡的一種算法,它是建立在梯度下降法的基礎上的。本文著重推導怎樣利用梯度下降法來minimise Loss Function。
給出多層神經(jīng)網(wǎng)絡的示意圖:
1.定義Loss Function
每一個輸出都對應一個損失函數(shù)L,將所有L加起來就是total loss。
那么每一個L該如何定義呢?這里還是采用了交叉熵,如下所示:
最終Total Loss的表達式如下:
2.Gradient Descent
L對應了一個參數(shù),即Network parameters θ(w1,w2…b1,b2…),那么Gradient Descent就是求出參數(shù) θ∗來minimise Loss Function,即:
梯度下降的具體步驟為:
3.求偏微分
從上圖可以看出,這里難點主要是求偏微分,由于L是所有損失之和,因此我們只需要對其中一個損失求偏微分,最后再求和即可。
先抽取一個簡單的神經(jīng)元來解釋:
因為我們并不知道后面到底有多少層,也不知道情況到底有多復雜,我們不妨先取一種最簡單的情況,如下所示:
4.反向傳播
l對兩個z的偏導我們假設是已知的,并且在這里是作為輸入,三角形結構可以理解為一個乘法運算電路,其放大系數(shù)為 σ′(z)。但是在實際情況中,l對兩個z的偏導是未知的。假設神經(jīng)網(wǎng)絡最終的結構就是如上圖所示,那么我們的問題已經(jīng)解決了:
其中:
但是假如該神經(jīng)元不是最后一層,我們又該如何呢?比如又多了一層,如下所示:
原理跟上面類似,如下所示:
那假設我們再加一層呢?再加兩層呢?再加三層呢?。。。,情況還是一樣的,還是先求l對最后一層z的導數(shù),乘以權重相加后最后再乘上 σ′(z′′,z′′′,...)即可。
最后給一個實例:
它的反向傳播圖長這樣:
我們不難發(fā)現(xiàn),這種計算方式很清楚明了地體現(xiàn)了“反向傳播”四個字。好了,目標達成??!
5.總結
以上就是反向傳播BP學習算法-Gradient Descent的推導過程的詳細內(nèi)容,更多關于BP反向傳播Gradient Descent推導的資料請關注腳本之家其它相關文章!
相關文章
在IDEA(2020.2)中配置Git及使用Git的圖文詳解
這篇文章主要介紹了在IDEA(2020.2)中配置Git及使用Git的圖文詳解,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-12-12反向傳播BP學習算法Gradient?Descent的推導過程
這篇文章主要為大家介紹了反向傳播BP學習算法-Gradient?Descent的推導過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-05-05使用VSCode如何從github拉取項目的實現(xiàn)
這篇文章主要介紹了使用VSCode如何從github拉取項目的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-08-08