BP神經網路模型與學習演算法_神經網路

來源:互聯網
上載者:User

在感知器神經網路模型與線性神經網路模型學習演算法中,理想輸出與實際輸出之差被用來估計神經元串連權值誤差。當解決線性不可分問題而引入多級網路後,如何估計網路隱含層神經元的誤差就成了一大難題。因為在實際中,無法知道隱含層的任何神經元的理想輸出值。1985年Rumelhart、McClelland提出了BP網路的誤差反向後傳(BP)學習演算法,實現了Minsky設想的多層神經網路模型。

BP演算法在於利用輸出後的誤差來估計輸出層的直接前置層的誤差,再用這個誤差估計更前一層的誤差,如此一層一層的反傳下去,就獲得了所有其他各層的誤差估計。使用BP演算法進行學習的多級肺迴圈網路稱為BP網路,屬於前向神經網路類型。雖然這種誤差估計本身的精度會隨著誤差本身“向後傳播”而不斷降低,但它還是給多層網路的訓練提供了比較有效辦法,加之多層前向神經網路能逼近任意非線性函數。 BP神經網路模型

構成BP網路的神經元仍然是神經元。按照BP演算法的要求,這些神經元所用的啟用函數必須處處可導。一般都使用S型函數。對一個神經元來說,它的網路輸入可以表示為: net=x→⋅ω→

其中 x→ 表示該神經元所接受的輸入, ω→ 表示神經元對應的串連權值。

該神經元的輸出為: y=f(net)=11+e−net

進一步地,我們可以求y關於net的導數:
f′(net)=e−net(1+e−net)2=1+e−net−1(1+e−net)2=11+e−net−1(1+e−net)2=y(1−y)

顯然地 我們可以注意到 limnet→+∞11+e−net=1limnet→−∞1(1+e−net)2=0

根據S型啟用函數可知,y的範圍為(0, 1), 從而,f’(net)的範圍為(0, 0.25),而且是在y=0.5時,f’(x)有最大值。 BP網路的標準學習演算法

標準BP演算法是基於梯度下降法的學習演算法,學習過程是通過調整權值和閾值,使刪除期望值和神經網路實際輸出值的均方誤差地區最小而實現的,但是它只用到均方誤差函數對權值和閾值的一階導數(梯度)的資訊,使得演算法存在收斂速度緩慢、容易陷入局部極小等缺陷。

定義:
* 輸入向量 x→
* 隱含層輸入向量 hi→
* 隱含層輸出向量 ho−→
* 輸出層輸入向量 yi→
* 輸出層輸出向量 yo→
* 期望輸出向量 d→
* 輸入層與隱含層的串連權值 ωih
* 隱含層與輸出層的串連權值 ωho
* 隱含層各神經元的閾值 bh
* 輸出層各神經元的閾值 bo
* 樣本資料個數 k
* 啟用函數 f(⋅)

BP標準演算法具體實現步驟如下:
1. 網路初始化,給 wih who bh bo 分別賦一個區間(-1, 1)內的隨機數,並設定誤差函數為
e=12∑o=1q(do(k)−yo(k))2 給定計算精度值 ε 和最大學習次數M
2. 隨機選取第k個輸入樣本 x(k)−→− 以及對應的期望輸出 d(k)−→−
3. 計算隱含層各神經元的輸入 hih(k) ,然後用輸入以及啟用Function Compute隱含層各神經元的輸出 hoh(k)
hih(k)=∑inwihxi(k)−bhhoh(k)=f(hih(k))yio(k)=∑hpwhohoh(k)−boyoo(k)=f(yio(k))
4. 利用網路期望輸出向量 d(k)−→− 網路的實際輸出 yoo(k) ,計算誤差函數對輸出層各神經元的偏導數 δo(k)
δo(k)=(do(k)−yoo(k))yoo(k)(1−yoo(k))
5. 利用隱含層到輸出曾的串連權值 who(k) 、輸出層的 δo(k) 和隱含層的輸出 hoh(k) 計算誤差函數對隱含層各神經元的偏導數 δh(k)
δh(k)=[∑o=1qδo(k)who]hoh(k)(1−hoh(k))
6. 利用輸出層各神經元的 δo(k) 和隱含層各神經元的輸出 hoh(k) 來修正串連權值 who(k) 和閾值 bo(k) :
wN+1ho(k)=wNho(k)+ηδo(k)hoh(k)bN+1o(k)=bNo(k)+ηδo(k)
N為調整前,N+1為調整後, η 為學習率, 在(0, 1) 之間取值。
7. 使用隱含層各神經元的 δh(k) 和輸入層各神經元的輸入 xi(k) 修正串連權和閾值 wN+1ih=wNih+ηδh(k)xi(k)bN+1h(k)=bN+1h(k)+ηδh(k)
8. 計算全域誤差E E=12m∑k=1m∑o=1q(do(k)−yo(k))2
9. 判斷網路誤差是否滿足要求,當 E<ε 或學習次數大於設定的最大次數M,則演算法結束。否則,隨機選取下一個學習樣本及對應年的期望輸出,返回到第三步,進入下一輪的學習過程。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.