張喬宇,黃國富,金建海
(1.中國船舶科學研究中心,江蘇 無錫 214082;2.中船重工(上海)節能技術發展有限公司,上海 210000)
船舶阻力預報是準確預報船舶快速性的重要內容之一,目前常用的預報方法有模型試驗,CFD 數值模擬和一些近似估算方法。在現代船舶工程中,近似模型方法很好地解決了船舶CFD 計算的復雜耗時問題[2],避免了模型試驗的繁瑣過程與較高成本。陳愛國等[3-4]基于系列60 船舶試驗數據,建立了最佳的BP 神經網絡系統,拓展了系列60 的應用范圍。李納等[5]建立了基于廣義回歸神經網絡的“船型要素—船體阻力”數學模型,并結合遺傳算法完成了船型要素的優化設計,優化結果可以為玻璃鋼漁船初步設計提供技術參考。肖振業等[6]采用支持向量和神經網絡方法建立了國際船模KCS 總阻力的近似模型,表明了支持向量機近似模型具有較好的預測精度和可推廣能力。Devrim[7]在低雷諾數條件下,采用神經網絡方法對雙體船中心片體的形狀、布置位置進行了選擇優化。通過與模型試驗結果的分析對比,表明了這種外形設計的有效性,可以減少波干擾所引起的阻力。Jong-hyun Lee等[8]基于遺傳規劃的非線性數學函數的方法,在船型設計初期對船舶附加阻力進行預報,通過預測結果與試驗結果、理論結果的對比分析,表明該方法滿足精度要求,具有一定的適用性。
采用近似模型方法解決船舶阻力相關問題已經受到許多學者的廣泛關注,但近似模型方法有很多,為了提高船舶阻力預報的準確性,應該有針對性地選擇預報模型。為此,本文以公開的泰洛系列船模試驗數據為例,研究目前機器學習模型在船舶阻力預報中的應用效果。泰洛系列船模試驗是以一艘軍艦為母型進行系列改型[9],生成不同寬度吃水比B/T、棱形系數Cp、排水體積長度系數1 000 ?/L3的船模,在不同傅汝德數Fr 下進行系列阻力試驗,最終得到剩余阻力系數試驗數據。現取B/T,Cp,1 000 ?/L3,Fr 作為模型構建輸入向量,剩余阻力系數作為輸出向量。為檢驗模型泛化能力且避免原始數據集分布對模型訓練的影響,隨機選取數據集的80%作為訓練集、20%作為測試集,進行20 組不同排列組合試驗,以測試樣本預報值和真實值的均方誤差和相關系數作為衡量模型適用性的評價指標,并通過4 組不同B/T 插值樣本進一步檢驗,以選出較好的預報模型。
本文選取機器學習模型中6 種經典的回歸預報模型進行試驗論證,即KNN 近鄰回歸、多元線性回歸、嶺回歸、標準支持向量回歸、3 層BP 神經網絡、回歸樹。
KNN 近鄰回歸屬于非參數回歸方法,是通過搜索歷史樣本庫中與新樣本相似的樣本數據來進行預測,需要考慮的主要因素包括:從歷史樣本庫中選取與新樣本距離較近的樣本個數(K 值)、近似程度度量方式、K 個歷史樣本的權重函數和內部實現算法。本文選取比較常用的歐式距離度量方式,公式如下:


多元線性回歸是自變量多于一維時的回歸形式,具體的方程形式為:

式中: xi為 輸入數據向量; w為各輸入數據向量對應的權值矩陣; yi為真實輸出值。
多元線性回歸的目標是尋找使真實值與預測值誤差平方和最小的一組權值矩陣。誤差平方和可寫為:

上式對 w求導后,令其導數為0 進而取極小值點,解出 w如下:

由于上式需要對矩陣求逆,當矩陣非滿秩時求逆會出現問題,因此采用縮減系數法來解決這一問題,嶺回歸即是其中的一種。嶺回歸是在矩陣 xTx上加一個λI (I 是m×m 的單位矩陣)使矩陣非奇異, λ的取值需要根據具體問題進行訓練,使誤差最小化。該方法不僅可以解決矩陣 xTx無法求逆的問題,也可在估計中引入偏差,并且λ 限 制了 w之和,從而減少了不重要的參數[12]。
支持向量回歸是通過特征空間中估計內積的核隱式,實現輸入變量到高維特征空間的映射,然后在高維特征空間中構建線性回歸函數,對應原空間非線性問題的求解[2]。數學表達式為:

式中: f(x) 為回歸系數, ω 和 b分別為回歸函數的法向量和偏移量; φ(x)表示特征映射函數。支持向量回歸算法可以描述為以下問題:

式中: C表示懲罰系數; ξi,為松弛變量; ε表示擬合精度[13]。通過引入拉格朗日乘子與核函數的方法求解該問題,最終可將式(6)化為:

因此,支持向量回歸模型的設計需要選擇合適的精度參數 ε,懲罰系數C 以及核函數。
人工神經網絡基本單元如圖1 所示。圖中x1~xn為輸入值, yi為輸出值, wij表示從神經元 j到神經元i的連接權值,θ表示閾值, φ為激活函數,單個神經元的運算過程如下式:
本研究的目標分析物是合成麝香,對水樣的預處理主要包括過濾、萃取和濃縮。采用玻璃纖維濾紙在真空條件下進行水樣過濾,使溶解相和顆粒相分離。對于溶解相,量取1.5 L過濾后的水樣至分液漏斗中,加入 10 μL 500 ng·mL-1 DnBP-d4 回收率指示物標準溶液,混勻后再加入50 mL二氯甲烷進行液液萃取(3次);對于顆粒相,將玻璃纖維濾紙中的顆粒相樣品加入到索氏抽提器中以150 mL二氯甲烷靜置萃取24 h。將萃取液過無水硫酸鈉以去除剩余水分,收集萃取液于250 mL蒸發瓶中,旋轉蒸發濃縮至1 mL左右,最后氮吹濃縮至約 150 μL。


圖 1 人工神經網絡基本單元Fig.1 Basic unit of artificial neural network
BP 神經網絡的主要思想為對于樣本若干個輸入向量以及與其對應的目標向量,根據網絡實際輸出與目標向量之間的誤差,選用合適算法修改權值和閾值,使網絡輸出層的誤差平方和達到最小[14]。
回歸樹是一種非參數監督學習方法,基本思想是通過給定數據集的特性采用某種算法推斷出簡單的決策規則,進而預測目標變量的值。樹構建算法中常用的是CART 算法,即使用二元切分來處理連續性變量。具體算法過程如下:
在訓練數據集所在的輸入空間中,遞歸地將每個區域劃分為2 個子區域并決定每個子區域上的輸出值,構建二叉決策樹[15]。
1) 選擇最佳切分變量j 與切分點s,求解

式中: c1, c2為 R1, R2兩個劃分區域的代表值,以使區間實際值 y1, y2與代表值之間的平方差達到最小。
2) 遍歷變量j,對固定的切分變量j 尋找切分點s,找到可使式(9)達到最小值的(j,s),用選定的(j,s)劃分區域并決定相應的輸出值:

3) 繼續對2 個子區域重復步驟1 和步驟2,直至滿足條件,
4)最終可將輸入空間劃分為若干區域,假定M 個:R1,R2,···Rm,并生成回歸樹:

為選取合適的k 值、權重函數和內部實現算法,開展不同組合參數的方案設計,得到均方誤差與相關系數隨k 值數的變化曲線,如圖2 所示。

圖 2 均方誤差、相關系數隨不同KNN 算法參數變化曲線Fig.2 Variation curves of mean square error and correlation coefficient with different KNN algorithm parameters
由圖2 可知,當k 值為2 時,相關系數出現峰值,而后隨k 值的增加逐漸減小,均方誤差也在k 值為2 時出現低谷,之后隨k 值增加而增大;而在內部實現算法與權重函數的選擇上,kd 樹算法與距離反比函數的組合最優。故本文選擇k=2,kd 樹算法,距離反比函數的KNN 近鄰回歸模型。
嶺回歸主要調節參數為 λ值,嶺回歸模型中對 λ在0.1~1.0 之間進行參數尋優,均方誤差與相關系數變化曲線如圖3 所示。可以看出,最佳的 λ值只能看出在0.1 附近,因此繼續對 λ在0.01~0.1 之間尋優,結果如圖4 所示。當 λ=0.1 時,預測效果最好。
根據文獻[13]可知,在預報船舶阻力時,支持向量回歸模型需要考慮的參數有懲罰系數 C、核函數與擬合精度 ε,現對3 個參數進行組合方案設計。現對4 種常用核函數進行試驗,結果如表1 所示。均方誤差與相關系數隨懲罰系數 C 、擬合精度 ε的變化曲線如圖5 和圖6 所示。因此,本文選取多項式核函數、懲罰系數 C 為0.16、擬合精度 ε為5 的支持向量回歸模型。
通過參考文獻[3],選擇貝葉斯正則化函數作為訓練函數,均方誤差規則化函數為性能函數,隱層傳遞函數為雙曲正切S 形函數,輸出層傳遞函數為線性函數。而隱層神經元數則參考經驗公式(其中,m 為輸出節點數,n 為輸入節點數, a可取1~10 之間的整數)選取調優范圍,具體變化情況由圖7 所示。從可以看出隱層神經元數為18 時最優。

圖 3 均方誤差、相關系數隨嶺回歸 λ值變化曲線(0.1~1.0)Fig.3 Variation curves of mean square error and correlation coefficient with λ number of ridge regression (0.1~1.0)

圖 4 均方誤差、相關系數隨嶺回歸 λ值變化曲線(0.01~0.1)Fig.4 Variation curves of mean square error and correlation coefficient with λ number of ridge regression (0.01~0.1)

表 1 不同核函數的相關系數與均方誤差比較結果Tab.1 Comparison results of correlation coefficients and mean square error of different kernel functions

圖 5 均方誤差、相關系數隨懲罰系數 C變化曲線Fig.5 Variation curves of mean square error and correlation coefficient with penalty Coefficient C

圖 6 均方誤差、相關系數隨擬合精度 ε變化曲線Fig.6 Variation curves of mean square error and correlation coefficient with fitting precisionε

圖 7 均方誤差、相關系數隨隱層神經元節點數變化曲線Fig.7 Variation curves of mean square error and correlation coefficient with number of nodes of hidden layer neurons
采用以上6 種機器學習回歸模型進行阻力預報試驗,得到20 組不同數據集樣本排列方式的相關系數與均方誤差平均值,如表2 所示。由于訓練和測試樣本都是采用的原始數據,為了驗證各模型的泛化能力,選擇各模型20 組中擬合效果最好的一組,對相同的Cp,1 000 ?/L3與Fr,進行B/T 為2.5,2.75,3.25,3.5 的4 組剩余阻力系數值進行預報,同時采用直線內插法[16]對4 組剩余阻力系數值進行計算。預報剩余阻力系數值與內插法所得值的均方誤差與相關系數如表3所示。由此可見,回歸樹模型在6 種機器學習模型中預報效果最好。

表 2 機器學習模型剩余阻力系數預報結果對比Tab.2 Comparison results of residual resistance coefficient prediction of machine learning model

表 3 四組插值樣本剩余阻力系數預報結果對比Tab.3 Comparison results of residual resistance coefficient prediction of four sets of interpolated samples
利用泰洛標準系列船模原始試驗數據,采用6 種經典機器學習回歸模型,對船舶剩余阻力系數進行預報,通過每種模型預報效果對比,得到以下結論:
1)通過訓練機器學習回歸模型,在泰勒標準系列船模試驗數據的參數范圍內,可以較精確地對船舶剩余阻力系數進行預報,避免了人工查譜的的繁瑣過程,且預報效率較CFD 數值模擬方法要高。
2)對于機器學習近似預報模型可以進一步調整算法,以提高對船舶阻力的預報精度。
3)針對不同的船舶阻力系列數據,根據數據集的特點與分布規律,選擇合適的近似模型并進行調優,從而設計出具有較高泛化能力的船舶阻力預報模型的方法切實可行。