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