本發(fā)明涉及輪船航行數(shù)據(jù)的無監(jiān)督特征提取與數(shù)據(jù)回歸預(yù)測技術(shù)領(lǐng)域,尤其涉及一種基于深度學(xué)習(xí)與支持向量回歸的船舶能耗預(yù)測方法。
背景技術(shù):
在節(jié)能減排的大環(huán)境下,減少能源的消耗,對改善環(huán)境有重要的影響。在能耗相關(guān)的行業(yè),對電力能耗、船舶油耗等建立有效的模型,對能耗進行預(yù)測和分析,從生產(chǎn)和操作方面對能耗進行進一步控制,有利于減少能耗,從而采取有效的措施減少能耗。本行業(yè)中,對船舶能耗進行預(yù)測和分析的研究還處于不斷深入的階段。
目前,在能耗預(yù)測與分析相關(guān)的問題的研究方法主要由以下方法:(1)、基于人工神經(jīng)網(wǎng)絡(luò)進行能耗預(yù)測,使用提供的數(shù)據(jù)集,利用反向傳播算法,對數(shù)據(jù)進行擬合,使得網(wǎng)絡(luò)輸出與目標(biāo)輸出誤差盡可能?。?2)、基于深度信念網(wǎng)絡(luò)算法和邏輯回歸進行能耗預(yù)測,進行預(yù)測分析。
根據(jù)船舶航行的數(shù)據(jù)庫,根據(jù)數(shù)據(jù)庫中與能耗相關(guān)的技術(shù)參數(shù),建立能耗的預(yù)測分析模型,使用多種預(yù)測模型的混合,對能耗進行進一步分析預(yù)測,提高模型預(yù)測的準(zhǔn)確度,是一種可行的分析方法。
技術(shù)實現(xiàn)要素:
為了克服現(xiàn)有技術(shù)存在的缺點與不足,本發(fā)明提供一種基于深度學(xué)習(xí)與支持向量回歸的船舶能耗預(yù)測方法,利用棧式自編碼提取船舶航行數(shù)據(jù)的特征,然后使用支持向量回歸對特征進行回歸計算,得到船舶的能耗值,使得更好地對能耗進行預(yù)測和分析。
為解決上述技術(shù)問題,本發(fā)明提供如下技術(shù)方案:基于深度學(xué)習(xí)與支持向量回歸的船舶能耗預(yù)測方法,包括如下步驟:
S1、讀取船舶用于記錄航行過程數(shù)據(jù)的數(shù)據(jù)庫,將數(shù)據(jù)庫的技術(shù)參數(shù)作為輸入數(shù)據(jù)構(gòu)建深度學(xué)習(xí)模型;所述技術(shù)參數(shù)包括船舶傳感器數(shù)據(jù)以及船舶能耗值的時間序列;
S2、建立棧式自編碼算法的網(wǎng)絡(luò)模型,提取深度學(xué)習(xí)模型輸入數(shù)據(jù)的特征向量;
S3、建立回歸預(yù)測函數(shù)模型,確定回歸預(yù)測函數(shù)模型的參數(shù);
S4、將輸入數(shù)據(jù)的特征向量輸入回歸預(yù)測函數(shù)模型,預(yù)測船舶在下一個時間段內(nèi)的能耗值。
進一步地,所述步驟S1中船舶傳感器數(shù)據(jù)包括風(fēng)速天氣情況、輪船船速、船舶航向、輪船動力裝置情況及輪船的控制信息。
進一步地,所述輪船能耗值時間序列表示為:
D1={(XtT|t=T,T-1,...,T-k+1}
其中D1為k維列向量,即當(dāng)前時刻起前k個時刻的能耗值序列;
所述船舶傳感器數(shù)據(jù)表示為:
D2=[St1,St2,...,StM]T
其中D2為M維列向量,即為當(dāng)前時刻船舶傳感器檢測到的數(shù)據(jù);
將D1與D2按照前后順序組成一個列向量,作為所述棧式自編碼模型的輸入數(shù)據(jù),則船舶技術(shù)參數(shù)列向量D表示為:
D=[D1,D2]
進一步地,對所述船舶技術(shù)參數(shù)列向量D,將其進行歸一化處理,即將其縮放一定的尺度,使得輸入數(shù)據(jù)歸一化0至1,避免因為數(shù)據(jù)的尺度不同造成能耗值預(yù)測差異,歸一化方式如下:
其中,di、dmax、dmin分別表示數(shù)據(jù)D列向量中某一元素值、元素最大值、元素最小值,將其歸一化后的數(shù)據(jù)作為最終的船舶技術(shù)參數(shù)數(shù)據(jù)。
進一步地,所述步驟S2具體為:
S21、在棧式自編碼算法的網(wǎng)絡(luò)結(jié)構(gòu)中,使用網(wǎng)格參數(shù)尋優(yōu),設(shè)定網(wǎng)絡(luò)結(jié)構(gòu)隱含層的層數(shù)、每層隱含層的神經(jīng)元個數(shù)和輸入數(shù)據(jù)中輪船能耗值的時間序列的長度;
S22、訓(xùn)練棧式自編碼算法的網(wǎng)絡(luò)結(jié)構(gòu),設(shè)定正則項相對最小化誤差的權(quán)重λ和稀疏自編碼的稀疏程度值ρ;
S23、在棧式自編碼算法的網(wǎng)絡(luò)結(jié)構(gòu)中,每層隱含層的稀疏自動編碼器以無監(jiān)督的訓(xùn)練方式對輸入數(shù)據(jù)進行編碼解碼;
S24、從棧式自編碼算法網(wǎng)絡(luò)結(jié)構(gòu)的第一層隱含層到最后一層隱含層逐層進行貪婪式訓(xùn)練,以上一層的輸出作為下一層的輸入;
S25、迭代步驟S24的過程,直到步驟S21設(shè)定的隱含層的層數(shù)為止,根據(jù)隱含層的第一層到最后一層的方向進行訓(xùn)練;
S26、棧式自編碼算法的網(wǎng)絡(luò)結(jié)構(gòu)的最后一層隱含層繼續(xù)添加一層預(yù)測層,使用網(wǎng)絡(luò)結(jié)構(gòu)的輸出作為預(yù)測層的輸入,隨機初始化預(yù)測層的參數(shù)值即神經(jīng)元權(quán)重參數(shù)值;
S27、使用已有船舶能耗值數(shù)據(jù)集對棧式自編碼算法網(wǎng)絡(luò)的神經(jīng)元權(quán)重參數(shù)進行有監(jiān)督的微調(diào),使用反向傳播算法對網(wǎng)絡(luò)結(jié)構(gòu)的所有層中的神經(jīng)元權(quán)重參數(shù)進行微調(diào),從網(wǎng)絡(luò)的最后一層往結(jié)構(gòu)的第一層的方向調(diào)整神經(jīng)元權(quán)重參數(shù),使得模型更好預(yù)測船舶能耗值;
S28、使用以上步驟完成棧式自編碼算法的訓(xùn)練后,輸入船舶技術(shù)參數(shù)數(shù)據(jù)到棧式自編碼算法的網(wǎng)絡(luò)模型,而網(wǎng)絡(luò)模型的輸出即為深度學(xué)習(xí)模型輸入數(shù)據(jù)的特征向量。
進一步地,所述步驟S3具體為:
S31、回歸預(yù)測函數(shù)模型的表達式如下:
f(Xi)=WTφ(Xi)+b
其中,Xi為輸入數(shù)據(jù)的特征向量,WT是權(quán)重列向量,b是偏置向量,φ(Xi)是映射輸入向量到高維的特征空間,在特征空間中進行線性回歸;
S32、求解回歸模型的參數(shù)值,如下所示:
約束于:
εi,εi*≥0
其中,C為預(yù)先設(shè)定值,C值大小范圍變化表示在模型復(fù)雜度和泛化性能之間取得理想平衡;εi、εi*為松弛變量衡量誤差的大??;ξ表示支持向量回歸間隔帶的大小;
S33、對輸入數(shù)據(jù)的特征使用高斯核函數(shù)K建立支持向量回歸模型,如下式:
K(Xi,Xj)=exp(-||Xi-Xj||2/(2σ2))
其中σ為高斯核的帶寬;
最終支持向量回歸的預(yù)測函數(shù),如下公式所示:
其中,αi、為拉格朗日乘子參數(shù);N為訓(xùn)練樣本個數(shù);Xi為待測試特征向量,Xj為訓(xùn)練樣本特征向量。
進一步地,所述步驟S4具體為:
根據(jù)步驟S2輸入數(shù)據(jù)的特征向量輸入到步驟S33的支持向量回歸的預(yù)測函數(shù),即可預(yù)測船舶在下一個時間段內(nèi)的能耗值。
采用上述技術(shù)方案后,本發(fā)明至少具有如下有益效果:
(1)、本發(fā)明方法采用棧式自編碼和支持向量回歸兩個模型的融合,能充分利用棧式自編碼以無監(jiān)督方式提取船舶航行數(shù)據(jù)的特征,并且能夠利用支持向量回歸對時間序列進行準(zhǔn)確預(yù)測的能力,即兩種方法融合后模型的表達能力更強,兩種算法融合后能更好的預(yù)測能耗值;
(2)、本發(fā)明基于船舶的航行數(shù)據(jù)進行能耗值預(yù)測,預(yù)測船舶在當(dāng)前船舶所處的環(huán)境及當(dāng)前的船舶控制狀態(tài)下的能耗值;通過調(diào)整船舶控制信息如船舶航速、船舶動力裝置、航向信息,往減少能耗的方向進行調(diào)整船舶的控制信息,通過改變船舶當(dāng)前控制信息比較不同控制狀態(tài)下的預(yù)測能耗值,最后選擇更優(yōu)的船舶航行控制方案,進而減少能耗。
附圖說明
圖1是本發(fā)明基于深度學(xué)習(xí)與支持向量回歸的船舶能耗預(yù)測方法的步驟流程圖;
圖2是本發(fā)明基于深度學(xué)習(xí)與支持向量回歸的船舶能耗預(yù)測方法中能耗預(yù)測網(wǎng)絡(luò)結(jié)構(gòu)圖;
圖3是本發(fā)明基于深度學(xué)習(xí)與支持向量回歸的船舶能耗預(yù)測方法中棧式自編碼算法的步驟流程圖;
圖4是本發(fā)明基于深度學(xué)習(xí)與支持向量回歸的船舶能耗預(yù)測方法的控制船舶節(jié)約能耗的整體系統(tǒng)示意圖。
具體實施方式
需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互結(jié)合,下面結(jié)合附圖和具體實施例對本申請作進一步詳細說明。
如圖1所示,為本實例基于深度學(xué)習(xí)與支持向量回歸的船舶能耗預(yù)測方法的步驟流程圖,具體過程如下:
步驟S1、根據(jù)現(xiàn)有的船舶實際航行的數(shù)據(jù)庫,構(gòu)建預(yù)測模型輸入數(shù)據(jù)的結(jié)構(gòu),對船舶多種技術(shù)參數(shù)及能耗值時間序列以一定的方式融合作為模型輸入:
首先,讀取船舶航行記錄數(shù)據(jù)庫,從數(shù)據(jù)庫的各種技術(shù)參數(shù)中,將技術(shù)參數(shù)融合成用于估計能耗的數(shù)據(jù)結(jié)構(gòu)形式;船舶數(shù)據(jù)庫中,包含輪船傳感器數(shù)據(jù)即風(fēng)速天氣情況、輪船船速、船舶航向、輪船動力裝置情況及輪船的控制信息以及在這些狀態(tài)下輪船能耗值時間序列;其中能耗值時間序列為當(dāng)前時刻前的k個時間序列值,如下式表示:
D1={(XtT|t=T,T-1,...,T-k+1}
其中D1為k維列向量,即當(dāng)前時刻起前k個時刻的能耗值序列,數(shù)據(jù)表示當(dāng)前時刻起前k個時間內(nèi)的信息;
輪船的傳感器數(shù)據(jù)及控制信息表示如下:
D2=[St1,St2,...,StM]T
其中D2為M維列向量,即為當(dāng)前時刻船舶傳感器中與能耗相關(guān)的技術(shù)參數(shù)以及船舶的控制信息即船舶動力裝置、船舶航向,表示當(dāng)前船舶所處狀態(tài)及船舶控制信息對航行能耗的所有影響因素;
對輸入訓(xùn)練和測試數(shù)據(jù)歸一化處理,即將所有的數(shù)據(jù)縮放一定的尺度,使得輸入數(shù)據(jù)歸一化0至1,避免因為數(shù)據(jù)的尺度不同造成能耗值預(yù)測差異,歸一化方式如下:
其中di、dmax、dm in分別為數(shù)據(jù)D列向量中某一元素值、元素最大值、元素最小值,將歸一化后的數(shù)據(jù)作為最終的船舶技術(shù)參數(shù)數(shù)據(jù);
將D1與D2按照前后順序組成一個列向量,作為所述棧式自編碼模型的輸入數(shù)據(jù),故所述技術(shù)參數(shù)數(shù)據(jù)表示為:
D=[D1,D2]
步驟S2、建立深度學(xué)習(xí)模型,如圖3所示,是算法流程圖,使用棧式自編碼(Stacked Autoencoders)網(wǎng)絡(luò)作為結(jié)構(gòu),確定整個模型的結(jié)構(gòu)參數(shù),包括網(wǎng)絡(luò)的層數(shù)、每層網(wǎng)絡(luò)隱藏神經(jīng)元的個數(shù)和模型的超參數(shù),逐層訓(xùn)練每層稀疏自動編碼器(Sparse Autoencoder),預(yù)訓(xùn)練一個網(wǎng)絡(luò)之后,接著在棧式自編碼網(wǎng)絡(luò)結(jié)構(gòu)基礎(chǔ)上添加最后一層預(yù)測層,使用已有的訓(xùn)練集進行有監(jiān)督的微調(diào)(Fine-tuning),對整個網(wǎng)絡(luò)的所有參數(shù)通過反向傳播算法進行調(diào)整,進行迭代更新參數(shù)值,使得模型從船舶數(shù)據(jù)中提取更適合于能耗預(yù)測的特征向量:
S21、選擇棧式自編碼的模型結(jié)構(gòu),使用網(wǎng)格參數(shù)(grid search)尋優(yōu),確定隱含層層數(shù)、每層隱含神經(jīng)元的個數(shù)和輸入數(shù)據(jù)中K個能耗值時間序列的長度,隱含層的層數(shù)需要適合選取大小,即網(wǎng)絡(luò)結(jié)構(gòu)不能太淺或者太深;
如圖2所示,是棧式自編碼網(wǎng)絡(luò)結(jié)合回歸預(yù)測層的結(jié)構(gòu)圖,兩部分組成整個深度模型的結(jié)構(gòu),用于能耗值預(yù)測;需要確定模型結(jié)構(gòu)的參數(shù),使用網(wǎng)格參數(shù)尋優(yōu),即列出各個參數(shù)所有可能取值,窮舉所有可能的超參數(shù)組合方法,每次使用一種組合參數(shù)進行實驗,然后確定不同情況下的最好的結(jié)構(gòu)參數(shù);其中包括預(yù)測未來多長時間內(nèi)能耗值即時間{15,30,45,60}分鐘后的能耗值,K個能耗值時間序列的長度即當(dāng)前時刻起K從1到12內(nèi)選擇能耗值序列為模型輸入數(shù)據(jù),隱含層層數(shù)范圍從1到6變化選擇、每層隱含神經(jīng)元的個數(shù)范圍從以下集合中選{100,200,300,400,500,600,700,800,900,1000},進行參數(shù)尋優(yōu)后,對不同的預(yù)測任務(wù)確定不同的最優(yōu)參數(shù)組合;
S22、每層稀疏自動編碼器(Sparse Autoencoders)以無監(jiān)督的方法對輸入進行編碼解碼,使得每層對輸入的重構(gòu)誤差最小化,即盡可能使得輸入等于解碼后的輸出,最小化目標(biāo)函數(shù),訓(xùn)練得每層的參數(shù),第一層輸入為輪船數(shù)據(jù),開始第一層訓(xùn)練;
S23、訓(xùn)練模型時,需要設(shè)定正則項相對最小化誤差的權(quán)重λ,稀疏自編碼的稀疏程度值ρ,每層訓(xùn)練需要最小化重構(gòu)誤差,如下式所示:
上式中最小化重構(gòu)誤差得到參數(shù),KL離散度越小則說明稀疏程度達到預(yù)先定義的稀疏效果,為理想的離散度,z(x(i))為每層隱含層重構(gòu)后的自編碼函數(shù)值;
S24、從模型結(jié)構(gòu)的第一層到最后一層逐層貪婪式訓(xùn)練,以上一層的輸出作為下一層的輸入,其中第一層的輸入是訓(xùn)練樣本,開始訓(xùn)練時首先隨機初始化網(wǎng)絡(luò)中的權(quán)重參數(shù)和偏置參數(shù),每層訓(xùn)練時最小化S23中的目標(biāo)函數(shù),對參數(shù)進行更新;
S25、迭代上一步S24的過程,直到S21設(shè)定的網(wǎng)絡(luò)層數(shù)為止,根據(jù)網(wǎng)絡(luò)的第一層到最后一層的方向進行訓(xùn)練;
S26、棧式自編碼網(wǎng)絡(luò)結(jié)構(gòu)的最后一層繼續(xù)添加一層預(yù)測層,使用棧式自編碼網(wǎng)絡(luò)結(jié)構(gòu)的輸出作為預(yù)測層的輸入,隨機初始化預(yù)測層的參數(shù)值;
S27、使用有標(biāo)簽的樣本即船舶數(shù)據(jù)集的能耗值進行有監(jiān)督的微調(diào),使用反向傳播(backpropagation)算法對整個網(wǎng)絡(luò)結(jié)構(gòu)中各層的參數(shù)進行微調(diào),從網(wǎng)絡(luò)的最后一層預(yù)測層往結(jié)構(gòu)的第一層輸入層的方向逐層調(diào)整網(wǎng)絡(luò)參數(shù),使模型更好預(yù)測能耗值;
步驟S3、回歸分析,主要是了解輸入的多個變量與輸出值的映射關(guān)系,該方法使用支持向量回歸(Support Vetor Regression),根據(jù)輸入數(shù)據(jù)預(yù)測船舶能耗值,應(yīng)用回歸預(yù)測模型,使得模型的預(yù)測值與實際能耗值盡可能接近,通過求解優(yōu)化最小損失問題,確定模型參數(shù);
S31、首先為了使得模型預(yù)測與實際的能耗值逼近,需要確定支持向量回
歸(Support Vetor Regression)模型的參數(shù)值,回歸模型的表達式如下:
f(Xi)=WTφ(Xi)+b
其中WT是權(quán)重向量,b是偏置向量,φ(Xi)映射輸入向量到高維的特征空間,在特征空間中進行線性回歸;
S32、回歸模型的參數(shù)值,通過求解以下的優(yōu)化問題獲得:
約束于:
εi,εi*≥0
其中C為預(yù)先設(shè)定值,這個參數(shù)確定通過網(wǎng)格搜索確定,C的經(jīng)驗選擇范圍為[2-4,24],在模型復(fù)雜度和泛化性能之間取得理想平衡,εi為松弛變量衡量誤差的大小,ξ表示支持向量回歸間隔帶的大??;
S33、使用支持向量回歸對棧式自編碼模型提取的特征向量,進行回歸,預(yù)測輪船的能耗值;考慮到棧式自編碼模型結(jié)構(gòu)輸出數(shù)據(jù)即船舶數(shù)據(jù)提取的特征可能具有非線性特點,無法在線性空間作有效的回歸,考慮使用核函數(shù),將棧式自編碼網(wǎng)絡(luò)訓(xùn)練得到的特征映射到高維的特征空間,在特征空間建立線性回歸模型,使用高斯核函數(shù)(RBF),如下式:
K(Xi,Xj)=exp(-||Xi-Xj||2/(2σ2))
其中σ為高斯核的帶寬,參數(shù)選擇通過網(wǎng)格搜索(grid search),經(jīng)驗范圍為[10-3,10-1];
最終的支持向量回歸(Support Vetor Regression)預(yù)測函數(shù)如下所示:
其中αi,參數(shù)為拉格朗日乘子;N為訓(xùn)練樣本個數(shù);Xi為待測試特征向量,Xj為訓(xùn)練樣本特征向量;
步驟S4、根據(jù)步驟S2輸入數(shù)據(jù)的特征向量輸入到步驟S33的支持向量回歸的預(yù)測函數(shù),即可預(yù)測船舶在下一個時間段內(nèi)的能耗值。
如圖4所示,為本實例基于深度學(xué)習(xí)與支持向量回歸的船舶能耗預(yù)測方法的整體系統(tǒng)示意圖,本發(fā)明基于船舶的航行數(shù)據(jù)進行能耗值預(yù)測,首先輸入船舶技術(shù)參數(shù)數(shù)據(jù)到深度模型估計船舶能耗值;在船舶當(dāng)前狀態(tài)下,通過輪船優(yōu)化模塊調(diào)整船舶控制信息如船舶航速、船舶動力裝置、航向信息等,通過改變船舶當(dāng)前控制信息比較不同船舶控制狀態(tài)下的預(yù)測能耗值,往減少能耗的方向進行調(diào)整船舶的控制信息,優(yōu)化模塊不斷改善船舶的控制方案;最后選擇當(dāng)前狀態(tài)下最優(yōu)的船舶航行控制方案,進而減少能耗。
盡管已經(jīng)示出和描述了本發(fā)明的實施例,對于本領(lǐng)域的普通技術(shù)人員而言,可以理解的是,在不脫離本發(fā)明的原理和精神的情況下可以對這些實施例進行多種等效的變化、修改、替換和變型,本發(fā)明的范圍由所附權(quán)利要求及其等同范圍限定。