陶玉杰,李艷紅,孫 剛
(1. 通化師范學院 數學學院,吉林 通化 134002; 2. 遼東學院 師范學院數學系,遼寧 丹東 118003;3. 湖南工學院 數學科學與能源工程學院,湖南 衡陽 421002)
人工神經網絡不僅具有非線性和適應性的信息處理能力,而且能克服傳統人工智能方法對直覺模式、語音識別、非結構化信息處理等方面的缺陷,使其在專家系統、模式識別和智能控制等領域得到廣泛應用. 陳天平[1]對神經網絡中的系統識別提出了逼近的概念,并證明了可積函數可用一元函數逼近非線性泛函;文獻[2-3]基于一種新度量證明了前向神經網絡對一類可積函數的逼近性,并通過修正激活函數研究了逼近階問題;王建軍等[4]在距離空間上討論了基于多項式函數高維前向神經網絡的插值逼近性;文獻[5]通過構造精確插值和近似插值神經網絡給出了逼近誤差公式.
Bernstein多項式為函數逼近理論中的一個經典多項式,是依賴于給定函數在等距剖分意義下形成的特殊結構型多元多項式[6-7]. 文獻[8]利用一元Bernstein多項式和Sigmodial轉移函數性質設計了單輸入、單輸出(SISO)三層前向神經網絡,并證明了該網絡具有逼近性;文獻[9]利用Bernstein多項式為規則后件構造一種模糊系統,并給出了輸出算法. 此外,文獻[10]提出了基于遺傳算法的誤差反向傳播(BP)網絡權值二次訓練算法; 文獻[11]針對BP神經網絡特點提出了一種基于遞階遺傳算法的四層BP神經網絡及其結構模型. 遺傳算法的易操作性和全局尋優性使其廣泛應用于神經網絡建模和參數設計中[12].
本文針對由一元Bernstein多項式構造的SISO三層前向神經網絡模型設計遺傳算法,并利用適用度函數對前置連接權及其閾值進行迭代更新設計該網絡的遺傳算法. 通過引入Bernstein多項式構造后置連接權參數,并以此建立單輸入、單輸出前向神經網絡和設計遺傳算法,避免該算法陷入局部極小值,以提高算法優化性能并解決算法早熟收斂的問題.
Bernstein多項式是基于某個給定函數構造的一個特定類型多項式,其對n空間中多元函數逼近和插值問題的研究具有重要作用. 由于通過線性變換可將一般閉區間[a,b]變換為[0,1],故可設[ai,bi]=[0,1],i=1,2,…,n. 本文通過引入一元Bernstein多項式、逼近定理及其基本性質,進而給出二維甚至n維Bernstein多項式及其基本性質.
定義1[6]設f是定義在[0,1]上的實值函數,自然數m是[0,1]上的等距剖分數,分點坐標為xi=i/m,i=0,1,2,…,m,則函數f在[0,1]上的一元Bernstein多項式表示為

(1)


由定理1知,C[0,1]空間上任意連續函數均可用一元Bernstein多項式逼近.
定理2[6]若函數f(x)在[0,1]上每個等分點xi=i/m均有定義,i=0,1,2,…,m,則一元Bernstein多項式Bm(f;x)在[0,1]上一致連續.
命題1[7]一元Bernstein多項式是由一個給定函數誘導為多項式的變換,即
算子Bm具有下列性質:
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多項式的性質在許多逼近問題中應用廣泛,例如:文獻[8-9]通過模糊數概念引入了模糊值Bernstein多項式,進而研究了單輸入、單輸出前向模糊神經網絡的逼近性; 文獻[13]基于折線模糊數的有序表示引入多元折線模糊值Bernstein多項式,并得到任意多元連續折線模糊值函數可由該Bernstein多項式逼近.
下面考慮一元Bernstein多項式的高維情形[6-7]. 當n=2時,若f(x)是[0,1]×[0,1]上的連續函數,則可在[0,1]×[0,1]上定義二元Bernstein多項式Bm1,m2(f;(x1,x2))為
一般情況下,若設f(x)是[0,1]n上的n元連續函數,則可在[0,1]n上定義n元Bernstein多項式Bm1,m2,…,mn(f;(x1,x2,…,xn))為


故基于[0,1]n上連續函數f(x)的n元Bernstein多項式可簡單地表示為
?x=(x1,x2,…,xn)∈[0,1]n,n元Bernstein多項式還可進一步表示為
同理,n元Bernstein多項式具有類似命題1的一些基本性質[7].


圖1 SISO三層前向神經網絡拓撲結構Fig.1 Topological structure of SISO three layer forward neural network
一個最簡單的SISO三層前向神經網絡解析式可表示為

(2)
下面借助一元Bernstein多項式(1)在[0,1]上相鄰等距剖分點的差值選取后置連接權vi,從而給出SISO三層前向神經網絡的解析表達式. 為此,可在閉區間[0,1]上實施m-等距分割,分點為xi=i/m,i=1,2,…,m,其中m為剖分數,且分割后每個小區間長度均為1/m.
為簡單,針對式(2)本文只引入一元Bernstein多項式對后置連接權參數νi進行設置,其他前置連接權ui和閾值θi均通過設計遺傳算法實現. 采用一元Bernstein多項式(1)在相鄰分割點的差值確定后置連接權νi的取值,即令
其中當m

(3)
由定理1知,若f(x)是[0,1]上的連續函數,則必存在一元Bernstein多項式Bm(f;x)使其逼近f(x),文獻[8]證明了SISO三層前向神經網絡g可按任意精度逼近f.
一般神經網絡算法普遍優于其他機器學習算法,但神經網絡算法所需的數據量及高計算成本也不容忽視. 本文根據一元Bernstein多項式構造的神經網絡(3)雖然僅限于處理一維數據,但所需數據量相對較少,且較易實現. 如果在只能獲取少量數據或數據不全的情況下采用SISO前向神經網絡學習算法,則可避免許多復雜過程即可解決問題. 例如,根據天氣溫度隨時間變化可采集一維數據序列,用簡單的SISO前向神經網絡較易求解問題.
傳統BP算法基于微積分理論的推導過程,具有很強的通用性且應用廣泛,缺點是隱藏層結構不宜確定、初始權值隨意性大、收斂速度慢及平均誤差較大. 遺傳算法是建立在自然選擇和遺傳學基礎上的自適應概率性搜索算法,主要通過模擬生物自然演化過程獲得較好的全局最優解,其主要優勢是可調節性強,并可通過調整局部算法適應整體問題,因變異的存在使搜索過程不會陷入局部極小值. 通常,遺傳算法的運行過程基于編碼機制、模擬選擇、遺傳復制、交叉和變異等,遵循優勝劣汰的原則進行種群優化,最終獲得最優個體. 一般情況下,該算法運行過程主要為如下3個步驟.
1) 種群初始化和編碼機制. 在輸入論域中隨機產生一組群體,種群大小一般為染色體長度的2~3倍. 為使精度不受影響,可對染色體選取實數編碼,使每條染色體由各實參變量構成一個向量. 合適的群體規模對遺傳算法的收斂有重要意義,群體過小很難求得滿意結果,群體過大則計算復雜. 因此,根據經驗種群規模大小一般控制為30~200個.
2) 適應度函數的確定. 適應度是評價個體是否適應環境的指標,在算法運行中適應度函數的選擇非常重要,應遵循連續性、通用性和一致性原則. 這是因為適應度可直接影響遺傳算法的收斂速度和優化效率. 通常用均方根誤差函數作為篩選時的適應度函數. 誤差函數主要由神經網絡的實際輸出和期望輸出決定,因此可根據輸入-輸出數據對定義誤差函數,不妨設給定單輸入、單輸出數據對為(xi;yi),i=1,2,…,m,其中xi,yi∈. 誤差函數定義為
其中g(xi)為神經網絡(3)的實際輸出,yi(i=1,2,…,m)為該網絡的期望輸出.


此外,交叉操作使得遺傳算法有良好的優化能力,根據交叉概率可將被選擇的父母基因進行隨機交換,最終產生新的基因組合. 根據文獻[12],不妨選取交叉概率為Pc=0.7. 變異操作是為了減少遺傳算法陷入局部隨機搜索的概率,并為了維持種群多樣性和防止出現未成熟即快速收斂的現象,一般變異概率Pm在區間[0.001,0.01]中取值.
下面利用遺傳算法針對SISO三層前向神經網絡(3)的前置連接權ui和閾值θi進行優化,使得實際輸出g(xi)按任意精度逼近期望輸出yi. 不妨將每條染色體表示為該神經網絡的調節參數,并將兩組調節參數ui和θi(i=1,2,…,m)依次簡記為一個參數向量W,即
W=(u1,u2,…,um;θ1,θ2,…,θm)?(w1,w2,…,wi,…,w2m).
SISO三層前向神經網絡(3)的局部遺傳算法步驟如下:
1) 種群初始化. 隨機產生初始種群W(0),種群個體數為N,誤差為ε,最大迭代次數為T.

3) 選擇、交叉和變異操作. 首先,通過對種群中的個體進行選擇,將種群內的N個個體按其適應值從大到小排序;其次,以交叉概率Pc選擇擬要交叉的第i個個體Wi,并將其與第j個個體Wj(i,j=1,2,…,N)按下式進行交叉運算:



下面通過模擬實驗說明本文提出的遺傳算法優于傳統遺傳算法. 將SISO三層前向神經網絡(3)的連接權vi=Bm(f;i/m)-Bm(f;(i-1)/m)視為已知,并利用該遺傳算法對神經網絡連接權ui和θi進行參數優化. 利用MSSQL數據庫隨機產生500組一維數據,其中前300組數據用于神經網絡的訓練,后200組數據用于所建模型的測試. 設遺傳算法的相關參數為: 最大迭代次數T=300,隨機產生的種群數目N=100,交叉概率Pc=0.7,變異概率Pm=0.01,誤差精度ε=0.005,權重因子λ=0.8. 按本文遺傳算法得到的訓練誤差如圖2所示;利用后200組數據測試該網絡的性能,可得測試樣本的誤差如圖3所示. 由圖2和圖3易知:約經過160次迭代后,計算得適應度函數值為9.325×10-4; 對于后200組測試數據計算得該神經網絡的最大誤差為1.200 1×10-4,平均誤差為2.671 2×10-5. 圖2中曲線極速下降表明,本文提出的遺傳算法不僅收斂速度快且尋優精度高.

圖2 遺傳算法訓練誤差Fig.2 Training error of genetic algorithm

圖3 測試樣本建模誤差Fig.3 Modeling error of test samples
為驗證本文提出的局部遺傳算法的有效性,在MATLAB2014a軟件中進行數值仿真實驗. 選取單峰測試函數F1和多峰測試函數F2進行仿真測試,將本文提出的算法與BP算法和傳統遺傳算法進行性能比較.

測試函數: 選取多元Sphere函數F1(x)和Rastrigin函數F2(x),對任意x=(x1,x2…,xd)∈d,其對應的解析表達式分別為
這里: Sphere函數F1(x)為單峰值可微函數; Rastrigin函數F2(x)為多峰值可微函數,且在解空間內約存在10n個局部極小值點(n為解空間維數),其理論最優值為0.
測試結果: 利用MATLAB 2014a軟件進行數值仿真實驗,把本文算法與傳統遺傳算法和BP算法進行比較,不同算法的測試結果列于表1.

表1 兩個測試函數對3種算法的測試結果
由表1可見,在相同測試條件下,本文遺傳算法的尋優效果均比傳統遺傳算法和BP算法好,其平均值和方差都相對較小,尤其對Rastrigin函數F2(x),運行50次后即有明顯差別. 此外,本文算法對單峰測試函數F1(x)和多峰測試函數F2(x)均具有較好的尋優性能,其中單峰函數主要測試算法的收斂速度,多峰函數主要測試算法的局部搜索能力及跳出局部最優的性能.
圖4和圖5分別為兩種算法在維數D=5的條件下,兩個測試函數所對應的測試尋優示意圖,其中適應度值表示算法當前搜索到的最優目標函數值. 由圖4和圖5可見,本文遺傳算法的變化曲線比傳統遺傳算法的變化曲線下降速度更快,因此本文算法不僅收斂速度快,而且尋優精度高. 此外,根據單峰函數測試局部遺傳算法的收斂速度和方差比傳統遺傳算法有明顯提高; 根據多峰函數測試的局部遺傳算法在優化精度上也比傳統遺傳算法具有明顯優勢,且其跳出局部最優的能力較強.

圖4 Sphere函數的測試尋優曲線Fig.4 Test optimization curves of Sphere function

圖5 Rastrigrin函數的測試尋優曲線Fig.5 Test optimization curves of Rastrigrin function

圖6 本文提出的網絡與BP神經網絡仿真實驗對比結果Fig.6 Comparison of simulation experiments between proposed network and BP neural network
為了判別SISO三層前向神經網絡優化后的性能,隨機選取一維數據點進行對比實驗. 不妨在上述仿真實驗中生成的300組數據中隨機選取14個一維數據點: -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,用于本文提出網絡的訓練; 再隨機選取10個樣本點: 350.63,-478.91,-560.45,443.82,-518.34,-590.47,571.24,2.35,-1.479,-0.37,用于檢驗網絡的性能. 其他所有參數選取同前. 約定當誤差平方和達到預定目標值的迭代次數時停止訓練,且該神經網絡的權值和閾值的精度在優化過程中隨迭代次數增加而增加.
將本文提出的網絡與文獻[12]中經遺傳算法優化后的BP網絡做對比實驗,實驗結果如圖6所示. 由圖6可見,經遺傳算法優化后的SISO三層網絡與實際輸出值更吻合,總體上比文獻[12]中BP網絡更接近實際輸出,因此其性能更優異. BP神經網絡和本文提出的網絡仿真值與輸出值絕對誤差的對比結果列于表2.

表2 BP神經網絡和本文提出的網絡仿真值與輸出值絕對誤差的對比結果
實驗結果表明,本文提出的算法主要提升了原有BP網絡的預測精度,但未將預測誤差較大的BP神經網絡優化為精確預測的BP神經網絡. 此外,本文提出的算法穩定性有待提高,可能是由于遺傳算法自身的隨機性導致穩定性較差. 但本文基于一元Bernstein多項式提出的遺傳算法在尋優精度和收斂速度方面均優于傳統遺傳算法.
綜上所述,本文針對由一元Bernstein多項式和Sigmodial轉移函數所構造的SISO三層前向神經網絡設計了一個新的遺傳算法. 該算法將神經網絡的后置連接權通過一元Bernstein多項式確定,將前置連接權和閾值作為遺傳算法的染色體,并采用適應度函數評價個體選擇、交叉和變異等操作,最后通過迭代更新確定優化權值參數. 仿真結果表明,利用本文提出的局部遺傳算法優化SISO三層前向神經網絡的調節參數具有收斂速度快和尋優精度高等優點.