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