李越男 徐振平 馬心池



摘要:BP神經網絡由于其結構簡單、能夠自適應、自己學習,有著優越的非線性映射能力,使得它成為當下神經網絡應用中最為面面俱到的一種。但從數學角度看,標準BP神經網絡采用最速梯度下降法,所以收斂的速度較為緩慢,輕易就會陷入局部極小得不到全局最優、訓練次數要達到一定的數量、學習效率不容樂觀等缺點。文章以BP神經網絡作為研究對象,從四個方面來介紹BP神經網絡的整體框架,首先對BP網絡的原理和實現步驟進行了系統概述,其次針對其缺點提出了從增加動量項、自適應調節學習率和優化神經網絡結構進行改進方法,再次介紹BP算法相關的應用領域,最后進行總結。
關鍵詞:PB算法;學習率;誤差;梯度下降法
中圖分類號:TP311? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2022)11-0086-02
1 引言
BP(Back Propagation) 網絡[1]在1986年,由Rumelhart和McCelland為首的科學家小組提出,是一種按誤差逆傳播算法訓練的多層前饋網絡,是應用最廣泛的神經網絡模型之一。BP神經網絡是一種按誤差反向傳播(簡稱誤差反傳)訓練的多層前饋網絡,把這個算法稱為BP算法。
BP算法包括信號的正向傳播和誤差的反向傳播兩個過程。信號的前向傳播從輸入層經過隱含層到輸出層得到一個正向傳播的預測值。若預測值和實際值不相符合,則進行反向傳播,誤差由輸出層經過隱含層向輸入層反向傳播,根據誤差值修改權重,繼續迭代不斷修改權重,直到達到最優。標準BP算法采用的是最速梯度下降,存在收斂數度慢,容易陷入局部極小、訓練次數多、學習效率低等缺點。
由于BP算法自身存在的缺點,不少學者也對BP算法做出了大量的研究,如可以使BP神經網絡進行動態的全參數自調整學習[2],將動量法和批處理方法結合對BP算法改進[3]。本文主要針對標準反向傳播BP算法結構原理、實現步驟、改進方式及其應用這四個方向進行深入研究。對于BP算法所存在的缺點,討論從不同的方向上的改進措施。旨在讓讀者更好地了解與應用BP算法,并能做出進一步的深入研究。
2 反向傳播BP算法的原理與實現步驟
反向傳播的BP算法的基本思想就是通過計算輸出層與期望值之間的誤差來調整網絡參數,從而使得誤差變小。它的基本原理是梯度最速下降法,它的中心思想是調整權值使網絡總誤差最小。
多層網絡運用BP學習算法時,實際上包含了正向和反向傳播兩個階段。將誤差信號沿原來的連接通道返回,通過修改各層神經元的權值,使誤差信號最小。也就是說神經網絡是一種求解權重w的算法,分為信號“正向傳播(EP) ”求損失,也就是求得預測值和實際值之間的差值。“反向傳播(BP) ”傳回誤差,根據誤差值修改每層的權重w,繼續迭代。其中每一個神經元都經過了線性變化和激活函數的變換。
BP網絡由輸入層、隱藏層、輸出層組成。以三層感知器為例,其結構如圖1。
BP算法-EP過程:
在正向傳播過程中,輸入信息從輸入層經隱含層逐層處理,并傳向輸出層,每一層神經元的狀態只影響下一層神經元的狀態。如果在輸出層不能得到期望輸出,則轉入反向傳播。
其中輸出層A1~An是特征屬性,也可以進行多項式的擴展,如A2。隱層中每一個節點都是一個神經元,神經元M-P模型包含兩個部分如圖2所示,神經元包含[w]x+b的線性變換和f(wx+b)的激活函數轉換兩個部分。激活函數的變化乘以其對應的權重作為,下一層神經元的輸入。輸出層的節點也是包含這兩部分。最后Z1~Zk就是經過正向傳播函數變換后輸出的預測值。
① s是實際值;Z為預測值;則s-Z為誤差;[w]為某個節點的權重;y表示某個節點的輸出;m個神經元
② 1~l個輸出層節點的誤差之和,也就是神經網絡輸出層的整體誤差。
③ 輸出層誤差向前進行回傳,輸出層節點進行[fnetk]激活函數的變換,則將[Z]=[fnetk]帶入(1) 式后得到(2) 式。
④ 反向傳播過程中,根據神經元的線性變化和激活函數的變換可以得出:
[Zk]=[fnetk]=[fj=1mwjkyj]=[fj=0mwjkfnetj]=[fj=0mwjkfi=1nvijxi]?(4)
⑤ 為了使誤差E越來越小,可以采用隨機梯度下降算法進行[w]和[v]的求解,即讓求出的w和[v]使誤差E最小,[η]是初始化時給定的固定學習率。
[Δwjk=-η?E?wjk? j=0,1,2,…,m;k=1,2,…,l]? (5)
[Δvij=-η?E?viji=0,1,2,…,n;j=1,2,…,m]? (6)
3 BP算法的改進方向
由于標準BP算法采用的是最速梯度下降,因此存在收斂數度慢,容易陷入局部極小得不到全局最優、訓練次數多、學習效率低等缺點。查看相關文獻,國內外已經提出了不少改進算法,針對其缺點,比較具有代表性的改進方法有增加動量項、自適應調節學習率和優化神經網絡結構等。
增加動量項改進BP算法,主要是針對誤差曲面可能會出現又窄又深曲線引起訓練中的誤差來回震動。增加動量項公式如下:
[Δwt=ηδX+aΔwt-1] (7)
[α]為動量系數,一般有[α∈0,1]
權值[w]的修正由兩部分組成,第一,是由當前的梯度所決定,權值修正量[Δwt]和誤差信號成正比和某層的輸入X成正比。第二,是與上一次的修正量[wt-1]確定,而上一次的修正量取多少呢?取[α∈0,1],公式后面一項叫作動量項,其阻力作用,可以減少訓練中震蕩次數,增加收斂速度。
自適應調節率改進BP算法,針對初始化時給定的學習率[η]在整個實驗過程中不變,但誤差曲面較為平坦時,希望權值W調節得更快一些,對學習率[η]進行調節。由于[η]和梯度成正比,所以設一初始學習率,若經過一批次權值調整后使總誤差增大,則本次調整無效,且[η=ηββ<1];若經過一批次權值調整后使總誤差減小,則本次調整有效,且[η=θηθ>1]。
優化神經網絡結構改進BP算法,是針對隱含層的層數與隱節點的個數。實際求解問題時,網絡輸入層和輸出層節點個數一般根據問題的性質設定好了,但是隱節點的個數如何選擇,還是缺乏理論指導,往往根據經驗的積累和試探的方法。實踐證明,對于簡單的映射關系,在網絡精度達到要求的情況下,選擇少量的隱含層層數;對于復雜的映射關系,可以通過增加隱含層層數來確保映射關系的正確實現。
查閱相關文獻,BP神經網絡與遺傳算法、進化計算、人工免疫算法、模擬退火算法等新的算法進行結合,提出了一些新的混合算法,還有將BP算法和模糊數學相結合突出模糊神經網絡。這些結合使得BP算法進一步得到發展。
4 BP算法的應用
近年來,BP算法在多個領域都獲得了較好的發展。與其他學科技術相融合,對二者都有非常好的良性循環,如在土木工程應用中,對受損結構進行受損與否和受損部位定位與檢測等;在電力工業應用中,對光伏發電系統輸出功率短期預測模型[4];在化工學科中,在牽扯到非線性因素建模時的表現優異;在預測模型中,對多種情況的數據預測都體現了它的優勢所在,對不動產業售價與熱度評估,對影響因素與售價和熱度之間進行分析,如基于BP神經網絡對上市公司財務預警建立模型[5];同時在風險預警預測方面也有著非常廣泛的應用,如地震、海嘯檢測等,為以后的自然災害檢測方面提供了新方法新思路。
雖然BP算法目前應用面較為廣泛,但并不是一成不變的,BP網絡自身還存在著缺陷和需要改進之處,如學習收斂的速度并不理想、學習效率不夠穩定、可能會有局部極小的出現等。目前對于BP神經網絡,國內外的許多研究人員也提出了各種對BP算法進行的改進,如啟發式和與新理論相結合的方法,隨著技術的日益進步,算法會不斷得到優化,BP神經網絡也會有更好更廣泛的未來。
5 總結
本文系統地介紹了反向傳播BP算法的原理與實現步驟,針對標準BP算法目前存在的缺點對BP算法的常見改進方向做了詳細闡述。通過增加動量項、調整自適應學習率和優化神經網絡結構等方向來對BP算法做進一步的改進。由于BP神經網絡算法還存在許多問題,傳統的改進方法大多是對數值的優化進行改進。在未來的深入學習研究中,有望深入研究,提出新的改進方法或應用于新的領域。
參考文獻:
[1] David E. Rumelhart, Geoffrey E. Hinton & Ronald J. Williams Learning representations by back-propagating errors[J].Nature,1986.
[2] 李曉峰,劉光中.人工神經網絡BP算法的改進及其應用[J].四川大學學報(工程科學版),2000,32(2):105-109.
[3] 陳樺,程云艷.BP神經網絡算法的改進及在Matlab中的實現[J].陜西科技大學學報,2004,22(2):45-47.
[4] 丁明,王磊,畢銳.基于改進BP神經網絡的光伏發電系統輸出功率短期預測模型[J].電力系統保護與控制,2012,40(11):93-99,148.
[5] 楊淑娥,黃禮.基于BP神經網絡的上市公司財務預警模型[J].系統工程理論與實踐,2005,25(1):12-18,26.
收稿日期:2022-01-12
作者簡介:李越男(1996—) ,女,湖北荊州人,研究生在讀;通信作者:徐振平,男,副教授,博士;馬心池,男,研究生在讀。