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