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