任東紅 ,林 鵬 ,袁清萍 ,邢兵鎖 ,董國貴
(1.銅陵職業(yè)技術(shù)學(xué)院,安徽 銅陵 244000;2.國網(wǎng)銅陵供電公司,安徽 銅陵 244000)
隨著人工智能科學(xué)的發(fā)展,人工神經(jīng)網(wǎng)絡(luò)也迅速成為預(yù)測領(lǐng)域較常用的智能建模方法,尤其是針對工程中高度非線性的復(fù)雜系統(tǒng),難以用普通的數(shù)學(xué)方法準(zhǔn)確建模,人工神經(jīng)網(wǎng)絡(luò)其本身的特點(diǎn)能夠?qū)W習(xí)和分析大量的輸入-輸出數(shù)據(jù),而無需給定輸入-輸出之間的函數(shù)映射關(guān)系,因此其可以廣泛應(yīng)用于高階非線性系統(tǒng)建模,解決復(fù)雜系統(tǒng)的黑箱模型問題[1-3]。BP神經(jīng)網(wǎng)絡(luò)是經(jīng)典的人工神經(jīng)網(wǎng)絡(luò)模型之一,其運(yùn)用誤差反向傳播算法(BP算法)建立多層的前饋神經(jīng)網(wǎng)絡(luò)模型,通過對給定大數(shù)據(jù)的學(xué)習(xí),確定各層神經(jīng)元連接權(quán)值,最終建立神經(jīng)網(wǎng)絡(luò)模型,擬合復(fù)雜系統(tǒng),從而應(yīng)用于工程實(shí)踐。文中針對傅里葉核函數(shù)法擬合精度較低的問題,運(yùn)用BP神經(jīng)網(wǎng)絡(luò)進(jìn)行建模,函數(shù)曲線擬合精度較高。
BP神經(jīng)網(wǎng)絡(luò)是常見的多層前饋神經(jīng)網(wǎng)絡(luò),由輸入層、隱含層、輸出層組成,圖1所示為一個三層的BP神經(jīng)網(wǎng)絡(luò),即輸入層、隱含層、輸出層分別只有一層,其中x1,x2,…xn為神經(jīng)網(wǎng)絡(luò)的n維輸入,y1,y2,…ym為神經(jīng)網(wǎng)絡(luò)的m維輸出,wij表示神經(jīng)網(wǎng)絡(luò)輸入層第i個神經(jīng)元到隱含層第j個神經(jīng)元的連接權(quán)值,wjk表示隱含層第j個神經(jīng)元到輸出層第k個神經(jīng)元的連接權(quán)值。若要準(zhǔn)確的擬合函數(shù),必須確定隱含層神經(jīng)元個數(shù)以及各神經(jīng)元之間的連接權(quán)值,從而建立精確地神經(jīng)網(wǎng)絡(luò)模型。文中將采用試探法確定隱含層神經(jīng)元個數(shù),通過誤差反向傳播算法(BP算法)確定各神經(jīng)元之間的連接權(quán)值。其中神經(jīng)網(wǎng)絡(luò)的輸入層和輸出層神經(jīng)元的作用函數(shù)為線性函數(shù),即神經(jīng)元的輸出值等于其輸入值;隱含層神經(jīng)元的作用函數(shù)選擇常用的Sigmoid函數(shù);隱含層和輸出層神經(jīng)元的輸入值分別等于上一層神經(jīng)元輸出值的加權(quán)和[4]。
圖1 三層BP神經(jīng)網(wǎng)絡(luò)
BP學(xué)習(xí)算法即誤差反向傳播算法,是一種有導(dǎo)師的學(xué)習(xí)算法。它的學(xué)習(xí)過程由兩個部分組成:正向傳播過程和反向傳播過程。正向傳播是指將學(xué)習(xí)的樣本數(shù)據(jù)輸入到神經(jīng)網(wǎng)絡(luò)的輸入層,輸入層神經(jīng)元接受到傳播信號,依據(jù)神經(jīng)元的作用函數(shù)再將信息傳到隱含層(1層或多層),隱含層依據(jù)神經(jīng)元作用函數(shù)再將信息輸出傳入至輸出層神經(jīng)元的輸入,最終根據(jù)輸出層神經(jīng)元的作用函數(shù)計算輸出層的輸出。反向傳播是指將神經(jīng)網(wǎng)絡(luò)的實(shí)際輸出值與期望輸出值比較,如果誤差不滿足設(shè)定的要求,將誤差向回傳播,同時根據(jù)誤差調(diào)整各神經(jīng)元的連接權(quán)值,直至誤差滿足要求。
圖2 BP算法信息傳播流程圖
圖2 是BP學(xué)習(xí)算法的信息傳播流程圖,具體過程描述如下:
信息的正向傳播:
BP神經(jīng)網(wǎng)絡(luò)輸入層第i個神經(jīng)元的輸出為:
公式(1)中ui表示輸入層第i個神經(jīng)元的輸入值。
隱含層中第j個神經(jīng)元的輸入xjH為:
公式(2)中,wijH表示輸入層第i個神經(jīng)元到隱含層第j個神經(jīng)元的連接權(quán)值。
隱含層中第j個神經(jīng)元的輸出yjH為:
公式(3)中表示隱含層第 j個神經(jīng)元的作用函數(shù),文中選用Sigmoid函數(shù)。
輸出層第k個神經(jīng)元的輸入為
公式(4)中,wjkO表示隱含層第j個神經(jīng)元到輸出層第k個神經(jīng)元的網(wǎng)絡(luò)連接權(quán)值。
輸出層第k個神經(jīng)元的輸出ykO為
其中表示輸出層第k個神經(jīng)元的作用函數(shù),文中選用線性函數(shù)。
信息的反向傳播:信息的反向傳播目的是調(diào)整連接權(quán)值,降低誤差。設(shè)神經(jīng)網(wǎng)絡(luò)的實(shí)際輸出值為y,神經(jīng)網(wǎng)絡(luò)的期望輸出值為t,則它們之間的誤差為e(e=t-y),誤差從輸出層反向傳播,同時在傳播過程中通過求導(dǎo)的方式對神經(jīng)網(wǎng)絡(luò)中各神經(jīng)元之間的連接權(quán)值不斷修正,使神經(jīng)網(wǎng)絡(luò)的實(shí)際輸出值y與期望輸出值t之間的誤差減小,直至誤差達(dá)到給定值以下,網(wǎng)絡(luò)訓(xùn)練結(jié)束[5][6]。
神經(jīng)網(wǎng)絡(luò)神經(jīng)元連接權(quán)值訓(xùn)練的流程圖如下:
圖3 BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練流程圖
本實(shí)驗(yàn)的目的是對傅里葉核函數(shù)f(x)=sinx/x進(jìn)行擬合,首先是建立精確的BP神經(jīng)網(wǎng)絡(luò)擬合模型。由于文中只是針對一維多個歷史數(shù)據(jù)進(jìn)行訓(xùn)練,不考慮其他因素對神經(jīng)網(wǎng)絡(luò)的影響,因此輸入層神經(jīng)元個數(shù)選擇1即可,輸出層神經(jīng)元個數(shù)也選擇1?,F(xiàn)在最重要的是確定隱含層神經(jīng)元個數(shù),本文通過試探法確定。分別選定神經(jīng)網(wǎng)絡(luò)的隱含層神經(jīng)元個數(shù)為5,10,20三個數(shù),通過訓(xùn)練結(jié)果及測試結(jié)果的比較,最終選定合適的隱含層神經(jīng)元個數(shù)。訓(xùn)練及測試結(jié)果如下。當(dāng)隱含層神經(jīng)元為5時,得到的訓(xùn)練結(jié)果如下:
圖4 訓(xùn)練步數(shù)與訓(xùn)練誤差關(guān)系圖
當(dāng)隱含層神經(jīng)元為10時,得到的訓(xùn)練結(jié)果如下:
圖5 訓(xùn)練步數(shù)與訓(xùn)練誤差關(guān)系圖
當(dāng)隱含層神經(jīng)元為20時,得到的訓(xùn)練結(jié)果如下:
圖6 訓(xùn)練步數(shù)與訓(xùn)練誤差關(guān)系圖
圖4 ,5,6中,藍(lán)色實(shí)線表示訓(xùn)練誤差與訓(xùn)練步數(shù)之間的關(guān)系曲線,黑色虛線表示停止誤差為0.01。從圖4中可以看出,當(dāng)隱含層神經(jīng)元數(shù)目為5時,訓(xùn)練步數(shù)達(dá)到最大訓(xùn)練步數(shù)2000步時仍然大于給定的允許誤差0.01;圖5中可以看出,當(dāng)隱含層神經(jīng)元數(shù)目為10時,訓(xùn)練效果明顯優(yōu)于第一種,當(dāng)訓(xùn)練步數(shù)為1183步時,即可達(dá)到誤差0.01;圖6中可以看出,當(dāng)隱含層神經(jīng)元數(shù)目為20時,訓(xùn)練效果更優(yōu),當(dāng)訓(xùn)練步數(shù)為870時即可達(dá)到給定的誤差范圍之內(nèi)。
為了得到最優(yōu)的神經(jīng)網(wǎng)絡(luò),不僅需比較訓(xùn)練效果,同時要考慮測試效果,即模型的精確性。建立的3個模型的測試效果如下。
當(dāng)隱含層神經(jīng)元為5時,測試結(jié)果如下:
圖7 函數(shù)擬合曲線(神經(jīng)元數(shù)5)
圖8 誤差曲線圖(神經(jīng)元數(shù)5)
當(dāng)隱含層神經(jīng)元個數(shù)為10時,函數(shù)擬合曲線及誤差曲線如圖下:
圖9 函數(shù)擬合曲線(神經(jīng)元數(shù)10)
圖10 誤差曲線圖(神經(jīng)元數(shù)10)
(3)當(dāng)隱含層神經(jīng)元數(shù)目為20時,測試結(jié)果如下:
圖11 函數(shù)擬合曲線(神經(jīng)元數(shù)20)
圖12 誤差曲線圖(神經(jīng)元數(shù)20)
當(dāng)隱含層神經(jīng)元數(shù)分別為5,10,20時測試結(jié)果如下表:
表1 神經(jīng)網(wǎng)絡(luò)測試結(jié)果比較
圖7,9,11為神經(jīng)網(wǎng)絡(luò)函數(shù)擬合曲線圖,其中藍(lán)色實(shí)線為模型的期望輸出,紅色虛線表示模型的實(shí)際輸出。從圖形7,9,11可以直觀地看出隱含層神經(jīng)元個數(shù)為10時,函數(shù)擬合情況明顯優(yōu)于其他兩種模型。圖8,10,12為神經(jīng)網(wǎng)絡(luò)模型擬合的誤差曲線圖,表1表示神經(jīng)網(wǎng)絡(luò)輸出值與實(shí)際輸出值得比較值,從誤差曲線圖以及表1中可以看出隱含層神經(jīng)元個數(shù)為10時平均誤差為10.03%,優(yōu)勢明顯。
建立準(zhǔn)確的非線性函數(shù)模型在工程中具有重要意義,文中通過應(yīng)用前饋神經(jīng)網(wǎng)絡(luò)模型以及BP學(xué)習(xí)算法建立三層的BP神經(jīng)網(wǎng)絡(luò)模型用于傅里葉核函數(shù)擬合實(shí)驗(yàn)。同時通過試探法確定神經(jīng)網(wǎng)絡(luò)隱含層神經(jīng)元個數(shù),從實(shí)驗(yàn)結(jié)果可以得出,神經(jīng)網(wǎng)絡(luò)隱含層神經(jīng)元個數(shù)并不是越多越好,當(dāng)隱含層神經(jīng)元個數(shù)過多時會導(dǎo)致訓(xùn)練復(fù)雜,函數(shù)可能會偏離實(shí)際輸出。因此通過實(shí)驗(yàn)比較確定本神經(jīng)網(wǎng)絡(luò)模型隱含層神經(jīng)元個數(shù)為10時,預(yù)測效果最佳,此時建立的模型可以較好地應(yīng)用在非線性函數(shù)擬合中。
[1]郝海霞.用粒子群算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)進(jìn)行函數(shù)擬合[J].山西師范大學(xué)學(xué)報,2017,31(1):14-16.
[2]徐富強(qiáng),錢云,劉相國.GA-BP神經(jīng)網(wǎng)絡(luò)的非線性函數(shù)擬合[J].微計算機(jī)信息,2012,28(7):148-150.
[3]喬冰琴,常曉明.改進(jìn)粒子群算法在BP神經(jīng)網(wǎng)絡(luò)擬合非線性函數(shù)方面的應(yīng)用[J].太原理工大學(xué)學(xué)報,2012,43(5):558-563.
[4]劉俊.BP神經(jīng)網(wǎng)絡(luò)在多維非線性函數(shù)擬合中的應(yīng)用[J].商洛學(xué)院學(xué)報,2014,28(6):19-22.
[5]任東紅.基于集成神經(jīng)網(wǎng)絡(luò)的污水處理出水水質(zhì)軟測量模[D].北京:北京工業(yè)大學(xué),2010:27-28.
[6]RUMELHART D E,HINTON G E,WILLIAM SR J.Learning Internal Representations by Error Propagation[C].Parallel Distributed Proceeding.Cambridge,1986:318-362.