余 苗 陶 婷 陳 佳
(成都理工大學管理科學學院 四川 成都 610059)
曲線擬合是用連續曲線近似地刻畫或比擬平面上離散點組所表示坐標之間的函數關系的一種數據處理方法。從一組實驗數據(xi,yi)中尋求自變量x和因變量y之間的函數關系 y=f(x)來反映 x和y之間的依賴關系,即在一定意義下最佳地逼近已知數據。

對y=sin(x)曲線實現擬合
(一)訓練數據導入
對樣本數據的獲取,可以通過用元素列表直接輸入、創建數據文件、從數據文件中讀取等方式。
(二)網絡初始化
根據系統輸入輸出序列,確定網絡輸入層節點數為1,隱含層節點數為20,輸出層節點數為1。初始化輸入層、隱含層和輸出層神經元之間的連接權值wij,vjk,初始化隱含層閾值t0,輸出層閾值t1,給定學習速率a0,a1和u,給定算法迭代次數inum、最大可接受誤差error、神經元激勵函數sigmoid。
(三)向前輸出計算
根據輸入變量x,輸入層和隱含層間連接權值wij和隱含層閾值t0,計算隱含層輸出P:
f為隱含層激勵函數,該函數可設置為多種形式,本實驗中所選函數為:
根據隱含層輸出P,隱含層和輸出層間連接權值vjk和輸出層閾值t1,計算BP神經網絡預測輸出Qk:
其中m為輸出層節點數,本實驗中取1。
(四)權值修正
根據網絡預測輸入Q和期望輸出y,計算網絡預測誤差e:
ek=yk-Qk
BP神經網絡采用梯度修正法作為權值和閾值的學習算法,從網絡預測誤差的負梯度方向修正權值和閾值。在本實驗采用的sigmoid激勵函數下,隱含層和輸出層間連接權值和輸出層閾值更新公式為:
vjk=vjk+u*a1Pjekj=1,2,…,l;k=1,2,…,m
t1k=t1k+u*ekk=1,2,…,m
輸入層和隱含層間連接權值和輸出層閾值更新公式為:
通過是否達到迭代次數或者錯誤率是否在可接受范圍內來判斷算法迭代是否結束,若沒有結束,則繼續迭代。

圖1 迭代60次擬合

圖2 迭代200次擬合
通過上面兩個圖可以看出,隨著迭代次數的增加,預測誤差是逐漸減小的,在開始的迭代中,誤差減小較快,最后經過規定次數的迭代,基本上能將函數y=sin(x)擬合出來。雖然BP神經網絡具有較高的擬合能力,但是預測結果仍然存在一定的誤差,其擬合能力也存在一定的局限。