摘 要: 在研究神經網絡對非線性函數擬合的過程中發現一個網絡同時只能對一個函數進行擬合,為解決這一問題,通過研究BP算法神經網絡提出了串聯BP網絡來實現多個非線性函數的擬合。通過Matlab自定義網絡結構實現串聯BP網絡,在Matlab下利用此串聯網絡同時對兩個非線性函數進行了擬合,訓練樣本加入噪聲信號,在經過342次訓練后擬合誤差達到了0.000 978。實驗測試結果顯示本網絡能夠很好地對兩個待擬合函數進行擬合,為同時進行多函數的擬合提供了新的方法。
關鍵詞: Matlab; 串聯BP; 多函數擬合; 自定義網絡
中圖分類號: TN911?34 文獻標識碼: A 文章編號: 1004?373X(2013)22?0014?03
0 引 言
BP(Back Propagation)神經網絡是1986年由Rumelhart和McCelland提出的,它是一種誤差按反向傳播的多層前饋網絡,是目前應用最廣泛的神經網絡模型之一。BP神經網絡具有非常強的非線性映射能力,能以任意精度逼近任意連續函數,因此在人工智能的許多領域都得到了廣泛的應用,如函數逼近、模式識別、分類和數據壓縮等領域[1?2]。由于目前一個神經網絡只能同時對一個函數進行擬合,針對此本文提出了一直串聯BP網絡同時實現兩個函數的擬合。
1 BP網絡結構與學習算法
BP神經網絡是目前應用最廣泛的拓撲結構。BP模型是一種多層前向網絡,這里采用的是三層BP神經網絡模型,它由輸入層、隱層和輸出層組成,其結構如圖1所示,分別為:
(1)輸入層節點,其輸出等于[xi]([i]=1,2,…,n),將控制變量值傳輸到隱含層;
(2)隱層節點[j],其輸入[hj],輸出[oj] 分別為:
[hj=i=1nwjxi-θj=i=1n+1wjxi]
[oj=f(hj)]
(3)輸出節點[k],其輸入[hk],輸出[ok] 分別為:
[hk=j=1m+1wjkoj]
[ok=f(hk)]
式中:[k]=1,2,…,[l];[f]為傳輸函數。
BP算法分兩步進行,即正向傳播和反向傳播[3]。
(1)正向傳播
輸入的樣本從輸入層經過隱單元逐層進行處理,通過所有的隱層之后,在傳向輸出層。在逐層處理的過程中,每一層神經元的狀態只對下一層神經元的狀態產生影響。在輸出層把現行輸出和期望輸出進行比較,如果現行輸出不等于期望輸出,則進入反向傳播過程。
(2)反向傳播
反向傳播時,把誤差信號按原來正向傳播的通路反向傳回,并對每個隱層的各個神經元的權系數進行修改,以望誤差信號趨向最小[4]。
2 BP網絡的串聯模型
神經網絡串聯即由兩個或兩個以上的神經網絡串聯所組成的新型網絡模型,用于串聯的各神經網絡稱為子神經網絡。神經網絡串聯模型中的各子神經網絡首尾相連,如圖2所示。
假設總的神經網絡由k個子神經網絡串聯而成,即第一個神經網絡的輸出作為第二個神經網絡的輸入,第二個神經網絡的輸出做為第三個神經網絡的輸入,以此類推下去。每一個子神經網絡均由同類型的神經網絡構成,在本文中,每一個子網絡都采用最常用的BP神經網絡,其子網絡的構建都遵循現有的BP網絡的構建形式,其基本的子網絡結構采用三層模式,一個輸入層,一個隱含層和一個輸出層[5?6]。
通過Matlab神經網絡工具箱的自定義的方法來實現兩個子BP網絡的串聯。
部分程序如下所示:
net=network;
net.numinputs=2;
net.numlayers=6;
net.biasConnect=[1;1;1;1;1;1];
net.inputConnect=[1 0;0 0;0 0;0 1;0 0;0 0];
net.layerConnect=[ 0 0 0 0 0 0;1 0 0 0 0 0 ;0 1 0 0 0 0;
0 0 1 0 0 0 ;0 0 0 1 0 0;0 0 0 0 1 0];
net.outputConnect=[ 0 0 1 0 0 1];
網絡的拓撲結構如圖3所示,其中每個子網絡的隱含層節點為20個,傳遞函數為tansig,輸出層采用線性函數[7]。
3 實驗測試與分析
運用本串聯BP網絡在Matlab 2011的環境中同時對兩個目標函數進行擬合。其目標函數為:
目標函數1:
[y=sin x]
目標函數2:
[y=x(1-16x2)e-x]
訓練樣本輸入的設置:輸入樣本p={p1’,p1’}其中p1=[-1:0.05:1],目標向量T={t1’;t2’},其中t1= sin(3*pi*p1),t2= p1.*(1-1/6*p1.^2).*exp(-p1)。并加入噪聲t3=sin(3*pi*p1)+0.15*randn(size(p1));t4=t2+0.15*randn(size(p1));T={[t3]’;[t4]’};對其進行訓練仿真[8?10]。
網絡的輸出y包含了兩個待擬合函數的擬合后的數據通過下面操作:
y1=cell2mat(y);
y2=y1’;
a=y2(1:1:41);
b=y2(42:1:82);
得到各自的擬合數據。
仿真結果如圖4~圖6所示。
由圖4、圖5仿真擬合曲線與待擬合函數曲線的比較可以看出此串聯網絡在通過加噪聲的訓練樣本訓練后能夠很好的對兩個待擬合函數進行擬合。由圖6知在經過342次訓練后其誤差達到了0.000 978。可見,通過此串聯BP神經網絡準確地擬合了待擬合函數曲線。
4 結 語
通過以上敘述可以看出本文設計的串聯神經網絡能夠和好地對函數曲線進行擬合,為同時實現多函數曲線的擬合提供了新的方法。
參考文獻
[1] 張雨濃,蔡炳煌.人工神經網絡研究進展及論文發表過程[M].北京:電子工業出版社,2010.
[2] 蔣正金,汪曉東,端木春江.采用BP神經網絡擬合光纖位移傳感器特性曲線[J].微型機與應用,2012,31(4):67?69.
[3] 郭軍.BP神經網絡算法研究[D].武漢:華中科技大學,2005.
[4] 賈麗會,張修如.BP算法分析與改進[J].計算機技術與發展,2006,16(10):102?107.
[5] 劉華,高大啟.RBF_LBF 串聯神經網絡的分類應用及其學習算法[J].計算機應用,2004,24(10):100?104.
[6] 鄧秋香.神經網絡串并聯學習算法在B超圖像識別中的應用[D].武漢:武漢理工大學,2008.
[7] 張德豐.Matlab神經網絡應用設計[M].北京:機械工業出版社,2012.
[8] 陳小宇,喬翠蘭,汪瑞祥,等.基于BP算法神經網絡的物理實驗曲線擬合[J].物理實驗,2002,22(9):10?13.
[9] 李潔.BP網絡的算法及在Matlab上的程序仿真[J].西安航空技術高等專科學校學報,2009,27(1):42?43.
[10] 張寶堃,張寶一.基于BP 神經網絡的非線性函數擬合[J].電腦知識與技術,2012,27(8):6579?6583.
[11] 李鋒,袁軍社.BP神經網絡在結構邊界參數識別中的應用[J].火箭推進,2009(4):30?33.