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