摘 要:應用BP神經網絡建立船舶的耐波性評價模型,通過調用Matlab中的神經網絡工具箱來完成評價模型的GUI實現(xiàn)。在GUI設置界面內加入神經網絡的輸入向量和輸出向量,同時設置網絡需要的各種參數(shù),可以很直觀的查看評價模型的結構,減輕了使用者的認知負擔。應用GUI窗口訓練評價網絡,然后加入測試樣本進行仿真測驗,整個實現(xiàn)過程操作方便,使船舶耐波性的評價更人性化。
關鍵詞:BP神經網絡 船舶耐波性評價 GUI
中圖分類號:U675.91文獻標識碼:A文章編號:1674-098X(2012)09(a)-0009-02
人工神經網絡是一種新型信息處理體系,其智能化特征與能力使其應用在諸多領域,并且在解決問題方面取得了良好的效果。BP神經網絡是基于誤差反向傳播算法的多層前饋型神經網絡,適用于多因素共同作用下的系統(tǒng)安全狀態(tài)綜合評價。在Matlab環(huán)境下應用BP神經網絡建立的船舶耐波性評價模型,為耐波性評價及指導船舶操縱提供了一種有效的方法。[1]
GUI(Graphical User Interface)是指人機交互圖形用戶界面設計,用戶可以通過選擇、激活圖形對象,實現(xiàn)某種特定的功能,使操作更人性化,減輕使用者的認知負擔[2]。本文通過GUI界面的網絡設計,能夠實現(xiàn)船舶耐波性評價的BP神經網絡模型,從而進行船舶的安全評價,提高船舶耐波性評價效率,能夠更方便、更有效的指導船舶操縱。
1 船舶耐波性評價模型的建立
船舶耐波性是指船舶在波浪擾動下,產生各種搖蕩運動、砰擊、甲板上浪、失速、螺旋槳出水以及波浪彎矩等,仍能維持一定航速在波浪中安全航行的性能。建立船舶耐波性評價模型首先要確定影響船舶安全的耐波性因素,影響船舶航行安全的耐波性因素有橫搖、橫蕩、縱搖、縱蕩、升沉、首搖、砰擊、失速、暈船率、甲板上浪、甲板淹埋、穩(wěn)性損失、螺旋槳出水、縱向波浪彎矩、船體某橫剖面加速度、橫向加速度、操縱性能惡化等。在文獻[1]中,作者選取了橫搖、縱搖、砰擊、升沉、甲板上浪、螺旋槳出水和船首垂向加速度等7個對船舶海上安全航行影響較大的耐波性因素。并且作者以某20000噸級油輪為例,根據油輪自身的結構特點和任務情況,依據專家建議及參考相關文獻的結果,在綜合考慮了船舶耐波性因素衡準值的選取因素后,分別給出了各耐波性因素的評價指標值和允許概率。
BP神經網絡是基于誤差反向傳播算法的多層前饋型神經網絡,應用它來建立船舶的耐波性評價模型需要取得訓練樣本和測試樣本。在文獻[1]中作者設計出了30個樣本,在這些樣本中選擇前28個樣本為訓練樣本,將第29、30個樣本用來作為網絡的測試樣本,用來測試船舶耐波性網絡模型的性能。一個樣本的形成需要輸入向量和輸出向量,文中將選取的7個耐波性因素作為網絡模型的樣本輸入,將由耐波性綜合評估方程[3]得到的耐波性安全評估值作為樣本的輸出。在完成網絡模型的建立過程中還需要確定網絡的結構和選擇有效的網絡參數(shù),由此才能保證建立起來的網絡模型具有良好的性能。在文獻[1]中建立起來的網絡模型輸出層的傳遞函數(shù)選擇線性的purelin函數(shù),隱層傳遞函數(shù)選擇S型函數(shù)tansig。并設置一個隱層,隱層神經元的數(shù)目為15,網絡的學習速率確定為0.05。通過建立起來的船舶耐波性評價模型網絡訓練過程如圖1所示。
由圖中可以看出,網絡經過7848次訓練達到了訓練精度10-4。將第29、30個樣本進行測試,測試的誤差絕對值為0.0033和0.0042,說明網絡輸出值與期望值很接近,證明BP神經網絡可以用來建立船舶的耐波性評價模型。
2 船舶耐波性評價模型的GUI實現(xiàn)
船舶耐波性的GUI實現(xiàn)是在Matlab環(huán)境下通過調用其神經網絡工具箱,然后設置所需要的各個參數(shù)來完成。[4]
1)打開Matlab,將需要用到的網絡訓練樣本和測試樣本的輸入向量和目標輸出向量分別輸入到Matlab界面上的命令窗口。在命令窗口鍵入nntool命令打開神經網絡工具箱。
2)在神經網絡工具箱中點擊Import按鈕,將Matlab工作區(qū)中的訓練樣本(P、T)和測試樣本(P_test、T_test)的輸入向量和目標輸出分別加入到對應的窗口([Inputs]和[Targets])中。
3)創(chuàng)建神經網絡。
點擊[New Network]按鈕,首先選擇Network Type,即選擇網絡類型為BP神經網絡,然后設置各參數(shù):
(1)Input Range——輸入向量的取值范圍,通過點擊Get From Input下拉框選擇輸入向量P來自動完成。
(2)Training Function——網絡訓練函數(shù),在此選擇TRAINGDA,即可變學習速率的梯度下降算法。該算法具備自適應學習速率,使當前學習速率依據誤差曲面的局部復雜性確定,采用最大的學習步長來保持網絡訓練的穩(wěn)定,能夠較大的提高網絡性能。[5]
(3)Layer 1 Number of Neurons——設置隱層神經元的個數(shù),一般來說,神經元越多,輸出的數(shù)值與目標值越接近,但所花費的訓練時間也越長,反之,神經元越少,輸出值與目標值相差越大,但訓練時間會相應地減少。隱層神經元的數(shù)目大都是通過經驗公式獲得,再通過網絡訓練結果進行選擇,本文通過經驗公式和網絡訓練的結果選取隱層神經元的個數(shù)為15。
(4)Layer 1 Transfer Function——隱層的傳遞函數(shù),根據網絡的數(shù)據類型,采用文獻[1]中選用的S型函數(shù)TANSIG為隱層傳遞函數(shù),它表示隱層輸出是[-1,1]之間的實數(shù)。
(5)Layer 2 Number of Neurons——輸出層神經元的個數(shù),與輸出的矩陣行數(shù)對應,本文將綜合評估方程的評估值作為網絡輸出,則輸出向量的維數(shù)為1,所以輸出層神經元數(shù)目為1。
(6)Layer 2 Transfer Function——輸出層傳遞函數(shù),選擇線性傳遞函數(shù)PURE LIN。
所有參數(shù)輸入后,可以用View按鈕預覽建立起的神經網絡結構。查看網絡正確后應用Create鍵生成新建的神經網絡。
4)網絡創(chuàng)建后,進行網絡訓練。
點擊Train按鈕,進入Training Info(訓練信息)選項卡,在輸入向量[Inputs]選擇P,目標輸入向量[Targets]選擇T。然后進入Train Parameters(訓練參數(shù))選項卡,填入的迭代次數(shù)[epochs]為10000,結果顯示頻率[show]為25(每隔25次迭代顯示結果窗口),目標誤差[goal]為0.0001(即函數(shù)的訓練精度為10-4),網絡的學習速率[lr]設置為0.05來保證網絡的穩(wěn)定,如圖2所示。接著點擊按鈕[Train Network]進行網絡訓練,得到的網絡訓練過程跟前述圖1所示訓練過程一樣。
5)神經網絡的仿真測試。
選定訓練好的神經網絡,點擊View按鈕,再點擊Simulate按鈕,在Simulate Data中的Inputs一欄中選擇P_test作為測試的數(shù)據,然后點擊Simulate Network,測試結束后可以在Outputs中看到結果,在Errors中可以看到誤差,如圖3所示。
通過上面幾個步驟就完成了應用BP神經網絡建立船舶耐波性評價模型的GUI實現(xiàn),實現(xiàn)的結果跟文獻[1]中的結果一樣,但更易于認知和理解,有利于評價模型的使用。
3 結語
本文將應用BP神經網絡方法建立起的船舶耐波性評價模型進行GUI實現(xiàn),形成了直觀的網絡模型結構,建立起來的圖形界面對于用戶來說在視覺上更易于接受,使讀者和使用者在操作和應用模型時更人性化,從而有效和快速的進行船舶的耐波性評價和指導船舶的操縱。通過GUI實現(xiàn),可以進一步應用Matlab與其他外部程序的接口方法和技巧實現(xiàn)通過窗口、菜單、按鍵等方式來方便地進行評估和操作。
參考文獻
[1]李生長.基于BP神經網絡的船舶耐波性評價[J].大連海事大學學報,2012(1):15-17.
[2]熊文海,毛筱菲,李毓江.船舶耐波性衡準及其評價方法淺析[J].船海工程,2007(4).
[3]朱凱,王正林.精通Matlab神經網絡[M].北京:電子工業(yè)出版社,2010.