王志剛,王業(yè)光,楊寧,米禹豐,曲曉雷
航空工業(yè)沈陽飛機(jī)設(shè)計研究所,沈陽 110035
飛行數(shù)據(jù)的處理一直是航空領(lǐng)域的關(guān)鍵技術(shù)之一,由于目前航空業(yè)的飛速發(fā)展,飛機(jī)種類增多、飛行架次增大、傳感器記錄的精度提高等發(fā)展變化,飛行數(shù)據(jù)量呈爆炸式的指數(shù)型提高,因此在海量數(shù)據(jù)中將有價值的目標(biāo)數(shù)據(jù)提取出來并進(jìn)行數(shù)據(jù)處理已成為關(guān)鍵的研究方向。近些年,隨著大數(shù)據(jù)和機(jī)器學(xué)習(xí)技術(shù),尤其是深度學(xué)習(xí)技術(shù)的興起,在目標(biāo)數(shù)據(jù)識別、提取目標(biāo)方面已能達(dá)到較高的識別水平,因此用大數(shù)據(jù)結(jié)合深度學(xué)習(xí)的方法智能地處理并提取飛行數(shù)據(jù)已成為未來發(fā)展的必然趨勢。
識別挖掘飛行員操縱數(shù)據(jù)屬于時間序列預(yù)測問題,建立模型時需要結(jié)合實際應(yīng)用背景和時間序列預(yù)測問題的方法。大數(shù)據(jù)挖掘技術(shù)是目前人工智能與數(shù)據(jù)庫領(lǐng)域研究的熱門方向,Usama Fayyad是數(shù)據(jù)挖掘的創(chuàng)始人,時間序列數(shù)據(jù)處理是數(shù)據(jù)挖掘領(lǐng)域的十大挑戰(zhàn)問題之一[1]。
時間序列預(yù)測根據(jù)統(tǒng)計規(guī)律擬合關(guān)于時間序列的最佳數(shù)學(xué)模型,使用得到的模型預(yù)測未來時間點(diǎn)上的數(shù)據(jù)。統(tǒng)計模型有自回歸模型(AR)[2]、移動平均模型(MA)[3]、自回歸移動平均模型(ARMA)[4],這些模型僅適用于對平穩(wěn)數(shù)據(jù)的預(yù)測。如果數(shù)據(jù)是不平穩(wěn)且不是線性的,預(yù)測誤差會很大。
深度學(xué)習(xí)的出現(xiàn)為處理大量非線性特征耦合數(shù)據(jù)提供了一條新的解決方向,其中循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)由于其網(wǎng)絡(luò)結(jié)構(gòu)具有對時序序列進(jìn)行記憶存儲的特性,被大量運(yùn)用在時間序列數(shù)據(jù)的處理和分析當(dāng)中。徐徐針對典型的循環(huán)神經(jīng)網(wǎng)絡(luò)模型[5],在不深度改變其結(jié)構(gòu)的基礎(chǔ)上,通過權(quán)重初始化改進(jìn)并結(jié)合卷積神經(jīng)網(wǎng)絡(luò),給出了一種結(jié)合卷積神經(jīng)網(wǎng)絡(luò)的Simple RNN改進(jìn)模型,該模型在改進(jìn)了網(wǎng)絡(luò)結(jié)構(gòu)的同時,還提高了訓(xùn)練速度,但始終在提取特征的準(zhǔn)確性與特征序列存儲上存在不足之處。Cai等使用粒子群算法和進(jìn)化算法訓(xùn)練RNN,預(yù)測時間序列中存在的缺失值[6];實驗發(fā)現(xiàn),相比于標(biāo)準(zhǔn)的EA(Evolutionary Algorithm)和PSO(Particle Swarm Optimization)算法,兩個算法結(jié)合起來訓(xùn)練的RNN預(yù)測誤差更小。但RNN網(wǎng)絡(luò)存在梯度消失和梯度爆炸的問題,不適用于一些長相關(guān)性預(yù)測的問題。
Hochreiter在1998年提出了LSTM(Long Short Time Memory)網(wǎng)絡(luò)[7],有效地避免了RNN的梯度消失問題,在長相關(guān)預(yù)測情景中獲得了較好的結(jié)果。郝世林提出了一種基于注意力機(jī)制的LSTM模型(ATT-LSTM),該模型能夠?qū)崿F(xiàn)有效利用LSTM中間隱層各個時刻輸出,進(jìn)行注意力分布的計算,對輸出信息進(jìn)行加權(quán),充分挖掘酒醅溫度數(shù)據(jù)的規(guī)律,實現(xiàn)對酒醅溫度的有效準(zhǔn)確預(yù)測[8]。Jia等提出了一種基于LSTM網(wǎng)絡(luò)的語義檢查模型[9],用于智能回讀錯誤檢查,在傳統(tǒng)的LSTM中加入了均值池,利用所有隱藏激活向量所獲得的信息,提高了LSTM提取語義向量的魯棒性。
本研究旨在通過大數(shù)據(jù)和人工智能方法提高歷史數(shù)據(jù)挖掘效率,基于現(xiàn)有LSTM網(wǎng)絡(luò)研究成果,充分利用數(shù)據(jù)中的寶貴財富,提取飛行員的飛行智慧用于后續(xù)型號研制。對于機(jī)動動作識別,選取幾個有代表性的典型機(jī)動動作,根據(jù)動作特性設(shè)計對應(yīng)動作識別模型,使用機(jī)器學(xué)習(xí)技術(shù)設(shè)計的模型對機(jī)動動作進(jìn)行自動識別提取。
數(shù)據(jù)挖掘模式識別可分解為數(shù)據(jù)準(zhǔn)備、基于LSTM學(xué)習(xí)模型訓(xùn)練和數(shù)據(jù)模式識別3部分功能模塊,模塊主要功能如下:
1) 數(shù)據(jù)準(zhǔn)備:使用窗口滑動法,將原始待測序列劃分為子序列。
2) 基于LSTM學(xué)習(xí)模型訓(xùn)練:該模塊生成LSTM網(wǎng)絡(luò)模型,模式識別模塊可輸入數(shù)據(jù)特征到模型中,輸出為數(shù)據(jù)的模式標(biāo)簽。
3) 數(shù)據(jù)模式識別:將待測序列輸入到訓(xùn)練良好的網(wǎng)絡(luò)模型中,自動識別出數(shù)據(jù)的模式。
數(shù)據(jù)模式識別模型的工作流程如圖1所示。
圖1 飛行數(shù)據(jù)模式識別軟件架構(gòu)Fig.1 Flight data pattern recognition software architecture
相較于傳統(tǒng)的模型匹配的模式識別方法,基于LSTM的模式識別方法具有如下優(yōu)點(diǎn):
1) 訓(xùn)練和識別過程不再考慮端點(diǎn)識別。
2) 訓(xùn)練和識別流程簡化。
3) 模型適用于復(fù)雜時序序列數(shù)據(jù)[10]。
為驗證LSTM能夠識別單參數(shù)、多參數(shù)模式的數(shù)據(jù),使用數(shù)據(jù)模型構(gòu)造和修改參數(shù)的方法構(gòu)造了3種模式,每種模式包含3個參數(shù),分別命名為模式1、模式2和模式3,3種模式的示意圖如圖2所示。
圖2 模式數(shù)據(jù)曲線對比Fig.2 Comparison of model data curves
模式1參數(shù)1的數(shù)據(jù)模型為f11(x11)=a11sin(x11+b11π/2)+c,參數(shù)2的數(shù)據(jù)模型為f12(x12)=a12x12+b12,參數(shù)3的數(shù)學(xué)模型為f13(x13)=a13sinx13,a11、a12、a13、b11、b12和c均為公式系數(shù),數(shù)值可調(diào)整,x11、x12和x13均為自變量。
模式2參數(shù)1的數(shù)據(jù)模型為階躍函數(shù),參數(shù)2的數(shù)據(jù)模型為f22(x22)=a22ex22+b22,參數(shù)3的數(shù)學(xué)模型為f23(x23)=a23cos(x23-b23π/2),a22、a23、b22和b23均為公式系數(shù),數(shù)值可調(diào)整,x21、x22和x23均為自變量。
模式3參數(shù)1的數(shù)據(jù)模型為f31(x31)=a31,參數(shù)2的數(shù)據(jù)模型為矩陣階躍函數(shù),參數(shù)3的數(shù)學(xué)模型為f33(x33)=a33sin(x33-b33π/2),a31、a33和b33均為公式系數(shù),數(shù)值可調(diào)整,x31、x32和x33均為自變量。
數(shù)學(xué)模型的系數(shù)在固定范圍可變,修改其峰值或相位或頻率,每個模式隨機(jī)生成8 000個樣本,共計15 000個訓(xùn)練樣本和9 000個測試樣本,并生成對應(yīng)的標(biāo)簽,樣本準(zhǔn)備情況如圖3所示。
圖3 訓(xùn)練樣本格式Fig.3 Training sample format
基于LSTM飛行數(shù)據(jù)挖掘模型支持包括機(jī)動動作和飛行姿態(tài)的共5種模式的識別[11],具體動作描述如下:
1) 正弦掃描
正弦掃描機(jī)動動作如圖4所示,將指令輸入到駕駛桿或腳蹬,離散掃描連續(xù)掃描頻率為0.3~0.4 Hz。
圖4 正弦掃描機(jī)動動作Fig.4 Sinusoidal sweep maneuver
2) 半筋斗翻轉(zhuǎn)
有效條件為允許在與完成全斤斗相同時的發(fā)動機(jī)工作狀態(tài)、飛機(jī)速度和高度條件下完成半斤斗。在接近特技頂點(diǎn)之前,飛行員的動作順序和注意力分配與完成全斤斗時的動作順序和注意力分配相同。在飛機(jī)接近頂點(diǎn)時,表速不小于300 km/h,協(xié)調(diào)一致地壓桿蹬舵,在3~4 s 時間內(nèi)完成半滾,使飛機(jī)轉(zhuǎn)為平飛。如果飛機(jī)在接近頂點(diǎn)時飛行表速小于300 km/h,則必須在不允許增加迎角超過允許值和壓桿的情況下,將腳蹬調(diào)整到中立位置,并保持住。在機(jī)頭低于天地線且飛行速度增加到350 km/h后,完成半滾并使飛機(jī)轉(zhuǎn)為平飛。
3) 半滾倒轉(zhuǎn)
有效條件為飛機(jī)在進(jìn)入半滾倒轉(zhuǎn)前的平飛中,將發(fā)動機(jī)狀態(tài)、速度和高度調(diào)整到給定狀態(tài),協(xié)調(diào)壓桿和蹬舵使飛機(jī)在2~3 s的時間內(nèi)相對縱軸轉(zhuǎn)過180°,然后平穩(wěn)拉桿,用2~3 s的時間建立接近最大的允許過載和極限迎角的飛行姿態(tài),使飛機(jī)在不超過允許的迎角和過載值的極限限制系統(tǒng)工作邊界下完成半滾倒轉(zhuǎn)飛行。
4) 收斂盤旋
穩(wěn)定直線飛行,要求操縱動作均勻,緩慢建立起縱向過載至最大。先壓桿并建立坡度,然后回桿,同時均勻緩慢向最大操縱位置拉起。保持整個過程速度不變,動作前可開最大加力,并在轉(zhuǎn)彎過程中通過降低高度來保持速度。
5) 定常側(cè)滑
保持飛行高度、速度,壓桿蹬舵,并保持航向不變[12]。
LSTM是RNN算法的改良,首先簡要介紹一下RNN原理。RNN的主要用途是處理和預(yù)測時序數(shù)據(jù),結(jié)構(gòu)剖析如圖5所示,圖中W為權(quán)重,U為此刻輸入樣本的權(quán)重,V為輸出樣本的權(quán)重。每一個序列索引位置t都有一個隱藏狀態(tài)ht,略去每層都有的模型輸出ot、損失函數(shù)Lt和真實輸出yt,RNN模型的簡化圖如圖6所示,其中tanh為雙曲正切函數(shù),輸出值在-1~1之間,ht由當(dāng)前輸入的xt和ht-1得到[13]。
圖5 RNN原理圖Fig.5 RNN schematic diagram
圖6 RNN模型簡化圖Fig.6 RNN model simplified graph
但由于RNN具有梯度消失的問題,處理長序列數(shù)據(jù)的劣勢更加明顯。為滿足試飛數(shù)據(jù)模式識別的長序列、數(shù)據(jù)前后關(guān)系依賴強(qiáng)的特性,采取LSTM算法識別模式數(shù)據(jù),可學(xué)習(xí)序列間的長期依賴關(guān)系,LSTM模型的原理如圖7所示,圖中σ表示sigmoid函數(shù),輸出值在0~1之間。
圖7 LSTM模型簡化圖Fig.7 LSTM model simplified figure
LSTM的核心部分是最上邊類似于傳送帶的部分,這一部分一般叫做細(xì)胞狀態(tài),它自始至終存在于LSTM的整個鏈?zhǔn)较到y(tǒng)中[14],如圖8所示,圖中Ct為細(xì)胞狀態(tài)。
在LSTM中以一定的概率控制是否遺忘上一層的隱藏細(xì)胞狀態(tài)[15]。遺忘門結(jié)構(gòu)如圖9所示。
遺忘門的輸入有上一層隱藏狀態(tài)ht-1和xt,通過一個激活函數(shù)得到遺忘門的輸出ft,分布在區(qū)間[0,1]之間,代表遺忘上一層隱藏細(xì)胞狀態(tài)的概率:
ft=σ(Wfht-1+Ufxt+bf)
(1)
式中:Wf、Uf和bf分別為遺忘門輸出ft線性關(guān)系的系數(shù)和偏倚。
對比圖8和圖9可知,LSTM的隱藏層引入了門機(jī)制,控制特征的流通和損失,門機(jī)制包括遺忘門、輸入門和輸出門,比較特殊的是細(xì)胞狀態(tài)。
圖8 LSTM模型的細(xì)胞狀態(tài)Fig.8 Cell state of LSTM model
圖9 LSTM模型的遺忘門Fig.9 Forgotten gate of LSTM model
輸入門負(fù)責(zé)處理當(dāng)前序列位置的輸入[16],其子結(jié)構(gòu)如圖10所示。第1部分使用了Sigmoid激活函數(shù),輸出為it;第2部分使用了tanh激活函數(shù),輸出為at。使用兩者的結(jié)果再去更新細(xì)胞狀態(tài):
圖10 LSTM模型的輸入門Fig.10 Input gate of LSTM model
it=σ(Wiht-1+Uixt+bi)
(2)
at=tanh(Waht-1+Uaxt+ba)
(3)
式中:Wi、Ui和bi分別為Sigmoid函數(shù)輸出it線性關(guān)系的系數(shù)和偏倚;Wa、Ua和ba分別為tanh函數(shù)輸出at線性關(guān)系的系數(shù)和偏倚。
遺忘門和輸入門的結(jié)果會作用于細(xì)胞狀態(tài)Ct,細(xì)胞更新如圖11所示。第1部分是Ct-1和遺忘門輸出ft的乘積,第2部分是輸入門的it和at的乘積[17]:
圖11 LSTM模型的細(xì)胞更新狀態(tài)Fig.11 Cell renewal status of LSTM model
Ct=Ct-1⊙ft-1+it⊙a(bǔ)t
(4)
式中:⊙為Hadamard積。
輸出門的子結(jié)構(gòu)如圖12所示,模型輸出ot由上一層隱藏狀態(tài)ht-1、xt和激活函數(shù)所得,隱藏層ht由更新過的Ct、tanh激活函數(shù)和ot組成[18]:
圖12 LSTM模型的輸出門Fig.12 Onput gate of LSTM model
ot=σ(Woht-1+Uoxt+bo)
(5)
ht=ot⊙tanh(Ct)
(6)
式中:Wo、Uo和bo分別為Sigmoid函數(shù)輸出ot線性關(guān)系的系數(shù)和偏倚。
LSTM學(xué)習(xí)網(wǎng)絡(luò)可在離線模式下使用訓(xùn)練數(shù)據(jù)和標(biāo)簽進(jìn)行訓(xùn)練生成,通過測試數(shù)據(jù)和標(biāo)簽測試模型識別性能。在線模式下對LSTM模型輸入序列數(shù)據(jù),可輸出序列數(shù)據(jù)的模式標(biāo)簽[19]。
由于實驗?zāi)康氖菧y試LSTM在時序數(shù)據(jù)上的識別性能,數(shù)據(jù)未經(jīng)過濾波或者特殊特征提取的過程,直接使用2.1節(jié)中準(zhǔn)備好的數(shù)據(jù)進(jìn)行訓(xùn)練和識別測驗。訓(xùn)練樣本包含3個參數(shù)文本,每個文本15行、4 000列,標(biāo)簽文本15行、1列; 測試樣本包含3個參數(shù)文件,每個文件5行、 4 000列,標(biāo)簽文本5行、1列。
LSTM模型訓(xùn)練和識別的流程如圖13所示,模型訓(xùn)練和識別的基本步驟如下:① 準(zhǔn)備一定數(shù)量的模式數(shù)據(jù)和對應(yīng)標(biāo)簽;② 訓(xùn)練數(shù)據(jù)標(biāo)簽進(jìn)行獨(dú)熱(one-hot)編碼;③ 搭建LSTM順序網(wǎng)絡(luò)模型(model.add);④ 模型編譯(model.compile);⑤ 模型訓(xùn)練(model.fit);⑥ 準(zhǔn)備一定數(shù)量的測試數(shù)據(jù)和對應(yīng)標(biāo)簽;⑦ 測試數(shù)據(jù)標(biāo)簽進(jìn)行獨(dú)熱(one-hot)編碼;⑧ 模型預(yù)測(model.evaluate),得到該LSTM模型的識別性能;⑨ 對模型輸入待測數(shù)據(jù),模型預(yù)測(model.predict)出數(shù)據(jù)模型[20]。
圖13 模型訓(xùn)練和模式識別過程Fig.13 Model training and pattern recognition process
LSTM搭建的模型架構(gòu)中間機(jī)制如圖14所示,由1個輸入層、2個LSTM層、1個丟棄層和2個全連接層組成[21]。
圖14 LSTM模型配置Fig.14 LSTM model configuration
按照配置方式將LSTM模型通過帶標(biāo)簽的樣本訓(xùn)練,對5種目標(biāo)機(jī)動動作進(jìn)行識別,得到的目標(biāo)數(shù)據(jù)片段如圖15~圖19所示。
圖15 正弦掃描動作片段識別結(jié)果Fig.15 Sine scan action fragment recognition results
圖16 半斤斗翻轉(zhuǎn)動作片段識別結(jié)果Fig.16 Action segment recognition results of half pit bucket flip
圖17 半滾倒轉(zhuǎn)動作片段識別結(jié)果Fig.17 Action segment recognition results of roll backward
圖18 收斂盤旋動作片段識別結(jié)果Fig.18 Action segment recognition results of convergent spiral
通過自行設(shè)計的包含預(yù)定參數(shù)的模式數(shù)據(jù)進(jìn)行驗證,無論是在開環(huán)還是閉環(huán)動作下使用該網(wǎng)絡(luò)模型都有較高的識別率,可證明基于LSTM的數(shù)據(jù)識別方法對復(fù)雜時序數(shù)據(jù)的模式識別具有較強(qiáng)的適用性,可用于飛行員操縱數(shù)據(jù)挖掘當(dāng)中。
研究了機(jī)動動作識別的通用性建模方法,可提高對不同機(jī)動動作的識別能力,通過對不同人工智能算法的研究與評估,提出了基于LSTM的飛行機(jī)動動作提取方法,此方法對連續(xù)有規(guī)律的數(shù)據(jù)如飛行機(jī)動動作數(shù)據(jù)具有良好的提取效果,且不受機(jī)動動作約束,能夠?qū)B續(xù)機(jī)動動作進(jìn)行快速識別,通過新方法的使用,拓展了機(jī)動動作識別范圍,并優(yōu)化了識別能力和提取效果。
在使用LSTM模型對海量飛行數(shù)據(jù)中的目標(biāo)數(shù)據(jù)進(jìn)行挖掘并提取特征的研究過程中考慮了數(shù)據(jù)特征、運(yùn)算復(fù)雜程度與算法可擴(kuò)展性等激勵因素,驗證了對標(biāo)準(zhǔn)典型飛行機(jī)動動作挖掘的有效性,得到了待提取的目標(biāo)機(jī)動動作。在后續(xù)的工作中,將對非典型機(jī)動動作展開研究,通過在訓(xùn)練樣本集中加入非典型機(jī)動動作,以LSTM模型進(jìn)行深度學(xué)習(xí),進(jìn)一步提升模型對非典型機(jī)動的數(shù)據(jù)挖掘能力。