陶玉杰,李艷紅,孫 剛
(1. 通化師范學(xué)院 數(shù)學(xué)學(xué)院,吉林 通化 134002; 2. 遼東學(xué)院 師范學(xué)院數(shù)學(xué)系,遼寧 丹東 118003;3. 湖南工學(xué)院 數(shù)學(xué)科學(xué)與能源工程學(xué)院,湖南 衡陽 421002)
人工神經(jīng)網(wǎng)絡(luò)不僅具有非線性和適應(yīng)性的信息處理能力,而且能克服傳統(tǒng)人工智能方法對直覺模式、語音識別、非結(jié)構(gòu)化信息處理等方面的缺陷,使其在專家系統(tǒng)、模式識別和智能控制等領(lǐng)域得到廣泛應(yīng)用. 陳天平[1]對神經(jīng)網(wǎng)絡(luò)中的系統(tǒng)識別提出了逼近的概念,并證明了可積函數(shù)可用一元函數(shù)逼近非線性泛函;文獻[2-3]基于一種新度量證明了前向神經(jīng)網(wǎng)絡(luò)對一類可積函數(shù)的逼近性,并通過修正激活函數(shù)研究了逼近階問題;王建軍等[4]在距離空間上討論了基于多項式函數(shù)高維前向神經(jīng)網(wǎng)絡(luò)的插值逼近性;文獻[5]通過構(gòu)造精確插值和近似插值神經(jīng)網(wǎng)絡(luò)給出了逼近誤差公式.
Bernstein多項式為函數(shù)逼近理論中的一個經(jīng)典多項式,是依賴于給定函數(shù)在等距剖分意義下形成的特殊結(jié)構(gòu)型多元多項式[6-7]. 文獻[8]利用一元Bernstein多項式和Sigmodial轉(zhuǎn)移函數(shù)性質(zhì)設(shè)計了單輸入、單輸出(SISO)三層前向神經(jīng)網(wǎng)絡(luò),并證明了該網(wǎng)絡(luò)具有逼近性;文獻[9]利用Bernstein多項式為規(guī)則后件構(gòu)造一種模糊系統(tǒng),并給出了輸出算法. 此外,文獻[10]提出了基于遺傳算法的誤差反向傳播(BP)網(wǎng)絡(luò)權(quán)值二次訓(xùn)練算法; 文獻[11]針對BP神經(jīng)網(wǎng)絡(luò)特點提出了一種基于遞階遺傳算法的四層BP神經(jīng)網(wǎng)絡(luò)及其結(jié)構(gòu)模型. 遺傳算法的易操作性和全局尋優(yōu)性使其廣泛應(yīng)用于神經(jīng)網(wǎng)絡(luò)建模和參數(shù)設(shè)計中[12].
本文針對由一元Bernstein多項式構(gòu)造的SISO三層前向神經(jīng)網(wǎng)絡(luò)模型設(shè)計遺傳算法,并利用適用度函數(shù)對前置連接權(quán)及其閾值進行迭代更新設(shè)計該網(wǎng)絡(luò)的遺傳算法. 通過引入Bernstein多項式構(gòu)造后置連接權(quán)參數(shù),并以此建立單輸入、單輸出前向神經(jīng)網(wǎng)絡(luò)和設(shè)計遺傳算法,避免該算法陷入局部極小值,以提高算法優(yōu)化性能并解決算法早熟收斂的問題.
Bernstein多項式是基于某個給定函數(shù)構(gòu)造的一個特定類型多項式,其對n空間中多元函數(shù)逼近和插值問題的研究具有重要作用. 由于通過線性變換可將一般閉區(qū)間[a,b]變換為[0,1],故可設(shè)[ai,bi]=[0,1],i=1,2,…,n. 本文通過引入一元Bernstein多項式、逼近定理及其基本性質(zhì),進而給出二維甚至n維Bernstein多項式及其基本性質(zhì).
定義1[6]設(shè)f是定義在[0,1]上的實值函數(shù),自然數(shù)m是[0,1]上的等距剖分數(shù),分點坐標(biāo)為xi=i/m,i=0,1,2,…,m,則函數(shù)f在[0,1]上的一元Bernstein多項式表示為
(1)
由定理1知,C[0,1]空間上任意連續(xù)函數(shù)均可用一元Bernstein多項式逼近.
定理2[6]若函數(shù)f(x)在[0,1]上每個等分點xi=i/m均有定義,i=0,1,2,…,m,則一元Bernstein多項式Bm(f;x)在[0,1]上一致連續(xù).
命題1[7]一元Bernstein多項式是由一個給定函數(shù)誘導(dǎo)為多項式的變換,即
算子Bm具有下列性質(zhì):
1)Bm(f+g;x)=Bm(f;x)+Bm(g;x),Bm(k·f;x)=k·Bm(f;x),k∈;
2) 若f(x)≥g(x),則Bm(f;x)≥Bm(g;x);
3)Bm(1;x)=1,Bm(x;x)=x;
4)Bm(f;0)=f(0),Bm(f;1)=f(1).
一元Bernstein多項式的性質(zhì)在許多逼近問題中應(yīng)用廣泛,例如:文獻[8-9]通過模糊數(shù)概念引入了模糊值Bernstein多項式,進而研究了單輸入、單輸出前向模糊神經(jīng)網(wǎng)絡(luò)的逼近性; 文獻[13]基于折線模糊數(shù)的有序表示引入多元折線模糊值Bernstein多項式,并得到任意多元連續(xù)折線模糊值函數(shù)可由該Bernstein多項式逼近.
下面考慮一元Bernstein多項式的高維情形[6-7]. 當(dāng)n=2時,若f(x)是[0,1]×[0,1]上的連續(xù)函數(shù),則可在[0,1]×[0,1]上定義二元Bernstein多項式Bm1,m2(f;(x1,x2))為
一般情況下,若設(shè)f(x)是[0,1]n上的n元連續(xù)函數(shù),則可在[0,1]n上定義n元Bernstein多項式Bm1,m2,…,mn(f;(x1,x2,…,xn))為
故基于[0,1]n上連續(xù)函數(shù)f(x)的n元Bernstein多項式可簡單地表示為
?x=(x1,x2,…,xn)∈[0,1]n,n元Bernstein多項式還可進一步表示為
同理,n元Bernstein多項式具有類似命題1的一些基本性質(zhì)[7].
圖1 SISO三層前向神經(jīng)網(wǎng)絡(luò)拓撲結(jié)構(gòu)Fig.1 Topological structure of SISO three layer forward neural network
一個最簡單的SISO三層前向神經(jīng)網(wǎng)絡(luò)解析式可表示為
(2)
下面借助一元Bernstein多項式(1)在[0,1]上相鄰等距剖分點的差值選取后置連接權(quán)vi,從而給出SISO三層前向神經(jīng)網(wǎng)絡(luò)的解析表達式. 為此,可在閉區(qū)間[0,1]上實施m-等距分割,分點為xi=i/m,i=1,2,…,m,其中m為剖分數(shù),且分割后每個小區(qū)間長度均為1/m.
為簡單,針對式(2)本文只引入一元Bernstein多項式對后置連接權(quán)參數(shù)νi進行設(shè)置,其他前置連接權(quán)ui和閾值θi均通過設(shè)計遺傳算法實現(xiàn). 采用一元Bernstein多項式(1)在相鄰分割點的差值確定后置連接權(quán)νi的取值,即令
其中當(dāng)m
(3)
由定理1知,若f(x)是[0,1]上的連續(xù)函數(shù),則必存在一元Bernstein多項式Bm(f;x)使其逼近f(x),文獻[8]證明了SISO三層前向神經(jīng)網(wǎng)絡(luò)g可按任意精度逼近f.
一般神經(jīng)網(wǎng)絡(luò)算法普遍優(yōu)于其他機器學(xué)習(xí)算法,但神經(jīng)網(wǎng)絡(luò)算法所需的數(shù)據(jù)量及高計算成本也不容忽視. 本文根據(jù)一元Bernstein多項式構(gòu)造的神經(jīng)網(wǎng)絡(luò)(3)雖然僅限于處理一維數(shù)據(jù),但所需數(shù)據(jù)量相對較少,且較易實現(xiàn). 如果在只能獲取少量數(shù)據(jù)或數(shù)據(jù)不全的情況下采用SISO前向神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法,則可避免許多復(fù)雜過程即可解決問題. 例如,根據(jù)天氣溫度隨時間變化可采集一維數(shù)據(jù)序列,用簡單的SISO前向神經(jīng)網(wǎng)絡(luò)較易求解問題.
傳統(tǒng)BP算法基于微積分理論的推導(dǎo)過程,具有很強的通用性且應(yīng)用廣泛,缺點是隱藏層結(jié)構(gòu)不宜確定、初始權(quán)值隨意性大、收斂速度慢及平均誤差較大. 遺傳算法是建立在自然選擇和遺傳學(xué)基礎(chǔ)上的自適應(yīng)概率性搜索算法,主要通過模擬生物自然演化過程獲得較好的全局最優(yōu)解,其主要優(yōu)勢是可調(diào)節(jié)性強,并可通過調(diào)整局部算法適應(yīng)整體問題,因變異的存在使搜索過程不會陷入局部極小值. 通常,遺傳算法的運行過程基于編碼機制、模擬選擇、遺傳復(fù)制、交叉和變異等,遵循優(yōu)勝劣汰的原則進行種群優(yōu)化,最終獲得最優(yōu)個體. 一般情況下,該算法運行過程主要為如下3個步驟.
1) 種群初始化和編碼機制. 在輸入論域中隨機產(chǎn)生一組群體,種群大小一般為染色體長度的2~3倍. 為使精度不受影響,可對染色體選取實數(shù)編碼,使每條染色體由各實參變量構(gòu)成一個向量. 合適的群體規(guī)模對遺傳算法的收斂有重要意義,群體過小很難求得滿意結(jié)果,群體過大則計算復(fù)雜. 因此,根據(jù)經(jīng)驗種群規(guī)模大小一般控制為30~200個.
2) 適應(yīng)度函數(shù)的確定. 適應(yīng)度是評價個體是否適應(yīng)環(huán)境的指標(biāo),在算法運行中適應(yīng)度函數(shù)的選擇非常重要,應(yīng)遵循連續(xù)性、通用性和一致性原則. 這是因為適應(yīng)度可直接影響遺傳算法的收斂速度和優(yōu)化效率. 通常用均方根誤差函數(shù)作為篩選時的適應(yīng)度函數(shù). 誤差函數(shù)主要由神經(jīng)網(wǎng)絡(luò)的實際輸出和期望輸出決定,因此可根據(jù)輸入-輸出數(shù)據(jù)對定義誤差函數(shù),不妨設(shè)給定單輸入、單輸出數(shù)據(jù)對為(xi;yi),i=1,2,…,m,其中xi,yi∈. 誤差函數(shù)定義為
其中g(shù)(xi)為神經(jīng)網(wǎng)絡(luò)(3)的實際輸出,yi(i=1,2,…,m)為該網(wǎng)絡(luò)的期望輸出.
此外,交叉操作使得遺傳算法有良好的優(yōu)化能力,根據(jù)交叉概率可將被選擇的父母基因進行隨機交換,最終產(chǎn)生新的基因組合. 根據(jù)文獻[12],不妨選取交叉概率為Pc=0.7. 變異操作是為了減少遺傳算法陷入局部隨機搜索的概率,并為了維持種群多樣性和防止出現(xiàn)未成熟即快速收斂的現(xiàn)象,一般變異概率Pm在區(qū)間[0.001,0.01]中取值.
下面利用遺傳算法針對SISO三層前向神經(jīng)網(wǎng)絡(luò)(3)的前置連接權(quán)ui和閾值θi進行優(yōu)化,使得實際輸出g(xi)按任意精度逼近期望輸出yi. 不妨將每條染色體表示為該神經(jīng)網(wǎng)絡(luò)的調(diào)節(jié)參數(shù),并將兩組調(diào)節(jié)參數(shù)ui和θi(i=1,2,…,m)依次簡記為一個參數(shù)向量W,即
W=(u1,u2,…,um;θ1,θ2,…,θm)?(w1,w2,…,wi,…,w2m).
SISO三層前向神經(jīng)網(wǎng)絡(luò)(3)的局部遺傳算法步驟如下:
1) 種群初始化. 隨機產(chǎn)生初始種群W(0),種群個體數(shù)為N,誤差為ε,最大迭代次數(shù)為T.
3) 選擇、交叉和變異操作. 首先,通過對種群中的個體進行選擇,將種群內(nèi)的N個個體按其適應(yīng)值從大到小排序;其次,以交叉概率Pc選擇擬要交叉的第i個個體Wi,并將其與第j個個體Wj(i,j=1,2,…,N)按下式進行交叉運算:
下面通過模擬實驗說明本文提出的遺傳算法優(yōu)于傳統(tǒng)遺傳算法. 將SISO三層前向神經(jīng)網(wǎng)絡(luò)(3)的連接權(quán)vi=Bm(f;i/m)-Bm(f;(i-1)/m)視為已知,并利用該遺傳算法對神經(jīng)網(wǎng)絡(luò)連接權(quán)ui和θi進行參數(shù)優(yōu)化. 利用MSSQL數(shù)據(jù)庫隨機產(chǎn)生500組一維數(shù)據(jù),其中前300組數(shù)據(jù)用于神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,后200組數(shù)據(jù)用于所建模型的測試. 設(shè)遺傳算法的相關(guān)參數(shù)為: 最大迭代次數(shù)T=300,隨機產(chǎn)生的種群數(shù)目N=100,交叉概率Pc=0.7,變異概率Pm=0.01,誤差精度ε=0.005,權(quán)重因子λ=0.8. 按本文遺傳算法得到的訓(xùn)練誤差如圖2所示;利用后200組數(shù)據(jù)測試該網(wǎng)絡(luò)的性能,可得測試樣本的誤差如圖3所示. 由圖2和圖3易知:約經(jīng)過160次迭代后,計算得適應(yīng)度函數(shù)值為9.325×10-4; 對于后200組測試數(shù)據(jù)計算得該神經(jīng)網(wǎng)絡(luò)的最大誤差為1.200 1×10-4,平均誤差為2.671 2×10-5. 圖2中曲線極速下降表明,本文提出的遺傳算法不僅收斂速度快且尋優(yōu)精度高.
圖2 遺傳算法訓(xùn)練誤差Fig.2 Training error of genetic algorithm
圖3 測試樣本建模誤差Fig.3 Modeling error of test samples
為驗證本文提出的局部遺傳算法的有效性,在MATLAB2014a軟件中進行數(shù)值仿真實驗. 選取單峰測試函數(shù)F1和多峰測試函數(shù)F2進行仿真測試,將本文提出的算法與BP算法和傳統(tǒng)遺傳算法進行性能比較.
測試函數(shù): 選取多元Sphere函數(shù)F1(x)和Rastrigin函數(shù)F2(x),對任意x=(x1,x2…,xd)∈d,其對應(yīng)的解析表達式分別為
這里: Sphere函數(shù)F1(x)為單峰值可微函數(shù); Rastrigin函數(shù)F2(x)為多峰值可微函數(shù),且在解空間內(nèi)約存在10n個局部極小值點(n為解空間維數(shù)),其理論最優(yōu)值為0.
測試結(jié)果: 利用MATLAB 2014a軟件進行數(shù)值仿真實驗,把本文算法與傳統(tǒng)遺傳算法和BP算法進行比較,不同算法的測試結(jié)果列于表1.
表1 兩個測試函數(shù)對3種算法的測試結(jié)果
由表1可見,在相同測試條件下,本文遺傳算法的尋優(yōu)效果均比傳統(tǒng)遺傳算法和BP算法好,其平均值和方差都相對較小,尤其對Rastrigin函數(shù)F2(x),運行50次后即有明顯差別. 此外,本文算法對單峰測試函數(shù)F1(x)和多峰測試函數(shù)F2(x)均具有較好的尋優(yōu)性能,其中單峰函數(shù)主要測試算法的收斂速度,多峰函數(shù)主要測試算法的局部搜索能力及跳出局部最優(yōu)的性能.
圖4和圖5分別為兩種算法在維數(shù)D=5的條件下,兩個測試函數(shù)所對應(yīng)的測試尋優(yōu)示意圖,其中適應(yīng)度值表示算法當(dāng)前搜索到的最優(yōu)目標(biāo)函數(shù)值. 由圖4和圖5可見,本文遺傳算法的變化曲線比傳統(tǒng)遺傳算法的變化曲線下降速度更快,因此本文算法不僅收斂速度快,而且尋優(yōu)精度高. 此外,根據(jù)單峰函數(shù)測試局部遺傳算法的收斂速度和方差比傳統(tǒng)遺傳算法有明顯提高; 根據(jù)多峰函數(shù)測試的局部遺傳算法在優(yōu)化精度上也比傳統(tǒng)遺傳算法具有明顯優(yōu)勢,且其跳出局部最優(yōu)的能力較強.
圖4 Sphere函數(shù)的測試尋優(yōu)曲線Fig.4 Test optimization curves of Sphere function
圖5 Rastrigrin函數(shù)的測試尋優(yōu)曲線Fig.5 Test optimization curves of Rastrigrin function
圖6 本文提出的網(wǎng)絡(luò)與BP神經(jīng)網(wǎng)絡(luò)仿真實驗對比結(jié)果Fig.6 Comparison of simulation experiments between proposed network and BP neural network
為了判別SISO三層前向神經(jīng)網(wǎng)絡(luò)優(yōu)化后的性能,隨機選取一維數(shù)據(jù)點進行對比實驗. 不妨在上述仿真實驗中生成的300組數(shù)據(jù)中隨機選取14個一維數(shù)據(jù)點: -451.12,24.76,640.26,-20.32,718.24,24.67,-586.42,17.69,679.42,-13.75,763.29,8.49,738.71,9.84,用于本文提出網(wǎng)絡(luò)的訓(xùn)練; 再隨機選取10個樣本點: 350.63,-478.91,-560.45,443.82,-518.34,-590.47,571.24,2.35,-1.479,-0.37,用于檢驗網(wǎng)絡(luò)的性能. 其他所有參數(shù)選取同前. 約定當(dāng)誤差平方和達到預(yù)定目標(biāo)值的迭代次數(shù)時停止訓(xùn)練,且該神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值的精度在優(yōu)化過程中隨迭代次數(shù)增加而增加.
將本文提出的網(wǎng)絡(luò)與文獻[12]中經(jīng)遺傳算法優(yōu)化后的BP網(wǎng)絡(luò)做對比實驗,實驗結(jié)果如圖6所示. 由圖6可見,經(jīng)遺傳算法優(yōu)化后的SISO三層網(wǎng)絡(luò)與實際輸出值更吻合,總體上比文獻[12]中BP網(wǎng)絡(luò)更接近實際輸出,因此其性能更優(yōu)異. BP神經(jīng)網(wǎng)絡(luò)和本文提出的網(wǎng)絡(luò)仿真值與輸出值絕對誤差的對比結(jié)果列于表2.
表2 BP神經(jīng)網(wǎng)絡(luò)和本文提出的網(wǎng)絡(luò)仿真值與輸出值絕對誤差的對比結(jié)果
實驗結(jié)果表明,本文提出的算法主要提升了原有BP網(wǎng)絡(luò)的預(yù)測精度,但未將預(yù)測誤差較大的BP神經(jīng)網(wǎng)絡(luò)優(yōu)化為精確預(yù)測的BP神經(jīng)網(wǎng)絡(luò). 此外,本文提出的算法穩(wěn)定性有待提高,可能是由于遺傳算法自身的隨機性導(dǎo)致穩(wěn)定性較差. 但本文基于一元Bernstein多項式提出的遺傳算法在尋優(yōu)精度和收斂速度方面均優(yōu)于傳統(tǒng)遺傳算法.
綜上所述,本文針對由一元Bernstein多項式和Sigmodial轉(zhuǎn)移函數(shù)所構(gòu)造的SISO三層前向神經(jīng)網(wǎng)絡(luò)設(shè)計了一個新的遺傳算法. 該算法將神經(jīng)網(wǎng)絡(luò)的后置連接權(quán)通過一元Bernstein多項式確定,將前置連接權(quán)和閾值作為遺傳算法的染色體,并采用適應(yīng)度函數(shù)評價個體選擇、交叉和變異等操作,最后通過迭代更新確定優(yōu)化權(quán)值參數(shù). 仿真結(jié)果表明,利用本文提出的局部遺傳算法優(yōu)化SISO三層前向神經(jīng)網(wǎng)絡(luò)的調(diào)節(jié)參數(shù)具有收斂速度快和尋優(yōu)精度高等優(yōu)點.