日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

​通俗理解神经网络BP反向传播算法

發布時間:2023/12/3 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ​通俗理解神经网络BP反向传播算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載自???通俗理解神經網絡BP反向傳播算法

通俗理解神經網絡BP反向傳播算法

在學習深度學習相關知識,無疑都是從神經網絡開始入手,在神經網絡對參數的學習算法bp算法,接觸了很多次,每一次查找資料學習,都有著似懂非懂的感覺,這次趁著思路比較清楚,也為了能夠讓一些像我一樣疲于各種查找資料,卻依然懵懵懂懂的孩子們理解,參考了梁斌老師的博客BP算法淺談(Error Back-propagation)(為了驗證梁老師的結果和自己是否正確,自己python實現的初始數據和梁老師定義為一樣!),進行了梳理和python代碼實現,一步一步的幫助大家理解bp算法!

為了方便起見,這里我定義了三層網絡,輸入層(第0層),隱藏層(第1層),輸出層(第二層)。并且每個結點沒有偏置(有偏置原理完全一樣),激活函數為sigmod函數(不同的激活函數,求導不同),符號說明如下:

對應網絡如下:

?

其中對應的矩陣表示如下:

首先我們先走一遍正向傳播,公式與相應的數據對應如下:

那么:

同理可以得到

那么最終的損失為

我們當然是希望這個值越小越好。這也是我們為什么要進行訓練,調節參數,使得最終的損失最小。這就用到了我們的反向傳播算法,實際上反向傳播就是梯度下降法中(為什么需要用到梯度下降法,也就是為什么梯度的反方向一定是下降最快的方向,我會再寫一篇文章解釋,這里假設是對的,關注bp算法)鏈式法則的使用。

?

下面我們看如何反向傳播

根據公式,我們有:

這個時候我們需要求出C對w的偏導,則根據鏈式法則有

上面插入sigmod函數求導公式:

(在這里我們可以看到不同激活函數求導是不同的,所謂的梯度消失,梯度爆炸如果了解bp算法的原理,也是非常容易理解的!)
同理有

到此我們已經算出了最后一層的參數偏導了.我們繼續往前面鏈式推導:

我們現在還需要求

下面給出其中的一個推到,其它完全類似

同理可得到其它幾個式子:

則最終的結果為:

再按照這個權重參數進行一遍正向傳播得出來的Error為0.165

而這個值比原來的0.19要小,則繼續迭代,不斷修正權值,使得代價函數越來越小,預測值不斷逼近0.5.我迭代了100次的結果,Error為5.92944818e-07(已經很小了,說明預測值與真實值非常接近了),最后的權值為:

好了,bp過程可能差不多就是這樣了,可能此文需要你以前接觸過bp算法,只是還有疑惑,一步步推導后,會有較深的理解。

?

分享鏈接:

中文版資料:鏈接:http://pan.baidu.com/s/1mi8YVri 密碼:e7do

下面給出我學習bp時候的好的博客

Backpropagation (里面的插圖非常棒,不過好像有點錯誤,歡迎討論~)

A Neural Network in 11 lines of Python (Part 1)(非常贊的博客,每個代碼一行一行解釋)

Neural networks and deep learning ? ? (很好的深度學習入門書籍,實驗室力推!我有中文翻譯版,歡迎留言)

?

上面實現的python代碼如下:

源文件下載鏈接如下:http://pan.baidu.com/s/1slpmYPR

?

我也是在學習過程中,歡迎大家提出錯誤問題。真心希望加深大家對bp算法的理解。

參考自梁斌老師博客.

總結

以上是生活随笔為你收集整理的​通俗理解神经网络BP反向传播算法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。