BP神经网络算法推导
一:算法推導
神經網絡通過模擬人的神經元活動,來構造分類器。它的基本組成單元稱為”神經元”,離線情況下如果輸入大于某值時,設定神經元處于興奮狀態,產生輸出,否則不響應。而這個輸入來自于所有其它的神經元。而神經元的響應函數有多種(需要滿足可微,這種簡單的函數可以擬合任何非線性函數),本文選擇sigmod函數。關于基礎知識在此不在多說,這里主要介紹一下BP神經網絡,并推導權值和閾值的更新公式。
?
BP網絡通過前向反饋誤差來改變權值和閾值,當網絡的輸出與實際期望的輸出均方誤差低于某個閾值或者學習次數滿足一定條件時,訓練完成。首先給出輸出均方誤差的公式:
?
?
其中,m是輸出節點個數,p是訓練樣本個數。我們就是以最小化這個EA為目標更新網絡參數。這里以3層網絡為例進行推導,即一個輸入層、隱含層、輸出層。最小化目標函數采用梯度下降的方法。
1、隱含層到輸出層的權值更新
K為隱含層節點數,i為輸出節點個數。權值更新公式:
?
其中wki表示第k個隱含節點到第i個輸出節點之間的權重,η為學習率,是一個使得求解快速收斂的學習因子,為EA關于wki的梯度。即:
因為:
,其中,激活函數對x求導后,y'=y(1-y),所以進一步求得:
這就是wki的梯度值。記:
,表示為權值的增量,則權值更新可寫成:
其中增量:
所以根據這個式子我們就可以更新權值了。
?
2.輸入層到隱含層的權值更新
?
同理,誤差關于權值的梯度可通過以下式子求解,與上面有點不同的是:輸入層與隱含節點之間的權值將影響所有的隱含節點到輸出層之間的值,所以此時的權值梯度信息應該對誤差在隱含層與輸出層之間產生累加效應。廢話不多說,直接上圖上公式更明了:
其中,
所以這一層的權值增量也可以寫成這樣的形式:
參考:
?
http://www.cnblogs.com/hellope/archive/2012/07/05/2577814.html
http://baike.baidu.com/view/1753676.htm
總結
以上是生活随笔為你收集整理的BP神经网络算法推导的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 径向基函数(RBF)神经网络
- 下一篇: 三线性插值