尹石軍,林召凱,高海波,廖林豪
(1.招商局重工(江蘇)有限公司,江蘇 南通 226100;2.武漢理工大學 能源與動力工程學院,湖北 武漢 430063)
在全球貿易前所未有的高度發(fā)達體系下,整個航運業(yè)的運營船舶排放大約占據當前全球二氧化碳排放量的3%、氮氧化物的15%、硫氧化物的4%~9%[1-2]。船舶排放的根本原因在于工作中使用的燃料:船用重油和輕柴油,所以降低船舶的油耗就是降低排放。同時,船舶的燃料消耗也與船舶運營成本直接相關,伴隨著國際油價的持續(xù)上漲,燃油消耗的成本也越來越高,帶給航運企業(yè)的壓力也越來越大。
油耗模型的研究有許多方法,可大致分為三類:第一類是以分析船舶內部各物理量關系為基礎建立的白箱模型,如HOLTROP等[4]給出的回歸模型,但該模型僅在船舶設計階段用于分析船舶內部物理量關系有很好的效果;第二類是直接通過數據關系建模的黑箱模型,如葉睿等[5-6]建立多層感知機網絡的黑箱模型,但需要對網絡設置大量的結構參數;第三類是將以上兩者結合的灰箱模型,如LEIFSSON等[7]通過前饋神經網絡建立的灰箱模型,也可對船舶油耗進行較準確的預測,但不具有普適性。本文將采用深度學習方法建立黑箱模型。
深度學習是一種受大腦結構和功能啟發(fā)的算法(稱為人工神經網絡),通過使用反向傳播算法來發(fā)現(xiàn)大型數據集當中的復雜結構,以指示機器應如何更改其內部參數,并根據前一圖層的數據計算后面圖層中的數據。它與傳統(tǒng)機器學習技術的不同之處在于,它們可以自動從數據(如圖像、視頻或文本)中學習,而無需引入手動編碼規(guī)則或人類領域知識[3]。本研究正是基于上述背景,將長短期記憶神經網絡(Long Short-Term Memory,LSTM)運用到船舶油耗預測建模中來。以某客滾輪實船采集的數據為基礎,分析航行中各種參數與油耗數據相關度的大小,量化之間的權重關系,預測燃油消耗。
本文選取基于循環(huán)神經網絡(Recurrent Neural Network,RNN)的變種LSTM神經網絡來建立黑箱模型進行油耗的預測。RNN與普通的神經網絡結構和原理并不相同,RNN結構見圖1[8]。圖中:X表示當前節(jié)點狀態(tài)下的輸入,h為當前節(jié)點狀態(tài)下的輸出,A表示神經網絡節(jié)點。
圖1 RNN結構
RNN結構可以看作是一個鏈式結構,其本質是可以像人腦一樣擁有對數據特征的記憶能力。神經網絡會對前面輸入的信息進行記憶并將其應用于當前信息的計算中。但RNN的不足在于無法學習太長的序列特征,即在數據過于龐大時無法長時間地對所需要的信息進行有效的記憶,LSTM神經網絡應運而生。LSTM神經網絡核心思想在于,在神經網絡中引入了一個叫做細胞狀態(tài)的連接,這個細胞狀態(tài)用來存放想要記憶的東西,同時加入了3個“門”。圖2為“門”結構。圖中:σ表示sigmoid激活函數,用于控制輸入信息X的通過。
圖2 LSTM“門”結構
在LSTM神經網絡中這3個“門”分別是:
(1)忘記門:決定什么時候需要把以前的狀態(tài)忘記。
(2)輸入門:決定什么時候加入新的狀態(tài)。
(3)輸出門:決定什么時候需要把狀態(tài)和輸入放在一起輸出。
在簡單的循環(huán)神經網絡中,僅僅把上一次的狀態(tài)當作本次的輸入,而LSTM在狀態(tài)的更新和狀態(tài)是否參與輸入的過程中都做了靈活的選擇,這就使得LSTM神經網絡避免了RNN無法學習太長的序列特征問題[8]。
基于對數據的采集是按時間順序進行的特點和考慮到數據量的大小,本文決定采用LSTM神經網絡建立對油耗進行預測的黑箱模型。
MS Smyril號是運營于法羅群島首府托爾斯港至蘇德島航線的客滾輪,單程航行時間約1.92 h,每日往返兩地2~3次。本文采用該船于2010年2月至4月共246次航行中所采集并公布于網絡的數據[9]。這些數據包括13類參數,分別是:船舶對水航速、船舶對地航速、船舶縱傾、船舶橫傾、左槳螺距、右槳螺距、左舷吃水、右舷吃水、船首風速、船側風速、左舷舵角、右舷舵角和船舶油耗,每類數據的總量都為1 048 576條。
在利用收集到的原始數據建模之前,需要對數據進行預處理。采樣數據可表示為包含NR個數據點的三元數組。
T={(i1,t1,v1),(i2,t2,v2),…,(in,tn,vn),…,(iNR,tNR,vNR)}
(1)
式中:T為采集的數據集;in為輸入參數;tn為時間戳,即采樣數據的時間;vn為所采樣的值。
在數據采樣的過程中,絕大多數設備都會將數據直接傳遞給收集系統(tǒng),而忽略了對采樣時間的控制。由于不同的傳感器采樣的參數在頻率和幅度上都不同,并且異步數據序列在任何時候都不一定具有相應的值。因此在數據分析之前,必須執(zhí)行頻率降低和特征提取以使得數據的格式統(tǒng)一。對此,建立一個可以處理這些異步數據的框架,使得模型變得更加靈活。將所有傳感器采集數據的時間長度定為3 min,每個時間段為一個數據采樣窗口,即在t1 Wt1,t2,j={(in,tn,vn)∣t1≤tn≤t2,in=j} (2) 式中:Wt1,t2,j為該窗口內采樣的合集;j為參數類型。 當任何傳感器在部分或全部航程中的窗口某一項參數采樣完全缺失時,該窗口中所有數據將被視為無效數據并從樣本中剔除[10]。 另外,系統(tǒng)收集的數據可能有時會突然出現(xiàn)與其他數據點有明顯偏差的異常值,這可能是設備中的異常造成的。在數據分析的過程中為了保證數據的準確性,需要指定數據范圍,并將超出此范圍的數據點去掉。 在經過上述預處理過程后得到可用于建立油耗模型的148 961個數據。每個窗口中所采樣的數據經過以下計算來提取平均值、方差和平均差分這3個特征值[5-6]: 平均值: (3) 方差: (4) 平均差分: (5) 式(3)~ 式(5)中:u為數據類型;I為數據在時間段內數據點的個數;Δt為時間間隔;xi為在該段時間內的第i個數據。 通常在船舶運營過程中會有許多因素影響船舶的油耗,各個因素對船舶油耗影響的權重是不同的,在此通過斯皮爾曼等級相關(Spearman Rank Correlation)方法[11]來分析各因素與船舶油耗的相關性。斯皮爾曼等級相關公式如下: (6) 式中:ρ為相關系數;n為等級個數;d為二列成對變量的等級差數;di為對油耗產生影響的各個因素。 斯皮爾曼等級相關分析結果見圖3。 圖3 相關性分析 從圖3中可以看出,船舶航行時其油耗受到左舷螺距、右舷螺距、對水航速、對地航速、船舶縱傾、船首風速、左舷舵角和右舷舵角的影響較大。 在選定輸入參數的過程中,首先要分析船舶油耗與擬輸入參數的相關性。相關性有高有低,選用相關性高的參數輸入有利于體現(xiàn)數據特征;反之,選用相關度低的參數會增加數據序列中的復雜程度。另一方面對于神經網絡來說,系統(tǒng)輸入維度過大會出現(xiàn)梯度爆炸現(xiàn)象;輸入維度過小則會容易出現(xiàn)模型過擬合現(xiàn)象,因此選擇相關度高的參數和合適的輸入維度是非常必要的。 本模型中每類參數只選擇一種特征值輸入黑箱模型,這樣可以避免重復輸入某相關度高的參數的不同特征值使得模型精度偏離實際。經過相關性分析之后,剔除4類與油耗相關度不大的參數,包括船舶左右舷吃水、船舶橫傾和船側風速。選取8類參數作為模型的輸入參數,即左舷螺距的平均值、右舷螺距的平均值、對水航速的平均值、對地航速的平均值、縱傾的平均值、船首風速的平均值、左舷舵角的平均值和右舷舵角的平均值。選取油耗作為黑箱模型的輸出參數。整個黑箱模型具體結構見圖4。 在選定好輸入參數和完成數據預處理之后,開始建立模型,然后進行訓練。 本文運用Python代碼和深度學習框架Tensorflow建立LSTM神經網絡,對完成預處理的數據進行學習,確定神經網絡參數及權值,使用Adam優(yōu)化算法訓練模型,學習率為0.001。選取樣本數量80%作為訓練集訓練網絡,20%作為測試集用于驗證模型精度,得到的訓練誤差與測試誤差見圖5。 由圖5可知,網絡在訓練與測試過程中誤差均下降較快,具有很好的泛化能力。 在完成訓練之后,選取測試集中的500個樣本數據作為預測結果展示,見圖6。圖中,“+”為油耗真實值,“*”為相同輸入情況下的預測值。由圖可知,兩者吻合度較好,其預測的相對誤差僅為2.11%。 圖6 LSTM神經網絡預測結果 為了證明LSTM神經網絡具有良好的精度,將同樣的數據經過BP神經網絡和支持向量機(SVM)訓練得出的預測結果分別見圖7、圖8。 圖7 BP神經網絡預測結果 圖8 SVM預測結果 上述3種算法的預測相對誤差見表1。 表1 算法相對誤差對比 由圖6、圖7、圖8與表1看出,BP 神經網絡具有訓練時間短的優(yōu)點,但是其預測精度相對較低。SVM算法不僅精度低,并且在處理大量訓練樣本時所耗費的時間多。相比上述兩種算法, LSTM神經網絡耗時較少,且預測精度較高。綜合上述原因表明,LSTM神經網絡更適用于船舶的油耗預測。 本文通過分析船舶航行各因素的影響,篩選出對地與對水航速、左右舷螺距、船舶縱傾、船首風速和左右舷舵角8類與船舶油耗相關度高的輸入數據。采用LSTM神經網絡建立油耗模型,通過對比實驗進行模型參數優(yōu)化,得到的模型預測精度較高,具有較高的可信度。本文采用深度學習方法所建立的黑箱模型可以用于油耗預測,可為船舶運營人員提供一定參考,合理制定運營計劃,提高航運能效。2.2 輸入參數的選定
3 試驗結果分析
4 結語