在工程應用中經常會遇到一些復雜的非線性系統(我們航空發動機就是典型的強非線性模型),這些系統狀態方程復雜,難以用數學方法准確建模。在這種情況下,可以建立BP神經網路表達這些非線性系統。該方法把未知系統看成黑箱,首先用系統輸入輸出數據訓練BP神經網路,使網路能夠表達該未知函數,然後用訓練好的BP神經網路預測系統輸出。
本文要擬合的非線性函數是
該函數的圖形如下圖1所示。
回顧上一篇文章建立BP網路的演算法流程,進行具有非線性函數擬合的BP網路可以分為網路構建、訓練和預測三步,如下圖2所示。
BP神經網路構建 根據要擬合的非線性函數特點確定BP網路結構,由於該非線性函數有兩個輸入參數,一個輸出參數,所以BP網路結構可以設置為2-5-1,即輸入層有2個節點,隱含層有5個節點,輸出層有1個節點。
BP神經網路訓練 用非線性函數輸入輸出數據訓練神經網路,使訓練後的網路能夠預測非線性函數輸出。從非線性函數中隨機得到2 000組輸入輸出數據,從中隨機選擇1 900組作為訓練數據,用於網路訓練,100組作為測試數據,用於測試網路的擬合性能。
神經網路預測 用訓練好的網路預測輸出,並對預測結果進行分析。
根據非線性函數方程隨機得到該函數的2 000組輸入輸出數據,將數據存儲在data.mat文件中,input是函數輸入數據,output是函數輸出數據。從輸入輸出數據中隨機選取1 900組數據作為網路訓練數據,100組作為網路測試數據,並對訓練數據進行歸一化處理。
用訓練數據訓練BP神經網路,使網路對非線性函數輸出具有預測能力。
用訓練好的BP神經網路預測非線性函數輸出,並通過BP神經網路預測輸出和期望輸出,分析BP神經網路的擬合能力。
用訓練好的BP神經網路預測函數輸出,預測結果如下圖3所示。
BP神經網路預測輸出和期望輸出的誤差如下圖4所示。
從圖3和圖4可以看出,雖然BP神經網路具有較高的擬合能力,但是網路預測結果仍有一定誤差,某些樣本點的預測誤差較大。
在上一篇文章中提到了調整隱含層節點數目、改變權值和閾值更新演算法以及變學習率學習演算法等方法,針對非線性擬合,BP神經網路的優化還可以使用多隱層的BP神經網路、改變激活函數等方法。
❷ 建立BP神經網路地面沉降預測模型
基坑降水引起地面沉降的BP神經網路預測模型建模過程如下:
(1)樣本選擇
因基坑降水引起的地面沉降量和距離基坑的距離關系密切,因此建模選用「基坑降水引起沉降工程數據(第二類)」(見表4.1)中的相關數據作為樣本進行學習訓練和檢驗。
(2)BP神經網路結構設計
對於BP網路,對於任何在閉區間內的一個連續函數都可以用單隱層的BP網路逼近,因而一個三層BP網路就可以完成任意的n維到m維的映射。根據網路結構簡單化的原則,確定採用三層BP網路結構,即輸入層為沉降點距基坑的距離L(m)、等效壓縮模量E(MPa)、水位降深H(m)和支護剛度n四個參數,輸出層為地面累積沉降量(mm),隱層層數為1層。隱層的神經元數目選擇是一個十分復雜的問題,往往需要根據設計者的經驗和多次實驗來確定,因而不存在一個理想的解析式來表示。隱單元的數目與問題的要求,與輸入、輸出單元的數目有直接的關系。隱單元數目太多會導致學習時間過長,誤差不一定最佳,也會導致容錯性差、不能識別以前沒有看到的樣本,因此一定存在一個最佳的隱單元數。研究通過一次編程比較了隱層神經元個數分別為5、10、15、20、25、30、40時訓練速度及檢驗精度。
圖4.2 BP神經網路程序框圖
(3)網路訓練及檢驗
BP網路採用梯度下降法來降低網路的訓練誤差,考慮到基坑降水地面沉降范圍內沉降量變化幅度較小的特點,訓練時以訓練目標取0.001為控制條件,考慮到網路的結構比較復雜,神經元個數比較多,需要適當增加訓練次數和學習速率,因此初始訓練次數設為10000次,學習速率取0.1,中間層的神經元傳遞函數採用S型正切函數tansig,傳輸函數採用logsig,訓練函數採用trainlm,選用38組數據中的33組作為訓練樣本,5組作為檢驗樣本。
(4)網路實現及檢驗效果
使用MATLAB6.0編程建立基於BP神經網路的基坑降水地面沉降預測模型(程序代碼見附件1),其訓練誤差及檢驗效果如下:
圖4.3 訓練誤差曲線
圖4.4 預測誤差曲線
由圖4.3、圖4.4可見:樣本數據收斂,訓練誤差較小,中間層神經單元個數為10時預測精度較好,誤差小於20%,誤差滿足工程需求。