王芳芳
摘 ? 要:BP神經(jīng)網(wǎng)絡結構簡單,操作性強,被廣泛應用到各個領域。本文介紹了BP神經(jīng)網(wǎng)絡的算法機理,根據(jù)實際經(jīng)驗總結了訓練過程、Matlab程序?qū)崿F(xiàn)及注意事項,總結BP神經(jīng)網(wǎng)絡在應用中的局限及改進方法,對后續(xù)研究有一定的指導意義。
關鍵詞:BP神經(jīng)網(wǎng)絡 ?算法 ?原理 ?應用 ?局限性
中圖分類號:TP39 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文獻標識碼:A ? ? ? ? ? ? ? ? ? ? ? 文章編號:1674-098X(2020)05(a)-0150-02
神經(jīng)網(wǎng)絡(ANN)通過建立數(shù)學模型,模擬人腦神經(jīng),對數(shù)據(jù)及相關信息進行處理。此網(wǎng)絡具有較強的容錯性、融合非線性函數(shù)等優(yōu)點,可解決許多非線性問題。神經(jīng)網(wǎng)絡包含多個神經(jīng)元,利用簡單網(wǎng)絡組合在一起,基于以上優(yōu)點,BP神經(jīng)網(wǎng)絡被廣泛應用于各個行業(yè)領域。筆者參閱相關文獻,從BP神經(jīng)網(wǎng)絡的基本原理、結構、算法機理、實現(xiàn)過程及局限性等方面系統(tǒng)進行分析,有效指導實踐。
1 ?BP神經(jīng)網(wǎng)絡(BPNN)理論
1.1 BP神經(jīng)網(wǎng)絡概述
BP神經(jīng)網(wǎng)絡是一種多層前饋神經(jīng)網(wǎng)路,最早由 Romelhart和Mc2clelland兩位學者提出,通過對函數(shù)權值進行優(yōu)化,將相應誤差進行傳播,形成三層網(wǎng)絡,操作過程簡單、方便,應用廣泛,在函數(shù)逼近等方面中得到應用[1-2]。
1.2 操作過程
(1)信號傳送(正向);(2)誤差傳送(反向);(3)反復訓練、修正;(4)檢查收斂性。
BP神經(jīng)網(wǎng)絡信息傳播是雙向的,結構之間的聯(lián)系是單向的。對于給定的訓練樣本,經(jīng)過信號順向傳播、誤差反向傳播、訓練記憶,最終達到期望收斂值。
1.3 網(wǎng)絡結構
BP網(wǎng)絡包括輸入層、隱含層和輸出層,神經(jīng)元為基本元素,采用全互連方式將各層連接,單層應用廣泛[3]。神經(jīng)元傳播結構見圖1。
1.4 運算機理
假定BP 神經(jīng)網(wǎng)絡輸入層節(jié)點:M個,隱含層節(jié)點:Q 個,輸出層節(jié)點:L個,令wij:輸入層與隱含層神經(jīng)元之間的權值,wjk:隱含層與輸出層之間的權值;其中,隱含層和輸出層傳送函數(shù)分別:f(x)、g(x)。
(1)輸入層數(shù)學表示(輸出):
(2)隱含層數(shù)學表示(輸入):;(輸出):
(3)輸出層數(shù)學表示(輸入):;(輸出):
(4)通過對網(wǎng)絡權值的調(diào)整,性能指標函數(shù)表示為:期望輸出dk與實際輸出ok之差的平方和
其中:E為函數(shù)誤差數(shù)學表示。
2 ?BP神經(jīng)網(wǎng)絡訓練步驟及程序過程
2.1 訓練步驟
(1)歸一化處理:重點對網(wǎng)絡權值及神經(jīng)元閾值進行歸一化處理;
(2)前向傳播處理:按照隱含層及輸出層的傳遞函數(shù)進行計算,得出各層之間的誤差;
(3)后向傳播處理:根據(jù)誤差調(diào)整權值和閾值,滿足條件后訓練結束。
以上步驟訓練后的BP神經(jīng)網(wǎng)絡,具備了識別能力,預測樣本數(shù)據(jù)中的非隱含線性關系,訓練結束后的網(wǎng)絡,用來進行結果預測。
注意事項:
(1)在學習前,需要對訓練樣本進行歸一化處理,確保輸入、輸出值在[-1,1]或[0,1]范圍內(nèi)。常見處理方法有:Matlab數(shù)學軟件、使用Premnmx()函數(shù)等。
(2)隱含層節(jié)點數(shù)選取。
關于隱含層節(jié)點數(shù)的確定,沒有固定方法,通常使用經(jīng)驗公式法及試驗法,找出符合條件的隱含層節(jié)點數(shù)[4]。
常見公式有:;;;
其中:k,m,n-分別為隱含層、輸入層、輸出層節(jié)點數(shù), -參數(shù),一般取1-10之間,N-樣本總量。
2.2 編程方法
BP神經(jīng)網(wǎng)絡在Matlab程序中的函數(shù)格式為:
其中:P,T-分別代表輸入、輸出值;Si-代表神經(jīng)元個數(shù)數(shù)目;TFi-代表傳遞函數(shù)類型。隱含層一般選用tansig函數(shù),輸出層一般選用purelin函數(shù)。
3 ?BP神經(jīng)網(wǎng)絡局限性分析及改進方法
3.1 局限性分析
傳統(tǒng)方法缺點表現(xiàn)為以下幾方面:收斂速度不快,不容易達到預測目標,網(wǎng)絡結構不好確定,收斂時間不確定,神經(jīng)網(wǎng)絡容易出現(xiàn)訓練癱瘓。
3.2 改進方法
針對BP神經(jīng)網(wǎng)絡出現(xiàn)的問題,國內(nèi)外相關學者分別從收斂速度、優(yōu)化網(wǎng)絡結構等方面提出了改進方法,主要分為以下幾方面。
(1)算法優(yōu)化。
隨著網(wǎng)絡的發(fā)展,部分學者將BP神經(jīng)網(wǎng)絡與進化計算[5]、人工免疫算法[4]等新的智能算法相結合,提出一些混合智能算法,設計出較好的BP網(wǎng)絡。同時還有將BP算法與模糊數(shù)學、小波理論、混沌理論等結合,提出模糊神經(jīng)網(wǎng)絡、小波神經(jīng)網(wǎng)絡、混沌神經(jīng)網(wǎng)絡等,以上算法均在一定程度上提升了收斂速度。
(2)結構優(yōu)化。
傳統(tǒng)網(wǎng)絡結構隱含層節(jié)點確定沒有固定方法,多是根據(jù)經(jīng)驗公式進行確定,對網(wǎng)絡的收斂性產(chǎn)生一定影響。國內(nèi)外多數(shù)研究,根據(jù)環(huán)境要求,調(diào)整網(wǎng)絡結構,動態(tài)找到合適的神經(jīng)網(wǎng)絡模型。
4 ?結語
(1)本文對BP神經(jīng)網(wǎng)絡基本原理、學習過程及Matlab程序?qū)崿F(xiàn)等方面進行系統(tǒng)的綜述,同時對BP算法存在局限性和改進方法進行探討。
(2)由于BP神經(jīng)網(wǎng)絡和算法存在缺陷比較突出,還可以從多個角度對其進行改進,對于如何選擇初始值、隱含層節(jié)點數(shù)、泛化能力的提高及容錯性的提高等方面,值得深入研究,不斷提高算法精度及收斂速度。
參考文獻
[1] 呂硯山,趙正琦.BP神經(jīng)網(wǎng)絡的優(yōu)化及應用研究[J]. 北京化工大學學報:自然科學版,2001,28(1):67-69.
[2] 孫娓娓.BP神經(jīng)網(wǎng)絡的算法改進及應用研究[D].重慶大學,2009.
[3] 史春朝.BP神經(jīng)網(wǎng)絡算法的改進及其在PID控制中的應用研究[D].天津大學,2006.
[4] 黃宏運,朱家明,李詩爭.基于遺傳算法優(yōu)化的BP神經(jīng)網(wǎng)絡在股指預測中的應用研究[J].云南大學學報:自然科學版,2017,39(3):350-355.
[5] 羅俊松.基于神經(jīng)網(wǎng)絡的BP算法研究及在網(wǎng)絡入侵檢測中的應用[J].現(xiàn)代電子技術,2017, 40(11):91-94.