樊翔,程陳,侯先瑞,施文煜,桂皓
(1.上海船舶研究設(shè)計院,上海 201203;2.上海海事大學(xué),上海 201303)
由于海況的復(fù)雜性, 船舶在航行過程中會受到風(fēng)、浪、流等因素的綜合作用而產(chǎn)生垂蕩、橫搖、縱搖等搖蕩運動, 嚴(yán)重時將威脅船舶航行和作業(yè)安全。 若能提前對船舶運動姿態(tài)進行預(yù)報,進而對船舶的相關(guān)操作做出預(yù)判, 便可使船舶航行時有效規(guī)避風(fēng)險,進而提高船舶航行的安全性[1]。因此,如何有效地對船舶運動進行實時準(zhǔn)確預(yù)報, 一直是船舶與海洋工程領(lǐng)域重點關(guān)注的熱點問題之一。
為準(zhǔn)確預(yù)報船舶運動,國內(nèi)外學(xué)者[2-4]相繼提出了多種預(yù)報方法,根據(jù)這些方法的理論基礎(chǔ)。 從理論范疇來看,可分為基于線性系統(tǒng)理論的方法(卡爾曼濾波法、時間序列的回歸預(yù)報模型等)[5-6],基于非線性系統(tǒng)理論的方法 (基于突變理論的預(yù)報方法、基于混沌理論的預(yù)報方法、小波分析的預(yù)報方法等)[7-9],以及基于機器學(xué)習(xí)理論的預(yù)報方法(人工神經(jīng)網(wǎng)絡(luò)、支持向量機、深度學(xué)習(xí)算法等)[10]。 從船舶運動特性來看,又可以分為平穩(wěn)線性預(yù)報、平穩(wěn)非線性預(yù)報、 非平穩(wěn)線性預(yù)報和非平穩(wěn)非線性預(yù)報。 船舶運動預(yù)報方法分類如圖1 所示。
圖1 船舶運動預(yù)報方法
近十年來,隨著人工智能技術(shù)的發(fā)展,尤其是隨著深度神經(jīng)網(wǎng)絡(luò)技術(shù)的進步,利用神經(jīng)網(wǎng)絡(luò)對船舶運動進行預(yù)報逐漸受到眾多研究者的關(guān)注。 鑒于船舶運動的非線性特性,將人工神經(jīng)網(wǎng)絡(luò)用于船舶運動預(yù)報領(lǐng)域,可以借助人工神經(jīng)網(wǎng)絡(luò)的自適應(yīng)自學(xué)習(xí)及無限逼近非線性函數(shù)的能力,通過對大量歷史數(shù)據(jù)的學(xué)習(xí)來模擬船舶在各種情況下的運動規(guī)律。 在國內(nèi)外學(xué)者的共同努力下,已有多種神經(jīng)網(wǎng)絡(luò)模型用于船舶運動預(yù)報領(lǐng)域并取得了不錯的成果。 基于人工神經(jīng)網(wǎng)絡(luò)理論,通過構(gòu)造基于徑向基函數(shù)(Radial Basis Function,RBF)的神經(jīng)網(wǎng)絡(luò)模型,分別對船舶在波浪中的橫搖、 垂蕩-縱搖運動進行預(yù)報研究,以期實現(xiàn)對其的準(zhǔn)確預(yù)報。
人工神經(jīng)網(wǎng)絡(luò)是對人體神經(jīng)系統(tǒng)的概念化想象的仿生模型,其原理是模擬生物神經(jīng)元的學(xué)習(xí)過程。 為了仿效生物的神經(jīng)結(jié)構(gòu),神經(jīng)元是神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)處理單元。 神經(jīng)元包括輸入、輸出和數(shù)據(jù)處理等3 個部分。 神經(jīng)元的輸入接受的上一層所有神經(jīng)元的輸出, 而不和本層的其他神經(jīng)元進行關(guān)聯(lián)。神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)如圖2 所示。
圖2 神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)
單層神經(jīng)元模型(感知器模型)包括輸入層和輸出層,兩層之間使用權(quán)值連接。 所謂訓(xùn)練就是通過算法來更新權(quán)值使得網(wǎng)絡(luò)的誤差不斷減少,預(yù)報效果達到最佳。例如,輸入變量為[a1,a2,a3]T,用向量a表示,輸出為z,權(quán)重為w,偏置為b,則神經(jīng)元的輸出表示為z=g(wa+b)。 其中,函數(shù)g 表示神經(jīng)元的激活函數(shù),其作用是對線性疊加后的數(shù)據(jù)進行非線性映射。 在神經(jīng)網(wǎng)絡(luò)中經(jīng)常使用的激活函數(shù)包括雙曲正切激活函數(shù)、Sigmoid 型激活函數(shù)、 線性整流激活函數(shù)等。 單層神經(jīng)網(wǎng)絡(luò)僅能處理一些簡單的問題,對復(fù)雜的問題如異或問題無能為力,需要應(yīng)用多層神經(jīng)網(wǎng)絡(luò)模型。 與感知器模型相比,多層神經(jīng)網(wǎng)絡(luò)多了一個中間層,即隱含層(隱含層可以有多層),可以實現(xiàn)對任意非線性函數(shù)的高精度逼近。
在對多層神經(jīng)網(wǎng)絡(luò)模型進行訓(xùn)練學(xué)習(xí)時,需要根據(jù)學(xué)習(xí)誤差調(diào)整神經(jīng)網(wǎng)絡(luò)各層的權(quán)值和偏置,其中經(jīng)典的學(xué)習(xí)算法就是誤差反向傳播(Back Propagation,BP)算法。 BP 算法的基本原理:首先,利用當(dāng)前各層的權(quán)重和偏置值,計算每一層對輸入樣本的輸出值;其次,計算各輸出層節(jié)點的誤差,并根據(jù)鏈?zhǔn)角髮?dǎo)法則計算損失函數(shù)對權(quán)重和偏置的梯度值; 最后,采用梯度下降法更新各層神經(jīng)元的權(quán)重和偏置。
RBF 神經(jīng)網(wǎng)絡(luò)特點就是它的隱含層函數(shù)為RBF。RBF 函數(shù)是中心點徑向?qū)ΨQ,取值僅依賴于距中心點距離的非負(fù)實值函數(shù)。 通常情況下,隱含層有較高的維數(shù), 這就使得它能夠更加精確地逼近。常見的基函數(shù)有多二次函數(shù)、薄板樣條函數(shù)、逆多二次函數(shù)和高斯函數(shù)等,其中高斯RBF 函數(shù)的表達式如式(1)所示:
式中:參數(shù)σ 描述高斯基函數(shù)的寬度或“平坦程度,其值越大意味著以c 為中心的等高線越稀疏。
與傳統(tǒng)的BP 神經(jīng)網(wǎng)絡(luò)不同,RBF 神經(jīng)網(wǎng)絡(luò)是一個局部逼近的網(wǎng)絡(luò), 即各節(jié)點對輸出的貢獻取決于其距離中心的歐氏距離,距離越大的貢獻越小。 這種局部逼近使得它的收斂速度更快,學(xué)習(xí)效果更好。
圖3 是應(yīng)用RBF 神經(jīng)網(wǎng)絡(luò)模型對船舶的運動姿態(tài)進行預(yù)報的算法流程圖。
圖3 RBF 神經(jīng)網(wǎng)絡(luò)船舶運動預(yù)報流程圖
主要包括數(shù)據(jù)的收集、 數(shù)據(jù)降噪和歸一化處理。 采用的數(shù)據(jù)來自某FPSO 船的試驗數(shù)據(jù)。 該FPSO的垂線間長為356.00 m,型寬為69.00 m,型深為35.70 m,吃水15.2 m。通過試驗得到該船的橫搖、垂蕩-縱搖運動數(shù)據(jù)后, 受到測量設(shè)備本身或是傳輸中的各種因素影響,原始數(shù)據(jù)可能是冗余、含有噪聲的,因此需要對其進行預(yù)處理。 具體采用小波變換法對原始數(shù)據(jù)進行降噪,并對降噪后的數(shù)據(jù)進行歸一化和標(biāo)準(zhǔn)化處理。采用Min-Max 歸一化處理方法,見式(2)。
為提高收斂效率,對數(shù)據(jù)進行正則化處理:
式中:μ 為樣本數(shù)據(jù)均值;σ 為樣本數(shù)據(jù)的標(biāo)準(zhǔn)差。
RBF 神經(jīng)網(wǎng)絡(luò)模型的確定是關(guān)鍵環(huán)節(jié),模型結(jié)構(gòu)是否合理直接影響到最終的預(yù)報結(jié)果的準(zhǔn)確性?;谔幚砗玫臄?shù)據(jù), 通常將數(shù)據(jù)劃分為訓(xùn)練集、交叉驗證集和測試集等3 部分,通過對交叉驗證集的損失函數(shù)評估來確定模型的雛形,通過對訓(xùn)練集的損失函數(shù)評估來確定參數(shù),而測試集用來檢測網(wǎng)絡(luò)模型的泛化能力。 RBF 神經(jīng)網(wǎng)絡(luò)在進行預(yù)報時,除需要確定網(wǎng)絡(luò)的輸入層、隱含層、輸出層節(jié)點個數(shù)外,還需確定徑向基函數(shù)的中心和寬度等。 RBF 網(wǎng)絡(luò)有多種方法可以確定中心,最常用的有隨機選擇法、k-means 聚類算法、自組織選取中心法和正交最小二乘法等。采用k-means 聚類算法確定RBF 神經(jīng)網(wǎng)絡(luò)的中心。
基于上述FPSO 船在有義波高15.0 m、 風(fēng)速39.0 m/s、譜峰周期15.1 s、表層流速2.0 m/s 下的橫搖運動模型試驗數(shù)據(jù),利用300 組樣本,劃分訓(xùn)練集、交叉驗證集和測試集,通過多次訓(xùn)練之后確定隱層節(jié)點數(shù)為300。
取徑向基擴展系數(shù)為0.3、迭代次數(shù)為300 時,誤差評價函數(shù)為均方誤差, 訓(xùn)練曲線如圖4 所示,可以看到,在大約250 次迭代之后,網(wǎng)絡(luò)達到收斂。
圖4 RBF 神經(jīng)網(wǎng)絡(luò)橫搖運動均方誤差訓(xùn)練曲線
利用訓(xùn)練后的網(wǎng)絡(luò), 分別取輸入層數(shù)據(jù)為10 s(20 節(jié)點)、15 s(30 節(jié)點)和20 s(40 節(jié)點)橫搖角序列, 預(yù)報后7 s 的橫搖角序列, 預(yù)報結(jié)果如圖5 所示:實線為實測的船模試驗數(shù)據(jù),稱為期望值,虛線為預(yù)報結(jié)果,稱為預(yù)報值。
圖5 RBF 神經(jīng)網(wǎng)絡(luò)橫搖運動預(yù)報結(jié)果
分析結(jié)果可知,取前15 s 的歷史數(shù)據(jù)作為輸入時,可以得到更好的預(yù)報結(jié)果,預(yù)報曲線擬合得更好。 但使用20 s 的歷史數(shù)據(jù)時,預(yù)報精度沒有明顯提升,與15 s 預(yù)報結(jié)果相差不大。 為驗證RBF 神經(jīng)網(wǎng)絡(luò)模型的有效性, 特別構(gòu)建BP 神經(jīng)網(wǎng)絡(luò)進行對比, 對輸入層為15 s 的橫搖角時間序列進行預(yù)報,其結(jié)果如圖6 所示。
圖6 BP 神經(jīng)網(wǎng)絡(luò)橫搖運動預(yù)報結(jié)果
通過對比可知,BP 神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程長達10 min 以上,而使用RBF 神經(jīng)網(wǎng)絡(luò)只需要5~8 s 就可以完成訓(xùn)練,結(jié)果證明RBF 神經(jīng)網(wǎng)絡(luò)具有更快的收斂速度, 同時從預(yù)報擬合曲線也可以看出,RBF神經(jīng)網(wǎng)絡(luò)具有更高的預(yù)報精度。
與橫搖類似, 使用構(gòu)建好的RBF 神經(jīng)網(wǎng)絡(luò)模型,分別取歷史數(shù)據(jù)為10 s 和15 s 的時間數(shù)據(jù)對船舶的垂蕩-縱搖時間序列進行預(yù)報, 結(jié)果如圖7 所示。
圖7 RBF 神經(jīng)網(wǎng)絡(luò)垂蕩-縱搖耦合運動預(yù)報
由以上結(jié)果可以得到,徑向基神經(jīng)網(wǎng)絡(luò)可以通過快速訓(xùn)練實現(xiàn)對船舶運動姿態(tài)長達7 s 的預(yù)報,且對目標(biāo)曲線擬合良好,具有一定的泛化能力。
鑒于船舶航行過程中的不確定性和非線性,通過應(yīng)用RBF 神經(jīng)網(wǎng)絡(luò),對船舶橫搖運動、垂蕩-縱搖耦合運動進行預(yù)報研究。 首先,對數(shù)據(jù)進行誤差修正、歸一化、正則化等特征工程,在此基礎(chǔ)上構(gòu)造樣本集,并將其劃分為訓(xùn)練集、交叉驗證集和測試集。其次,設(shè)計神經(jīng)網(wǎng)絡(luò)各層結(jié)構(gòu)及合理選擇基函數(shù)中心,利用所構(gòu)造的神經(jīng)網(wǎng)絡(luò)對實測數(shù)據(jù)進行預(yù)報測試,驗證所應(yīng)用方法的有效性和可靠性。 研究結(jié)果表明RBF 神經(jīng)網(wǎng)絡(luò)可以用于有效預(yù)報船舶在波浪中的橫搖運動、垂蕩-縱搖耦合運動。