陳冰雁,劉傳振,*,白 鵬,喬 宇
(1.中國(guó)航天空氣動(dòng)力技術(shù)研究院,北京 100074;2.中國(guó)科學(xué)院 深圳先進(jìn)技術(shù)研究院,深圳 518000)
自20世紀(jì)初萊特兄弟成功試飛第一架飛機(jī)以來(lái),飛行器的發(fā)展如火如荼。氣動(dòng)外形設(shè)計(jì)作為飛行器設(shè)計(jì)的“先行官”,具有舉足輕重的作用。隨著科技的進(jìn)步,氣動(dòng)設(shè)計(jì)經(jīng)歷了從機(jī)械式到信息化的轉(zhuǎn)變。20世紀(jì)前半葉,氣動(dòng)設(shè)計(jì)都是通過(guò)手工修形設(shè)計(jì)得到,其嚴(yán)重依賴于設(shè)計(jì)人員的經(jīng)驗(yàn),設(shè)計(jì)周期很長(zhǎng)。20世紀(jì)中葉以來(lái),計(jì)算流體力學(xué)(Computational Fluid Dynamics,CFD)應(yīng)運(yùn)而生,CFD結(jié)合CAD(Computational Aid Design)技術(shù),已經(jīng)可以進(jìn)行半自動(dòng)化的飛行器氣動(dòng)外形設(shè)計(jì)。但CFD分析仍是一個(gè)比較耗時(shí)的過(guò)程,在飛行器設(shè)計(jì)中需要反復(fù)調(diào)用CFD分析模塊,計(jì)算量很大。
機(jī)器學(xué)習(xí)技術(shù)則提供了另一種解決手段,它通過(guò)計(jì)算手段,利用經(jīng)驗(yàn)或已有數(shù)據(jù)改善系統(tǒng)自身的性能。在氣動(dòng)設(shè)計(jì)中,給定若干外形和性能樣本集,數(shù)據(jù)代理模型可以自動(dòng)訓(xùn)練、建立性能仿真模型,并快速評(píng)估仿真模型性能。目前應(yīng)用比較成熟的機(jī)器模型包括二項(xiàng)式響應(yīng)面、Kriging以及神經(jīng)網(wǎng)絡(luò)[1]等。2006年,多倫多大學(xué)的Hinton[2]首次提出“深度學(xué)習(xí)”概念——使用多隱層神經(jīng)網(wǎng)絡(luò)提高數(shù)據(jù)識(shí)別精度。2012年,Hilton跟他的學(xué)生Krizhevsky合作建立深層卷積神經(jīng)網(wǎng)絡(luò),并在ImageNet視覺(jué)競(jìng)賽中取得第一名[3]。2016年3月,AlphaGo橫空出世,通過(guò)卷積神經(jīng)網(wǎng)絡(luò)提高搜索樹(shù)的選擇和剪枝,戰(zhàn)勝了圍棋世界冠軍李世石,引爆了“人工智能”時(shí)代[4]。
從目前的研究資料來(lái)看,氣動(dòng)外形設(shè)計(jì)中的機(jī)器學(xué)習(xí)技術(shù)還處于比較初級(jí)的階段。以神經(jīng)網(wǎng)絡(luò)模型為例,美國(guó)NASA AMES研究中心、加拿大科學(xué)院空氣動(dòng)力研究所等,研究過(guò)發(fā)動(dòng)機(jī)葉片翼型優(yōu)化[5]和跨聲速飛行器外形優(yōu)化[6]等課題,但大都以單隱層或有限隱層的神經(jīng)網(wǎng)絡(luò)、徑向基神經(jīng)網(wǎng)絡(luò)等簡(jiǎn)單模型為主,使用以卷積神經(jīng)網(wǎng)絡(luò)為代表的深度學(xué)習(xí)模型很少。這可能有幾個(gè)原因:氣動(dòng)數(shù)據(jù)少,發(fā)展時(shí)間短,問(wèn)題性質(zhì)復(fù)雜。但深度學(xué)習(xí)效果強(qiáng)大、市場(chǎng)廣闊,應(yīng)用到氣動(dòng)外形設(shè)計(jì)中的潛力是不言而喻的,有些學(xué)者已經(jīng)先行探索,比如陳海等[7]使用卷積神經(jīng)網(wǎng)絡(luò),以翼型圖像為輸入預(yù)測(cè)了翼型的氣動(dòng)系數(shù)。
本文以乘波體為設(shè)計(jì)背景探索深度學(xué)習(xí)技術(shù)在氣動(dòng)代理模型中的應(yīng)用。從乘波體外形出發(fā),根據(jù)三維流場(chǎng)乘波體設(shè)計(jì)方法提取設(shè)計(jì)變量,評(píng)估氣動(dòng)力性能,生成大規(guī)模數(shù)據(jù)集。選擇深度殘差網(wǎng)絡(luò)(Residual Neural Network,ResNet),測(cè)試氣動(dòng)性能預(yù)測(cè)精度,并探索了基于圖片識(shí)別的模型構(gòu)建。
大數(shù)據(jù)是深度學(xué)習(xí)發(fā)展的基石之一(另兩個(gè)為硬件平臺(tái)和算法)。只有在海量數(shù)據(jù)基礎(chǔ)上,深度學(xué)習(xí)才能真正發(fā)揮威力,比如AlphaGo,其模型訓(xùn)練使用的棋盤數(shù)據(jù)達(dá)3×107之多。
現(xiàn)階段由于風(fēng)洞實(shí)驗(yàn)、數(shù)值模擬和飛行實(shí)驗(yàn)的成本和效率,氣動(dòng)外形性能數(shù)據(jù)量有限,且完整性與確定性較差,建立氣動(dòng)大數(shù)據(jù)并不容易。本文的研究重點(diǎn)是機(jī)器學(xué)習(xí)模型的預(yù)測(cè)精度,暫不考慮氣動(dòng)數(shù)據(jù)的精確性,因此以一類簡(jiǎn)單的外形“乘波體”為例,開(kāi)發(fā)設(shè)計(jì)方法并快速預(yù)估性能,大量生成可供測(cè)試的數(shù)據(jù)。本文使用基于激波裝配法的乘波體設(shè)計(jì)方法[8],結(jié)合基于多重網(wǎng)格的快速搜索技術(shù),實(shí)現(xiàn)了三維流場(chǎng)乘波體的快速生成。
乘波體使用橢圓鈍錐激波流場(chǎng)作為設(shè)計(jì)流場(chǎng),設(shè)計(jì)狀態(tài)為Ma=5、H=30 km。設(shè)計(jì)過(guò)程如圖1(a),可簡(jiǎn)述如下:取一條空間曲線作為FCT (Flow Capture Tube),將其沿水平方向投影到激波曲面,投影線就是乘波體的前緣線;從前緣線出發(fā)追蹤流線,即可得到乘波體下表面,上表面一般是自由流面。FCT是乘波體設(shè)計(jì)中的主要設(shè)計(jì)變量,曲線有多種方法可以進(jìn)行參數(shù)化表示,本文選擇一種常用且高效的參數(shù)化方法B樣條作為幾何表達(dá)工具[9]。如圖1(a)所示,在FCT上取31個(gè)點(diǎn),布置流線,向后追蹤流線得到圖1(b)的乘波外形。
(a)FCT投影到激波面示意圖
(b)乘波體外形
圖1 三維流場(chǎng)乘波體設(shè)計(jì)示意圖
Fig.1 Waverider design with 3D flow field
追蹤流線得到的乘波體外形中保存有流場(chǎng)信息,可以使用流線積分法預(yù)估得到乘波體的無(wú)黏氣動(dòng)性能,計(jì)算非常迅速。圖1(a)所示的乘波體生成與性能預(yù)測(cè)的總耗時(shí)約0.3 s,生成的外形圖1(b)升阻比預(yù)估為7.8(不考慮底阻),容積率0.134,與CFD計(jì)算的性能誤差不超過(guò)5%。
乘波體設(shè)計(jì)結(jié)合流線積分法可以快速計(jì)算飛行器的氣動(dòng)性能,為三維流場(chǎng)乘波體的氣動(dòng)數(shù)據(jù)的大規(guī)模生成奠定了基礎(chǔ)。其設(shè)計(jì)參數(shù)為B樣條表達(dá)FCT的控制點(diǎn),固定z坐標(biāo)均勻分布,設(shè)計(jì)變量為6個(gè)y坐標(biāo)。性能數(shù)據(jù)參數(shù)為5個(gè):升力系數(shù)CL、阻力系數(shù)CD、縱向壓心位置CF、平面投影面積S、容積V。所以單條數(shù)據(jù)為6個(gè)設(shè)計(jì)變量到5個(gè)性能評(píng)估數(shù)據(jù)的映射。
機(jī)器模型的訓(xùn)練需要一定量由輸入設(shè)計(jì)變量到輸出響應(yīng)值的數(shù)據(jù)集。而在設(shè)計(jì)空間中合理選取樣本點(diǎn),對(duì)是否可以獲取有效信息非常重要,這一過(guò)程叫做實(shí)驗(yàn)設(shè)計(jì)。目前常用的實(shí)驗(yàn)設(shè)計(jì)方法包括均勻?qū)嶒?yàn)設(shè)計(jì)、正交實(shí)驗(yàn)設(shè)計(jì)、D-最優(yōu)實(shí)驗(yàn)設(shè)計(jì)等。
拉丁超立方采樣(Latin Hypercube Sampling,LHS)是一種比較流行的現(xiàn)代實(shí)驗(yàn)設(shè)計(jì)方法,已獲得廣泛應(yīng)用。其選取樣本點(diǎn)的方法如下所示:
(1)
LHS的采樣在任一維上都有個(gè)數(shù)與樣本數(shù)量相同的子區(qū)間,每個(gè)子區(qū)間有且僅有1個(gè)樣本;樣本在每個(gè)子區(qū)間內(nèi)隨機(jī)選取,因此LHS方法可以保證一定的均勻性。圖2展示了三維變量在給定范圍內(nèi)分別選擇1000和10 000的采樣點(diǎn)示意圖,可以看到,在大樣本情況下LHS采樣可以保持比較均勻。
(a)1000采樣點(diǎn)
(b)10 000采樣點(diǎn)圖2 拉丁超立方采樣效果圖Fig.2 Samples using LHS method
在1.1節(jié)的乘波體設(shè)計(jì)中,6個(gè)設(shè)計(jì)變量的變化范圍均定為[-25,-5],經(jīng)過(guò)驗(yàn)證,設(shè)計(jì)空間均可行。深度學(xué)習(xí)模型的一大特點(diǎn)是適合于海量數(shù)據(jù)的特征提取,因此生成十萬(wàn)條數(shù)據(jù)作為樣本集。表 1給出任選3個(gè)樣本數(shù)據(jù)的形式,包括6個(gè)設(shè)計(jì)參數(shù)和對(duì)應(yīng)的5個(gè)性能參數(shù)。
表1 采樣的數(shù)據(jù)示意Table 1 Data of three samples
伴隨人工智能時(shí)代發(fā)展迅速的深度模型中,目前應(yīng)用最廣泛的是卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN),已經(jīng)在計(jì)算機(jī)視覺(jué)、語(yǔ)音識(shí)別等領(lǐng)域取得了突破性成果。CNN通過(guò)卷積與池化操作,將低層特征逐層組合成抽象的高層屬性類別,結(jié)構(gòu)復(fù)雜,參數(shù)數(shù)目多,具有良好的識(shí)別性。
為了進(jìn)一步提升模型能力,設(shè)計(jì)具有深層次的網(wǎng)絡(luò)是非常自然的想法,深度對(duì)于模型帶來(lái)的性能提升最為顯著。最近幾年神經(jīng)網(wǎng)絡(luò)的層數(shù)提高很快,以ImageNet競(jìng)賽中表現(xiàn)出色的卷積神經(jīng)網(wǎng)絡(luò)為例:2012年,AlexNet[10],8層網(wǎng)絡(luò);2014年,VGGNet[11],16層;2014年,GoogleNet[12],22層。
但訓(xùn)練深層次的神經(jīng)網(wǎng)絡(luò)非常困難,很多情況下由于訓(xùn)練不到位,單純把Layer堆積起來(lái)的深層網(wǎng)絡(luò)效果反而不如較淺的網(wǎng)絡(luò)好。深度殘差神經(jīng)網(wǎng)絡(luò)(Residual Neural Network,ResNet)解決了這一問(wèn)題。ResNet由微軟亞洲研究院何凱明研究員于2015年的ImageNet圖像識(shí)別競(jìng)賽中首次使用,將卷積神經(jīng)網(wǎng)絡(luò)層數(shù)提高到驚人的100層。ResNet在2015年ImageNet的圖像檢測(cè)和定位領(lǐng)域均獲得第一名,顯示了強(qiáng)大的能力。2016年,ResNet獲得圖像識(shí)別領(lǐng)域頂級(jí)會(huì)議CVPR最佳論文獎(jiǎng)[13]。
ResNet在普通深度卷積網(wǎng)絡(luò)的基礎(chǔ)上增加跨層擬合訓(xùn)練殘差,在訓(xùn)練每層時(shí)除了使用目標(biāo)函數(shù)梯度外,還增加殘差梯度,有效防止了深度模型訓(xùn)練時(shí)梯度隨深度增加而消失的問(wèn)題,從而使模型的準(zhǔn)確率得到很大提升。深度殘差網(wǎng)絡(luò)的核心是殘差單元,通過(guò)使用殘差單元,可以構(gòu)建極深的神經(jīng)網(wǎng)絡(luò)。
如圖3(a)所示,殘差單元的具體闡述如下[13]:假設(shè)某段神經(jīng)網(wǎng)絡(luò)的輸入是x,期望輸出是H(x),將輸入x傳到輸出時(shí),需要學(xué)習(xí)的目標(biāo)是H(x)。ResNet則改變學(xué)習(xí)目標(biāo),不再學(xué)習(xí)完整的輸出H(x),而只學(xué)習(xí)輸出和輸入的差別H(x)-x,即殘差F(x)=H(x)-x。何凱明通過(guò)實(shí)驗(yàn)證明,優(yōu)化F(x)比優(yōu)化H(x)容易得多。x通過(guò)旁路支線將輸入直接連到后面層,使得后面層可以直接學(xué)習(xí)殘差,這種結(jié)構(gòu)被稱為短鏈接,可以跳過(guò)2層、3層或更多層,直接執(zhí)行協(xié)同映射,如圖3(b)所示。殘差單元的數(shù)學(xué)定義為:
xl+1=f(xl+F(xl,Wl))
(2)
其中,xl和xl+1分別為第l個(gè)殘差單元的輸入和輸出;f是激活函數(shù),一般為修正線性單元(rectified linear unit,relu),relu=max{0,x};F為殘差;W為卷積核。殘差訓(xùn)練的重要突破在于重構(gòu)學(xué)習(xí)過(guò)程,引入一條捷徑,使訓(xùn)練過(guò)程中底層誤差可以通過(guò)捷徑向上一層傳播,減弱了層數(shù)過(guò)多造成的梯度消失現(xiàn)象,很大程度上解決了層級(jí)與準(zhǔn)確度之間的矛盾。
(a)深度學(xué)習(xí)殘差單元 (b)跳過(guò)三層示例圖3 ResNet殘差單元結(jié)構(gòu)圖Fig.3 View of the ResNet unit block
本文構(gòu)建了10層ResNet,由9個(gè)卷積層和一個(gè)全連接層組成,實(shí)現(xiàn)工具Caffe[14]。采用動(dòng)量梯度下降算法,其權(quán)值初始學(xué)習(xí)率設(shè)置為0.01,動(dòng)量值0.98,批大小128,權(quán)值衰減0.0005,保留層保留率為0.8,最大訓(xùn)練迭代次數(shù)40 000次,以上參數(shù)定義可參考文獻(xiàn)[15]。使用的計(jì)算平臺(tái)配置為CPU:Intel Xeon(R)CPU E5-2690 2.60 GHz;GPU:GeForce GTX TITAN X (×1)。
數(shù)據(jù)為100 000個(gè)LHS方法選取的樣本集,其中90 000個(gè)為訓(xùn)練樣本,10 000個(gè)為驗(yàn)證樣本,總訓(xùn)練時(shí)間為45 min。
為了說(shuō)明ResNet的預(yù)測(cè)能力,本文對(duì)比了兩個(gè)經(jīng)典的淺層學(xué)習(xí)模型:隨機(jī)森林和普通前饋神經(jīng)網(wǎng)絡(luò)(Neural Network,NN)。
表2 不同模型的測(cè)試精度Table 2 Test precision of surrogate models
隨機(jī)森林(Random Forests,RF)是一種簡(jiǎn)單快速的集成學(xué)習(xí)模型,它是并行式集成學(xué)習(xí)方法Bagging模型的一種改型,實(shí)現(xiàn)如下:首先通過(guò)自主采樣法得到T個(gè)樣本集,基于每個(gè)采樣集訓(xùn)練基學(xué)習(xí)器,并行處理,得到Bagging模型[16]。在Bagging模型的基礎(chǔ)上,進(jìn)一步引入隨機(jī)屬性選擇,通過(guò)模型屬性擾動(dòng),提高辨別能力。隨機(jī)森林簡(jiǎn)單易實(shí)現(xiàn)、計(jì)算開(kāi)銷小,在很多現(xiàn)實(shí)任務(wù)中表現(xiàn)出了強(qiáng)大的性能,被譽(yù)為“代表集成學(xué)習(xí)技術(shù)最高水平的方法”。
本文構(gòu)建了個(gè)體學(xué)習(xí)器數(shù)目為100的隨機(jī)森林,計(jì)算平臺(tái)配置為CPU:Intel Xeon(R)CPU E5-2690 2.60 GHz,采用MATLAB實(shí)現(xiàn)。90 000條樣本為訓(xùn)練數(shù)據(jù),10 000條為測(cè)試數(shù)據(jù),訓(xùn)練時(shí)間300 s。誤差分布如表2第2行所示,可以看到氣動(dòng)力系數(shù)的精度較高,但投影面積和容積的識(shí)別精度較低。
另一模型為雙隱層神經(jīng)網(wǎng)絡(luò),輸入層神經(jīng)元6個(gè),第一隱層8個(gè),第二隱層2個(gè),輸出層1個(gè)。隱層神經(jīng)元激勵(lì)函數(shù)為雙曲正切函數(shù),輸出層為線性輸出,計(jì)算平臺(tái)配置同隨機(jī)森林。針對(duì)5個(gè)參數(shù)分別設(shè)計(jì)和訓(xùn)練了5個(gè)NN,均使用誤差逆?zhèn)鞑?error Back Propagation,BP)算法訓(xùn)練,其中樣本集中90%為訓(xùn)練數(shù)據(jù),10%為驗(yàn)證數(shù)據(jù),單個(gè)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練時(shí)間約為25 min,模型的總訓(xùn)練時(shí)間為2 h左右。
NN模型的測(cè)試精度如表2第3行所示。綜合這3個(gè)模型的精度,可以看到對(duì)于5個(gè)氣動(dòng)性能參數(shù),ResNet的預(yù)測(cè)精度均是最高的。相應(yīng)的,ResNet深度學(xué)習(xí)模型的深層次導(dǎo)致參數(shù)數(shù)量多、訓(xùn)練時(shí)計(jì)算量消耗較大,在使用了一塊GeForce Titan GPU加速計(jì)算的情況下,訓(xùn)練時(shí)間45 min,相比隨機(jī)森林的5 min長(zhǎng)得多。但一旦訓(xùn)練完畢,使用模型對(duì)數(shù)據(jù)進(jìn)行預(yù)估的速度很快,基本可達(dá)1000次/秒,滿足效率要求。
第2節(jié)中使用的樣本數(shù)據(jù)集給出了數(shù)據(jù)到數(shù)據(jù)的映射。但一方面,飛行器的參數(shù)化是一項(xiàng)比較復(fù)雜的工作,難以保證參數(shù)化模型的精度;第二,深度學(xué)習(xí)模型在圖片識(shí)別領(lǐng)域最為成熟,應(yīng)用最廣,單純數(shù)據(jù)到數(shù)據(jù)的映射難以充分挖掘現(xiàn)階段人工智能的優(yōu)勢(shì)。
本文提出另外一個(gè)氣動(dòng)性能預(yù)測(cè)思路:直接將飛行器外形轉(zhuǎn)化為二維圖片,建立圖片數(shù)據(jù)集,再訓(xùn)練深度學(xué)習(xí)模型預(yù)測(cè)性能。這是一種比較直觀的做法,可以省略外形參數(shù)化步驟,同時(shí)更為方便應(yīng)用成熟的圖片識(shí)別深度學(xué)習(xí)技術(shù)。在具體操作中,選定投影平面,將飛行器按照部件分開(kāi),例如機(jī)身、機(jī)翼、尾翼、發(fā)動(dòng)機(jī)短艙等,將各部件投影到投影平面,形成二維圖像,其中每個(gè)像素點(diǎn)的顏色代表圖像對(duì)應(yīng)位置的高度或厚度,這樣每個(gè)飛行器外形就可以分解為對(duì)應(yīng)的幾個(gè)二維圖片。
乘波體外形較為簡(jiǎn)單,可以分為上下兩個(gè)表面部件,投影到俯視圖平面,每個(gè)像素點(diǎn)的灰度值代表此點(diǎn)相對(duì)于參考平面的z坐標(biāo)位置。因?yàn)槌瞬w的上表面都是自由流面,包含信息較少,其前緣足以充分表達(dá),所以僅保留下表面圖像即可。圖4給出樣本集中兩個(gè)外形下表面的投影圖,固定頭部頂點(diǎn)位置,采樣圖像大小均為200×500像素,總共建立100 000圖片到數(shù)據(jù)的映射作為圖片樣本集。
圖4 兩個(gè)采樣乘波體的下表面映射圖像Fig.4 Figures of two waverider lower surfaces
仍然使用10層ResNet進(jìn)行訓(xùn)練,計(jì)算平臺(tái)機(jī)器配置為CPU:Intel(R)Xeon(R)CPU E5-2690 2.60 GHz;GPU:GeForce GTX TITAN X(×4)。訓(xùn)練時(shí)間24.5 h。
表3給出了氣動(dòng)性能的預(yù)測(cè)精度。從測(cè)試結(jié)果看,基于圖片數(shù)據(jù)集的測(cè)試精度比基于數(shù)據(jù)的測(cè)試精度低,這可能是因?yàn)閳D片數(shù)據(jù)的維數(shù)(200×500個(gè)像素點(diǎn))大幅增加,影響了深度學(xué)習(xí)模型的訓(xùn)練精度。但相比飛行器參數(shù)化得到的數(shù)據(jù),此方法實(shí)現(xiàn)更為容易,有望推廣到升力體、翼身融合體或工程外形之中。
表3 基于圖片數(shù)據(jù)集的測(cè)試精度Table 3 Test precision of ResNet based on picture data set
本文以乘波體氣動(dòng)外形數(shù)據(jù)為例,研究了深度學(xué)習(xí)模型在氣動(dòng)性能預(yù)測(cè)中的應(yīng)用,結(jié)論如下:
(1)人工智能深度學(xué)習(xí)需要大量的數(shù)據(jù),乘波體外形相對(duì)簡(jiǎn)單,生成外形效率高,比較適合這類研究探索;拉丁超立方采樣是比較有效的實(shí)驗(yàn)設(shè)計(jì)方法,具有較好的均勻性。
(2)對(duì)比于傳統(tǒng)機(jī)器學(xué)習(xí)模型,深度殘差神經(jīng)網(wǎng)絡(luò)ResNet通過(guò)多層的非線性變換,預(yù)測(cè)精度更高,證實(shí)了其作為飛行器氣動(dòng)數(shù)據(jù)代理模型的有效性。
(3)鑒于現(xiàn)有深度學(xué)習(xí)模型都以圖片或語(yǔ)音為應(yīng)用場(chǎng)景,本文利用飛行器圖片作為輸入,使用ResNet建立圖片與氣動(dòng)指標(biāo)的非線性映射,實(shí)現(xiàn)了飛行器的非參數(shù)化性能預(yù)測(cè)。