馮守良
(黑龍江工程學(xué)院測(cè)繪工程學(xué)院,黑龍江哈爾濱 150050)
基于RBF網(wǎng)絡(luò)曲線擬合的研究
馮守良
(黑龍江工程學(xué)院測(cè)繪工程學(xué)院,黑龍江哈爾濱 150050)
曲線擬合問題是求得自變量與因變量之間的逼近函數(shù)關(guān)系表達(dá)式,在MATLAB中可通過編寫RBF網(wǎng)絡(luò)實(shí)現(xiàn)曲線擬合,但是樣本數(shù)據(jù)和參數(shù)的選擇是值得研究的問題,用不同的樣本數(shù)據(jù)與不同的參數(shù)進(jìn)行曲線擬合,并把擬合出的效果進(jìn)行比較,從而得出怎樣選擇數(shù)據(jù)樣本和參數(shù)。
RBF;曲線擬合;神經(jīng)網(wǎng)絡(luò);參數(shù)選擇
在現(xiàn)實(shí)的科學(xué)研究中,很多問題之間的函數(shù)關(guān)系是未知的,各個(gè)變量之間的關(guān)系也是很復(fù)雜的??蒲性囼?yàn)的主要目的是對(duì)事物模型的研究,而采用的主要方法是通過采集試驗(yàn)數(shù)據(jù),建立與之相應(yīng)的數(shù)學(xué)模型,在建模過程中最常用到的數(shù)據(jù)處理方法就是進(jìn)行數(shù)據(jù)的曲線擬合[1]。
用曲線擬合來逼近這種函數(shù)關(guān)系,尤其是變量本身復(fù)雜、不確定,變量之間的關(guān)系也不確定,自變量與因變量也很復(fù)雜的學(xué)科研究,例如地震的研究、變形體的研究、地址災(zāi)害研究、經(jīng)濟(jì)變化的研究、股票市場(chǎng)的研究,等等。而RBF網(wǎng)絡(luò)是人工神經(jīng)網(wǎng)絡(luò)的一種,神經(jīng)網(wǎng)絡(luò)本身具有的容錯(cuò)性、魯棒性、自適應(yīng)性、自學(xué)習(xí)性、容錯(cuò)性、非線性,并行計(jì)算和分布式存儲(chǔ)等特點(diǎn),能很好地應(yīng)用于分類、聚類、優(yōu)化、回歸與擬合等問題。[2-5]如果能解決曲線精確的擬合,并對(duì)很多工程進(jìn)行預(yù)測(cè),尤其是地質(zhì)災(zāi)害和建筑物的變形。
曲線擬合包括有理論模型的曲線擬合和無理論模型的曲線擬合,其中有理論模型的曲線擬合中具有代表性的為線性模型曲線擬合與偽線性最小二乘的非線性模型的曲線擬合。線性模型曲線擬合表達(dá)式為y=α0+α1x1+α2x2+…+αmxm+θ;其中,α1…αm是未知參數(shù),服從正態(tài)分布。把實(shí)驗(yàn)數(shù)據(jù)帶入此結(jié)構(gòu)式,按最小二乘原理求解參數(shù),解決線性模型的曲線擬合問題;偽線性最小二乘的非線性模型的曲線擬合表達(dá)式為A(x)=A0+A1x+ A2x2+…+Amxm。表達(dá)式可通過轉(zhuǎn)換的形式,如Ai=αi,xm=xm化為線性模型。
無理論模型的曲線擬合一般是人工神經(jīng)網(wǎng)絡(luò)方法和幾何方法,人工神經(jīng)網(wǎng)絡(luò)方法在曲線擬合中有代表性的是RBF網(wǎng)絡(luò)。
RBF是徑向基函數(shù)網(wǎng)絡(luò),研究表明,在一定條件下,徑向基?(‖x-c‖)可以逼近幾乎所有函數(shù),這里的c是一個(gè)固定值,這樣就把多元函數(shù)變成了一元函數(shù)[2]。而常見的徑向基函數(shù)有3種:gauss分布函數(shù)逆函數(shù);薄板樣條函3種函數(shù)都是徑向?qū)ΨQ函數(shù),自變量偏移對(duì)稱中心后,函數(shù)值快速下降。具體網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 RBF網(wǎng)絡(luò)結(jié)構(gòu)
徑向基函數(shù)網(wǎng)絡(luò)是前向神經(jīng)網(wǎng)絡(luò)由3個(gè)層構(gòu)成:輸入層,隱含層,輸出層。輸出層節(jié)點(diǎn)個(gè)數(shù)是輸入數(shù)據(jù)的維數(shù),隱含層的節(jié)點(diǎn)數(shù)根據(jù)網(wǎng)絡(luò)訓(xùn)練的要求可以自動(dòng)調(diào)節(jié),輸出層節(jié)點(diǎn)數(shù)就是輸出數(shù)據(jù)的維度。其中,非線性隱含層的功能是將輸入數(shù)據(jù)的向量轉(zhuǎn)換到另一個(gè)空間向量,使原來線性不可分的問題轉(zhuǎn)換成線性可分解決,輸出層是線性的。
根據(jù)上面的網(wǎng)絡(luò)結(jié)構(gòu),假設(shè)網(wǎng)絡(luò)有N個(gè)輸入節(jié)點(diǎn)x1,x2,…,xn;隱含層有M個(gè)節(jié)點(diǎn),第m個(gè)隱含層節(jié)點(diǎn)的基函數(shù)為?(‖X-Xm‖),Xm=[xm1,xm2,…,xmn]為基函數(shù)的中心。輸出層有P個(gè)節(jié)點(diǎn),實(shí)際輸出Yk=[yk1,yk2,…,ykj],k為輸入第k個(gè)樣本。其中隱含層與輸出層之間有一個(gè)閾值恒為1,其連接權(quán)值為woj。那么輸入第k個(gè)樣本,可以得出的結(jié)果為Xm),j=1,2,…,J。
對(duì)于RBF網(wǎng)絡(luò)的學(xué)習(xí)算法,由于對(duì)徑向基函數(shù)中心的確定方法不同而不同,常見的學(xué)習(xí)策略有:有監(jiān)督選取徑向基函數(shù)中心,隨機(jī)選取徑向基函數(shù)固定中心,自組織選取徑向基函數(shù)中心,正交最小二乘選取徑向基函數(shù)中心。
本文將用MATLAB中自帶的RBF網(wǎng)絡(luò)工具箱調(diào)用newrb函數(shù)分別對(duì)f(x)=sin x和f(x)=x2進(jìn)行擬合的實(shí)驗(yàn)。實(shí)驗(yàn)過程如下:
1)選擇不同樣本進(jìn)行訓(xùn)練。在訓(xùn)練的過程中均方誤差goal=0,徑向基的擴(kuò)展速度spread=1。對(duì)函數(shù)f(x)=sin x進(jìn)行擬合,首先選擇[-10,10]區(qū)間內(nèi)兩數(shù)間隔0.5,選擇41個(gè)訓(xùn)練數(shù)據(jù),測(cè)試數(shù)據(jù)選擇[-10,10]區(qū)間內(nèi)兩數(shù)間隔0.1,選擇201個(gè)測(cè)試數(shù)據(jù),網(wǎng)絡(luò)訓(xùn)練時(shí)間為10.012 9s,擬合結(jié)果如圖2所示。其次,選擇[-10,10]區(qū)間內(nèi)兩數(shù)間隔2,選擇11個(gè)訓(xùn)練數(shù)據(jù),其他不變,訓(xùn)練時(shí)間為3.993 8s,擬合結(jié)果如圖3所示。兩數(shù)間隔為0.5,選擇區(qū)間中缺少[-3,3]這一區(qū)間的數(shù)據(jù),其他條件不變,擬合結(jié)果如圖4所示。
圖2 擬合結(jié)果
圖3 擬合結(jié)果
圖4 擬合結(jié)果
對(duì)于函數(shù)f(x)=x2進(jìn)行擬合,首先選擇[-10,10]區(qū)間內(nèi)兩數(shù)間隔0.5,選擇41個(gè)訓(xùn)練數(shù)據(jù),測(cè)試數(shù)據(jù)選擇[-10,10]區(qū)間內(nèi)兩數(shù)間隔0.1,選擇201個(gè)測(cè)試數(shù)據(jù),網(wǎng)絡(luò)訓(xùn)練時(shí)間為10.167 3s,擬合結(jié)果如圖5所示。其次,選擇[-10,10]區(qū)間內(nèi)兩數(shù)間隔2,選擇11個(gè)訓(xùn)練數(shù)據(jù),其他不變,訓(xùn)練時(shí)間為4.030 0s,擬合結(jié)果如圖6所示。
圖5 擬合結(jié)果
圖6 擬合結(jié)果
2)選擇不同的徑向基函數(shù)的擴(kuò)散速度。選擇21個(gè)訓(xùn)練數(shù)據(jù),測(cè)試數(shù)據(jù)均選擇[-10,10]區(qū)間內(nèi)兩數(shù)間隔0.1,選擇201個(gè)測(cè)試數(shù)據(jù)。在訓(xùn)練的過程中均方誤差goal=0。
對(duì)函數(shù)f(x)=sin x進(jìn)行擬合,分別選擇徑向基函數(shù)擴(kuò)展速度為0.1、1、15進(jìn)行擬合,訓(xùn)練時(shí)間分別為6.102 0s、6.084 2s、6.271 3s;擬合結(jié)果分別如圖7~圖9所示。
圖7 擬合結(jié)果
圖8 擬合結(jié)果
圖9 擬合結(jié)果
對(duì)函數(shù)f(x)=x2進(jìn)行擬合,分別選擇徑向基函數(shù)擴(kuò)展速度為0.1、1、15進(jìn)行擬合,訓(xùn)練時(shí)間分別為6.129 7s、5.943 2s、5.923 6s;擬合結(jié)果分別如圖10~12所示。
圖10 擬合結(jié)果
圖11 擬合結(jié)果
圖12 擬合結(jié)果
從試驗(yàn)中可以看出,選擇41個(gè)訓(xùn)練樣本,訓(xùn)練時(shí)間約10s,選擇21個(gè)訓(xùn)練樣本,訓(xùn)練時(shí)間約6s,選擇11個(gè)訓(xùn)練樣本,訓(xùn)練時(shí)間約4s,達(dá)到相同精度時(shí),選擇多的訓(xùn)練樣本,訓(xùn)練網(wǎng)絡(luò)的時(shí)間比較長(zhǎng)。
圖2與圖3及圖5與圖6的比較說明,如果選擇的樣本量不足,曲線擬合的效果受到嚴(yán)重影響,而且圖2與圖4的比較可以看出,訓(xùn)練缺失區(qū)間內(nèi)的擬合效果差,在選擇數(shù)據(jù)時(shí),應(yīng)該均勻選擇足夠的數(shù)據(jù)來保證擬合的精度。
在訓(xùn)練樣本一樣的情況下,徑向基函數(shù)擴(kuò)散速度的大小對(duì)擬合精度的影響很大,通過圖10~12可以看出擴(kuò)散速度大比擴(kuò)散速度小的擬合更加逼真,但是通過圖8、圖9可以看出不是擴(kuò)散速度大就好,圖9中的擬合效果比圖8差,f(x)=sin x擬合時(shí)比f(x)=x2需要更小的擴(kuò)散速度??梢缘贸鰧?duì)以上兩個(gè)函數(shù)應(yīng)該把擴(kuò)散速度選擇在1左右。
試驗(yàn)中發(fā)現(xiàn)不同的函數(shù)對(duì)訓(xùn)練樣本均勻選擇的要求是一定的,但是選擇多少個(gè)訓(xùn)練樣本及擴(kuò)散速度是多少,不同的函數(shù)有不同的選擇。
[1]劉龍,張獻(xiàn)州,喻巧,等.基于GA-BP神經(jīng)網(wǎng)絡(luò)的高鐵線下工程沉降預(yù)測(cè)模型[J].測(cè)繪工程,2014,23(5):58-61.
[2]黃惠峰,張獻(xiàn)州,甄亞男,等.遺傳BP神經(jīng)網(wǎng)絡(luò)疊加區(qū)域沉降的工程沉降分析與預(yù)測(cè)方法[J].測(cè)繪工程,2014,23(6):59-62.
[3]馬東宇.基于Gaussian型RBF神經(jīng)網(wǎng)絡(luò)的函數(shù)逼近與應(yīng)用[D].長(zhǎng)沙:中南大學(xué),2011.
[4]林斌,范永弘.一種改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)非均勻性校正算法[J].測(cè)繪工程,2013,22(3):24-27.
[5]包健,趙建勇,周華英.基于BP網(wǎng)絡(luò)曲線擬合方法的研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2005,26(7):1840-1841.
[6]王苗苗,柯福陽.多項(xiàng)式曲面擬合和BP神經(jīng)網(wǎng)絡(luò)GPS高程擬合方法的比較研究[J].測(cè)繪工程,2013,22(6):22-26.
[7]周玉娟,岳桂昌.二次B樣條修正VTEC多項(xiàng)式模型研究[J].測(cè)繪工程,2013,22(3):41-43.
[責(zé)任編輯:劉文霞]
Research of curve fitting based on RBF network
FENG Shou-liang
(College of Surveying and Mapping Engineering,Heilongjiang Institute of Institute,Harbin 150050,China)
The key to curve fitting is to obtain the function expression between independent variable and the dependent variable.Curve fitting can be obtained in written RBF networks in matlab,but the choice of sample data and parameters is a problem worthy of study.The different sample data with different parameters is given,and the curve fitting results will be compared to determine how to select data samples and parameters.
RBF;curve fitting;parameter's selection;neural network
TP319
A
1671-4679(2015)01-0023-04
2014-06-25
馮守良(1957-),男,高級(jí)工程師,研究方向:測(cè)繪教學(xué)和測(cè)繪工程實(shí)踐.