詹 可, 朱仁傳
(上海交通大學(xué) 船舶海洋與建筑工程學(xué)院;海洋工程國家重點實驗室,上海 200240)
船舶在航行時受風(fēng)、浪、流等復(fù)雜外力的作用,各自由度上均會產(chǎn)生不規(guī)則的搖蕩運動.當搖蕩幅度過大時,船舶的航行和作業(yè)安全將會受到嚴峻的挑戰(zhàn).提前預(yù)報船舶未來的搖蕩運動可為操作人員提供更多的決策時間,提高安全性與穩(wěn)定性.
船舶運動響應(yīng)的短期預(yù)報可以視作一個典型的時間序列預(yù)測(Time Series Forecasting, TSF)問題.經(jīng)典的時間序列分析方法,如自回歸模型(Auto Regression Model, ARM)[1]、卡爾曼濾波(Kalman Filtering)[2]等結(jié)構(gòu)簡單,計算效率高,但在處理非平穩(wěn)、非線性的時間序列時效果不佳.支持向量機(Support Vector Machines, SVM)、人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network, ANN)等機器學(xué)習(xí)模型具有強大的非線性擬合能力,因而在船舶運動預(yù)報領(lǐng)域得到廣泛重視.Zhou等[3]使用結(jié)合經(jīng)驗?zāi)B(tài)分解的最小二乘支持向量機(Least Squares Support Vector Machines, LS-SVM)預(yù)報船舶運動.Pena等[4]通過人工神經(jīng)網(wǎng)絡(luò)對船舶橫搖運動進行預(yù)測.近年來,循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network, RNN)及其變種,尤其是長短時記憶(Long Short-Term Memory, LSTM)網(wǎng)絡(luò)[5]成為了熱門模型.RNN中隱藏層的輸入包含了上一時刻隱藏層的輸出,能夠更好地記憶并學(xué)習(xí)序列的歷史信息,因而更適用于長時間序列的預(yù)報,LSTM則在RNN的基礎(chǔ)上引入了記憶狀態(tài)和門控單元,進一步提升了預(yù)報效果.長短時記憶網(wǎng)絡(luò)等還可與卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)、注意力機制(Attention Mechanism)等相結(jié)合.Wang等[6]結(jié)合CNN與雙向LSTM,建立了基于風(fēng)速、舵角等多維輸入的船舶橫搖運動預(yù)報模型.Wang等[7]引入時間模式注意力機制(Temporal Pattern Attention, TPA)對雙向LSTM輸出結(jié)果進行修正,提升了橫搖運動預(yù)報效果.Zhang等[8]將多尺度注意力機制與雙向LSTM結(jié)合以預(yù)測船舶運動.除應(yīng)用新的機器學(xué)習(xí)模型外,使用小波變換(Wavelet Transform)[8]、經(jīng)驗?zāi)B(tài)分解(Empirical Mode Decomposition, EMD)[9]等數(shù)據(jù)前處理方法也可提升預(yù)報精度.
船舶搖蕩運動具有明顯的周期性,且一般不會出現(xiàn)高頻震蕩,因而根據(jù)序列局部極值點的信息即能較好地還原船舶的運動時歷.從實際需求出發(fā),船舶航行與作業(yè)時也更加關(guān)注搖蕩極值,而當前尚未對此做出深入的研究.本文結(jié)合船舶各自由度搖蕩運動頻譜捕獲序列中的局部極值和周期信息,在此基礎(chǔ)上構(gòu)造CNN-LSTM深度學(xué)習(xí)模型,通過CNN的卷積運算進行序列特征提取,再輸入LSTM模塊進行進一步的時間特征學(xué)習(xí),最終得到預(yù)報結(jié)果.對S175船進行仿真實驗,結(jié)果表明,該模型預(yù)報效果優(yōu)于LSTM、門控循環(huán)單元(Gated Recurrent Unit, GRU)等模型,具有較高的應(yīng)用價值.
對于船舶單個自由度搖蕩運動數(shù)據(jù)構(gòu)成的一維時間序列X={xi,i=1, 2, …,N}∈R1×N,采樣間隔為Δt,可采用滑動窗口的形式捕獲其局部極值點,其計算流程如下式:
(1)
式中:C∈R1×N為判定向量,判定數(shù)據(jù)點是否為局部極值點,0表示非局部極值點,1表示為局部極值點;P∈R1×N為位置向量,記錄局部極值點在原始序列中的位置;E∈R1×card(P)為極值點向量,記錄局部極值點的數(shù)值,card(P)為P中的元素個數(shù);T∈R1×card(P)為周期向量,記錄相鄰局部極值點的距離;d為滑動窗口寬度.
對于船舶搖蕩運動序列,所取窗口寬度過小時容易受到噪聲的干擾;所取窗口寬度過大時,又會造成信息損失.不同窗口寬度對極值信息提取的效果如圖1所示.圖中:X表示位移;t表示時間.
圖1 不同窗口寬度對極值提取效果的影響Fig.1 Effect of different window widths on extreme value extraction
考慮到船舶運動頻譜在較長的時間內(nèi)保持相對穩(wěn)定,且包含船舶運動的頻域信息,本文選擇結(jié)合運動響應(yīng)譜來確定窗口寬度.各自由度的運動響應(yīng)譜通過Welch法[10]計算,其基本步驟如下.
對于長度為N的序列X,將其分為L個小段,分別記作li(i=1, 2, …,L),每個小段長度為M,相鄰小段間重疊長度為M/2,則段數(shù)
(2)
對每個小段添加窗函數(shù)w(m)后作傅里葉變換:
(3)
式中:i=1, 2, …,L;j為虛數(shù)單位;ω為頻域中的對應(yīng)頻率.
窗函數(shù)一般取Hanning窗,其表達式為
(4)
式中:m=0, 1, …,M-1.
計算各小段功率譜的均值作為最終結(jié)果:
(5)
(6)
式中:[·]為取整函數(shù).
卷積神經(jīng)網(wǎng)絡(luò)是一類以卷積運算為核心的深度前饋神經(jīng)網(wǎng)絡(luò).完整的二維卷積神經(jīng)網(wǎng)絡(luò)通常包括輸入層、卷積層、池化層、全連接層、輸出層等模塊[11].卷積神經(jīng)網(wǎng)絡(luò)對數(shù)據(jù)的特征提取主要依賴于卷積層中的卷積核,其計算過程[12]為
(7)
如圖2所示,卷積核(也稱為過濾器)通過逐步平移的方式掃描二維數(shù)據(jù)并進行卷積運算,從而提取數(shù)據(jù)特征,其中藍色區(qū)域為卷積核計算區(qū)域,黃色部分為卷積核,橙色部分為卷積核計算結(jié)果.為充分提取特征信息,一般需要設(shè)置多個卷積核.
圖2 卷積核計算過程Fig.2 Convolution kernel calculation process
池化層采用類似的逐步平移方式掃描卷積層輸出的特征圖,依次捕獲過濾器內(nèi)的最大值,從而縮減數(shù)據(jù)規(guī)模,降低模型復(fù)雜度.通過多個卷積層和池化層的交替堆疊,可以更好地提取數(shù)據(jù)的深層特征.
長短時記憶網(wǎng)絡(luò)是循環(huán)神經(jīng)網(wǎng)絡(luò)的一個變種,該網(wǎng)絡(luò)能有效解決傳統(tǒng)模型訓(xùn)練過程中的梯度消失問題[13],適用于長時間序列的分析和預(yù)測.與標準的RNN網(wǎng)絡(luò)相比,LSTM在隱藏層神經(jīng)節(jié)點中增加了一個記憶狀態(tài)單元來存儲過去的信息,并用3種門控結(jié)構(gòu)(輸入門、遺忘門、輸出門)來控制歷史信息的遺忘與更新.LSTM隱藏層神經(jīng)元的基本結(jié)構(gòu)[14]如圖3所示.
圖3 LSTM單元結(jié)構(gòu)Fig.3 LSTM neural network
LSTM網(wǎng)絡(luò)根據(jù)如下規(guī)則[6]更新時刻狀態(tài):
gi=σ(Wi[ht-1xt]+bi)
(8)
gf=σ(Wf[ht-1xt]+bf)
(9)
go=σ(Wo[ht-1xt]+bo)
(10)
(11)
(12)
ht=go*tanhct
(13)
式中:xt為t時刻的輸入向量;ht為t時刻的隱藏狀態(tài)向量;ct為t時刻的記憶狀態(tài)向量;gi、gf、go分別代表輸入門、遺忘門和輸出門;Wi、Wf、Wo、Wc分別代表各連接層的權(quán)重矩陣;bi、bf、bo、bc分別代表各連接層的偏置項;σ為sigmoid函數(shù).當前時刻的輸入xt,上一時刻的隱藏狀態(tài)ht-1以及上一時刻的記憶狀態(tài)ct-1依次通過上述3個門控單元gi、gf和go進行計算,得到當前時刻的隱藏狀態(tài)ht和記憶狀態(tài)ct,并作為下一時間步的輸入繼續(xù)推進,門控單元內(nèi)的權(quán)重矩陣、隱藏狀態(tài)和記憶狀態(tài)也隨之不斷更新,從而實現(xiàn)對序列信息的訓(xùn)練學(xué)習(xí).
為充分發(fā)掘船舶運動的各個模態(tài)間可能存在潛在的映射關(guān)系,本文構(gòu)造了基于多維數(shù)據(jù)輸入的CNN-LSTM預(yù)報模型,如圖4所示.圖中:ReLU為激活函數(shù),表達式f(x)=max{0,x};Dropout層為隨機失活層,通過隨機使一定比例神經(jīng)元失活的方式防止出現(xiàn)參數(shù)過擬合.在對一系列超參數(shù)組進行初步測試后,選取其中表現(xiàn)最優(yōu)的一組作為模型參數(shù),如表1所示.
表1 CNN-LSTM模型具體參數(shù)Tab.1 Parameters of CNN-LSTM model
圖4 CNN-LSTM預(yù)報模型結(jié)構(gòu)Fig.4 Structure of CNN-LSTM model
圖5 CNN-LSTM預(yù)報模型計算流程Fig.5 Calculation process of CNN-LSTM model
本文采用誤差反傳算法訓(xùn)練模型參數(shù),損失函數(shù)取均方誤差(Mean Squared Error, MSE),優(yōu)化器為Adam,初始學(xué)習(xí)率為0.001,迭代總數(shù)為1 200次,訓(xùn)練批量大小為10.選取數(shù)據(jù)集的前95%為訓(xùn)練集,后5%為測試集.依賴步數(shù)l=30,向后預(yù)報步數(shù)k分別取1, 2.
本文以S175集裝箱船為對象,其主尺度參數(shù)為:船長175 m,船寬25.4 m,吃水9.5 m,排水體積 23 680 m3,方形系數(shù)0.572.通過海洋系統(tǒng)模擬器 (Marine Systems Simulator,MSS)軟件[15]計算生成其迎浪0航速下垂蕩、橫搖、縱搖、首搖4個自由度的搖蕩時間序列,分別記為X3、X4、X5、X6,以船舶及海上平臺作業(yè)時最為關(guān)注的X3、X4、X5為3個目標維度.波浪基于Jonswap譜生成,其表達式[16]如下:
(14)
式中:h1/3為有義波高;T1為特征周期;ωp為譜峰頻率;θ為成分波與平均浪向之間的夾角.波浪相關(guān)參數(shù)為:有義波高5 m,特征周期9.7 m,譜峰頻率 0.6 rad/s,平均浪向180°,頻率區(qū)間數(shù)50,浪向區(qū)間數(shù)20.為保證預(yù)報結(jié)果的一般性,該參數(shù)為隨機選取,后續(xù)使用的船舶運動數(shù)據(jù)均基于該組參數(shù)生成.
圖6 四自由度運動響應(yīng)譜Fig.6 Motion response spectrum of four degrees of freedom
圖7 數(shù)據(jù)集局部圖像(前50個點)Fig.7 Image of Local dataset (top 50 points)
2.2.1模型評價指標 為分析模型的預(yù)報效果,本文選取平均絕對誤差(Mean Absolute Error,eMAE)、均方誤差(Mean Squared Error,eMSE)、均方根誤差(Root Mean Squared Error,eRMSE)和相關(guān)系數(shù)(Correlation Coefficient,r)4個指標進行評估.以上均為時間序列預(yù)測領(lǐng)域的通用評價指標,具有一定的普適性.各指標由下式計算:
(15)
(16)
(17)
(18)
2.2.2對照模型 為進一步驗證預(yù)報性能,本文設(shè)置了兩種對照模型.模型1的基礎(chǔ)框架為前述CNN-LSTM模型的LSTM部分,模型2在模型1的基礎(chǔ)上將LSTM單元替換為GRU[17].GRU將LSTM的輸入門和遺忘門合并更新門,其待訓(xùn)練參數(shù)少于LSTM.
分別使用上述CNN-LSTM、LSTM、GRU模型對S175船在波浪中3個自由度的搖蕩運動進行極值信息預(yù)報.各模型向后預(yù)報一個極值時的結(jié)果如圖8所示.采用2.2.1中的評價指標評估各模型在測試集上的預(yù)報誤差,結(jié)果如表2所示.
表2 各模型單步預(yù)報誤差Tab.2 Single step prediction error
圖8 各模型單步預(yù)報結(jié)果Fig.8 Results of single step prediction
本文提出的CNN-LSTM模型在各項誤差指標上都優(yōu)于LSTM和GRU模型,以MSE為標準,3個自由度下的預(yù)報效果比LSTM模型分別提升了55.5%、51.1%和47.4%,比GRU模型分別提升了56.9%、47.1%和47.2%.以MAE為標準,3個自由度下的預(yù)報效果比LSTM模型分別提升了32.4%、22.3%和27.1%,比GRU模型分別提升了33.5%、21.5%和27.1%.從圖像上看,CNN-LSTM模型的預(yù)報幅值普遍比其余兩種模型更接近真實值;而在序列出現(xiàn)非平穩(wěn)波動處,LSTM和GRU模型的預(yù)報結(jié)果偏差較大,而CNN-LSTM模型仍能較好地給出預(yù)報結(jié)果.可見,CNN-LSTM 模型中卷積層和池化層對數(shù)據(jù)特征信息的提取顯著提升了預(yù)報性能,該模型能夠基于歷史數(shù)據(jù)較為精確地預(yù)報下一極值點的信息.
CNN-LSTM模型提前2步的極值預(yù)報結(jié)果如圖9所示.提前2步預(yù)報的誤差情況如表3所示.
表3 CNN-LSTM模型多步預(yù)報誤差Tab.3 Multi-step prediction error
圖9 CNN-LSTM模型多步預(yù)報結(jié)果Fig.9 Results of multi-step prediction
可見,CNN-LSTM模型的多步預(yù)報精度有所下降,同時預(yù)報結(jié)果出現(xiàn)了一定的滯后性.這是由于序列本身具有非平穩(wěn)非線性的特點,隨著預(yù)報步數(shù)的增加,輸入值與預(yù)報值間的潛在規(guī)律更加復(fù)雜,訓(xùn)練難度也因此上升.圖10所示為各自由度預(yù)報結(jié)果與實際觀測值間的相關(guān)性分析.其中,Xp表示預(yù)測值,Xr表示真實值.可見,預(yù)報結(jié)果的變化趨勢仍與實際情況吻合較好,提前2步的3自由度預(yù)報值與實際值的平均相關(guān)系數(shù)分別為81.8%、90.7%和94.6%,能夠滿足實際需求.
圖10 預(yù)報結(jié)果與實際值的相關(guān)性分析Fig.10 Correlation analysis of prediction results and actual values
以船舶搖蕩運動的極值信息為預(yù)報目標,以船舶4個自由度的運動時間序列為原始數(shù)據(jù),構(gòu)造了一種CNN-LSTM組合預(yù)報模型.針對S175船的驗證結(jié)果表明,該模型在單步預(yù)報時精度良好,各項誤差指標相較LSTM和GRU模型均有明顯提升,垂蕩、橫搖、縱搖3個自由度下的MSE較LSTM模型分別提升了55.5%、51.1%和47.4%,較GRU模型分別提升了56.9%、47.1%和47.2%;MAE較LSTM模型分別提升了32.4%、22.3%和27.1%,較GRU模型分別提升了33.5%、21.5%和27.1%.在多步預(yù)報時誤差指標略有下降,但預(yù)報趨勢仍能與實際值保持吻合,提前2步的3自由度預(yù)報值與實際值的平均相關(guān)系數(shù)分別為81.8%、90.7%和94.6%.
本文提出的預(yù)報模型具有以下優(yōu)點:① 結(jié)合船舶運動響應(yīng)譜進行數(shù)據(jù)前處理,有效提取了船舶運動極值信息,同時抑制了高頻噪聲的影響;② 通過CNN模塊發(fā)掘?qū)W習(xí)各維度數(shù)據(jù)間的潛在聯(lián)系,充分利用了已知信息,并提高了預(yù)報精度;③ 模型預(yù)報效果良好,仿真實驗表明該模型能夠準確預(yù)報未來1~2個周期內(nèi)船舶運動的極值信息,且預(yù)測指標明顯優(yōu)于對照模型.在此基礎(chǔ)上,未來可進一步探究該模型針對實測復(fù)雜海況下的預(yù)報效果,并實現(xiàn)完整的在線預(yù)報流程.該工作對于諸如艦載機起降、海上平臺安裝等場景具有重要應(yīng)用價值,同時也可為波浪信息預(yù)報等時間序列預(yù)測問題提供參考.