黃文育,孟斌
(中國船舶科學研究中心,江蘇 無錫 214082)
近年來,人工智能等相關技術得到井噴式發展,廣泛應用于各行各業中,為技術的創新提供新的解決思路。20 世紀90 年代以來,計算機的迅猛發展也帶動了CFD 的快速進步,船舶設計領域積累了龐大的數值計算數據和相關經驗[1]。數據量激增使得人工智能技術在船舶領域有深層的發展,發掘數據的價值,得到數據更高層的含義[2]。
在船舶水動力學領域研究和探索人工智能的應用中,關于流場數據的研究,本文主要關注船體運行中興波所產生的波形圖,并分析其對船舶航速的影響。傳統判斷方法由經驗豐富的專家人為完成,由于船舶各航速之間的波形圖差異較小,存在準確度不高的可能性[3]。因此采用人工智能技術,從歷史數據中挖掘出波形圖與船舶航速值之間復雜規律,輔助專家更好完成基于波形圖的船舶航速判斷,這樣既可以減輕專家的負擔,讓專家有更多的精力投入到方法研究中,也能夠提高基于波形圖的船舶航速判斷的準確性和穩定性[4]。
本文主要研究少量興波波形圖樣本下如何高效利用深度學習等人工智能技術進行圖像識別與分類。
對于識別小樣本的各種問題,存在很多缺點[5]。如模型泛化能力不高,過擬合概率高等。本文采用基于深度學習的樣本分類識別模型,優化方向主要以,提高圖像樣本數和優化識別模型2 個方面為基礎。為了增加樣本數量,采用生成模型與圖像預處理相結合的方法[6]。首先,采用參數量較少的卷積神經網絡生成模型進行樣本增強。由于樣本圖像的隨機性,采用條件生成模型生成樣本,生成的樣本集包含標簽,可以很好地應用于后續的監督分類學習。對于在條件生成模式中樣本模糊出現的問題,提出以自我適應數學形態學為基礎的圖像邊框檢測技術,克服邊緣模糊問題。
本文需要解決以下難點:
1)基于波形圖的船舶航速判斷目前只有部分專家靠自身經驗來完成,沒有成熟的公式和算法;
2)同一船舶各航速之間的波形圖差異較小,目前很難通過波形圖準確判斷船舶航速;
3)能夠從歷史數據中獲取到的樣本數量非常少,只有400 張波形圖樣本和相近船型的20 張波形圖樣本。
在小樣本分類模型中,采用遷移學習對模型進行分類,在少量訓練樣本的情況下,可以獲得較高的識別效率。本文將生成式模型與遷移學習相結合,將融合模型用于小樣本圖像識別。遷移學習采用vgg16 模式進行訓練[7]。與卷積神經網絡分類訓練相比,加入傳遞學習可以提高模型的泛化能力,同時也大大提高了模型的訓練效率。當樣本不足時,基于轉移學習的分類模型只需重新訓練,識別精度大大提高。結合前一部分的樣本增強技術,在樣本缺失的情況下,通過加入模擬樣本和轉移學習進行模型融合和分類。在精度方面,與單純使用傳遞學習和卷積神經網絡相比,本文提出的算法得到了改進,對在樣本數不足的實驗環境下進行深度學習分類有很好的借鑒意義。
針對相應的難點,開展深度神經網絡智能識別方法的研究、理解深度神經網絡的原理,論證適用于船舶水動力學中通過船型、航速預報興波的逆向工程即通過興波的數據識別航速。采集并整理試驗興波場試驗數據、圖像和視頻數據,增加深度學習的樣本數據,通過仿真方法生產大量的樣本數據,并建立大子樣數數據庫。研究以流場圖作為深度神經網絡輸入的編碼方式及以航速為輸出的編碼方式。在此基礎上,確立最終的損失函數,運用深度學習框架構建智能預報的神經網絡,調整網絡模型的結構逐步提高預報精度。
本文的技術途徑如圖1 所示。
圖1 總體技術途徑Fig.1 Overall technical approach
首先研究模型輸入輸出。
1)以流場圖為DNN 輸入的編碼方式
神經網絡的輸入決定了神經網絡可獲取的特征,目前通過勢流計算方法,可以得出船型外部的興波值。編寫程序將興波值進行圖形可視化,如圖2 所示。通過等高線圖或者云圖表達興波的形狀特征。物理試驗可以通過攝像頭進行興波的拍攝,同樣經過圖像處理的方法獲得等高線圖或者云圖。
圖2 船舶興波云圖Fig.2 Ship wave pattern
生成的樣本往往存在噪聲,圖2 中黑色點和線為干擾噪聲,這些噪聲來源廣泛,可能是水中物體游動的紋波或者空中掉落的物體產生的紋波等,都會對船體興波紋理識別造成一定程度的干擾,影響最終的結果輸出。解決圖像噪聲的去噪問題,主要有基于空域的濾波方法,其中最常用的是中值濾波方法[8],其基本原理是將數字圖像或序列中某一點的值與該點所在區域內每個點的中值進行變換。設f(x,y)表示數字圖像像素點(x,y)的灰度值,濾波窗口為A的中值濾波器定義如式(1),圖像處理后的結果如圖3 所示。
圖3 圖像去噪Fig.3 Image de-nosing
2)以航速為DNN 輸出的編碼方式
預報的航速采用無量綱的傅汝德數表示。傅汝德數是流體力學中表征流體慣性力和重力相對大小的一個無量綱參數,記為Fr,表示慣性力和重力量級的比,即
式中:U為物體運動速度;g為重力加速度;L為物體的特征長度。
目前采取2 種方案,第1 種方案把圖像按照Fr的取值進行分類。Fr的取值范圍在[0.10,0.50]之間,因此設計一個40 維度的向量,最終以Softmax 的分類值進行分類[9]。第2 種方案采用回歸的方式進行計算獲取Fr 值,輸出為一個值,激活函數使用ReLU[10]。
3)基于CNN 的興波云圖識別模型確立
確定了輸入的編碼方式和輸出的編碼方式后,在卷積神經網絡層級的研究基礎上構建深度學習網絡來獲取圖像的特征,再通過全聯接網絡進行分類或者回歸。模型網絡結構如圖4 所示。
圖4 基于DNN 的興波云圖識別模型Fig.4 Identification model of wave pattern based on DNN
圖5 生成式模型網絡原理Fig.5 Principle of generative model network
在常用的數據樣本擴展算法中,最常見的是數據增強,其次是使用生成模型的樣本擴展。擴展后的樣本圖像可以很好地用于圖像訓練。在樣本訓練中,不同樣本擴展方法的識別精度往往不同。
2.1.1 基于圖片處理技術的樣本擴充
利用圖像亮度的變化、噪聲、反轉、裁剪、縮放等制作大量樣品,其中,在將原始小樣本進行圖像平移操作時,可以使網絡學習到的模型具有圖像的平移不變特征。圖像旋轉技術可以在進行網絡學習時學習旋轉不變的特點。根據任務的不同,可能會有各種各樣的姿態,旋轉可以彌補樣品中姿態少的問題,增加數據集的豐富度。圖像鏡像技術是一個可以用圖像的不同姿態來表達的問題,具有與圖像旋轉相似的功能。圖像亮度的變化一般通過圖像直射的均衡化表示,可以很好地強化不同亮度的圖像樣本。其次,有裁剪、放大縮小、模糊等方法。
2.1.2 基于生成式模型的樣本擴充
最近的研究中,生成模型受到了廣泛關注。由于小樣本的識別率較低,僅僅依靠基于圖像處理的樣本擴展技術獲得的某些樣本在數據集中的性能不好,容易發生過擬合現象,因此通過采用生成對抗網絡達到豐富數據集的作用。
生成模型是利用深度學習生成樣本的模型,與一般的樣本強化技術不同,網絡模型包括判別器和生產器,生成器產生噪聲樣本,判別器進行判別,兩者相互進化來優先判斷,直到判別器己經無法判斷當前圖像來自噪聲數據還是原始數據,即生成器產生的樣本與原始樣本基本一致,這種基于博弈論方法產生的樣品有助于擴展樣本識別,并且不容易出現擬合現象。
采用生成對抗DCGAN 網絡[11],如圖6 所示。
圖6 DCGAN 網絡Fig.6 DCGAN network
基于利用上述2 種方法進行樣本擴充的效果如圖7所示。
圖7 利用圖片處理技術進行的樣本擴充Fig.7 Sample expansion using image processing technology
遷移學習(transfer learning)[12]的目標是利用從環境中學習到的知識幫助新環境下的學習任務。在傳統的機器學習框架下,學習任務是根據所提供的足夠的訓練樣本學習分類模型,并使用所學的分類模型對測試樣本進行分類和預測。首先,這種學習過程需要大量已有標簽訓練樣本的支持。如果沒有大量的標簽數據,很多機器學習研究和應用將無法實現。其次,傳統的機器學習方法假設訓練數據和測試數據遵循相同的數據分布。只有滿足上述2 個前提,傳統的機器學習方法才能進行有效的工作。然而,在特定領域中,由于標注訓練和測試數據需要大量的人力和物力,所以很難獲得大量的訓練數據。除此之外,在很多情況下,訓練和測試數據的相同分布假設是不滿足的。如訓練數據過期的情況等,需要重新標注大量的訓練數據。
遷移學習可以定義為:給定一個源領域DS和學習任務TS,一個目標領域DT和學習任務TT,遷移學習的目的是使用DS和TS中的已有知識,其中DS≠DT和TS≠TT,幫助提高目標領域DT中目標預測函數fT(·)的學習。
深度CNN 可以將以下特點提取的特點運用到遷移學習中:
1)利用遷移,將預訓練的深度CNN 模型在新任務的小規模數據集中進行再訓練,完成網絡參數的微調,可以進一步強化提取特征的表達能力。
2)從深層提取的高層特征具有足夠的圖像表示和泛化能力,利用簡單的線性分類器可以區分不同樣本的高層語義信息。
3)利用大型圖像數據集訓練Imagenet 等深層CNN 模型,由于樣本和參數數量龐大,即使使用GPU 加速,也需要較長的訓練時間,這是無法接受的。然而,深層CNN 體系結構的另一個優點是預先訓練好的網絡模型可以實現網絡結構和參數信息的分離,并且都以配置文件的形式保存。網絡結構一致,可以利用已訓練的權重參數構建網絡,初始化,大大節約網絡學習時間。
本文實驗分為3 個部分,分別基于原始數據、數據增強后的數據和利用遷移學習的方法進行實驗對比。各實驗數據分布如表1 所示。
表1 實驗數據分布Tab.1 Experimental Data Distribution
原始數據與數據增強模型實驗中采用的卷積神經網絡模型結構如圖8 所示。網絡首先使用2 層卷積層,卷積核大小是5×5,每層后加上一個最大值池化。卷積核數目從128 開始,每經過一次最大池化,卷積核數目翻倍。卷積層之后是2 個全連接層和1 個softmax 分類器。由于該模型的分類數為5,所以softmax 有40 個輸出單元,依次對應相應類別,采用交叉熵做為損失函數。
圖8 卷積神經網絡模型Fig.8 Convolutional neural network model
圖9 VGG16 模型結構Fig.9 VGG16 model structure
遷移學習模型采用大型分類網絡vgg 結構。對VGG16 模型進行部分替換,首先需要利用Tensor-Flow 提供的model.get_layer 方法從VGG16 模型中,找到模型替換的起始層。模型替換的起始層找到后,需要利用TensorFlow 提供的模型編寫方法,對VGG16 模型進行修改。模型構建完成后,最終的輸出結果只有一系列概率值,即輸入圖片的對應航速預測值的概率。
使用相近船型樣本集中的20 個樣本對模型進行測試,測試結果如圖10 所示。以曲線圖的方式展現加入遷移學習的船舶航速識別實驗結果,其中X軸為測試數據樣本,Y軸為測試樣本的識別航速。圖11 所示為加入遷移學習后與之前實驗的誤差結果對比,誤差值的期望值E(error)=0.000 1,表明十分接近真實值。可以看出,本次實驗中有多個樣本的識別航速和真實航速基本一致,且所有的識別航速均勻分布在真實航速曲線兩側,模型識別出的航速與真實航速之間的誤差小于0.05,準確率較原始數據和數據增強的實驗結果有了進一步的提高。
圖10 測試結果比較Fig.10 Comparison of test results
圖11 誤差比較Fig.11 Error comparison
由上述結果可以看出,加入遷移學習后,相比單純的利用卷積神經網絡,準確率有了很大的提升。
本文論證了適用于船舶水動力學中通過船型、航速預報興波的逆向工程,實現了通過興波的數據識別出航速的深度神經網絡模型。
1)論述了研究背景,確定以興波云圖或流場圖反向推斷船舶航速的研究方向,難點為樣本數量不足;
2)針對相應難點,采用生成對抗網絡擴充樣本,同時利用圖像處理方法數據擴充,并進行數據預處理;
3)確定VGG 神經網絡結構,利用遷移學習加快訓練模型速度,最終測試誤差達到0.05 以下,滿足最初目標。