王鳳芹 徐廷學 顏廷龍
(海軍航空大學 煙臺 264001)
隨著電子信息技術、自動化技術、計算機科學與人工智能等技術的飛速發(fā)展,飛行訓練實施過程中飛行質量的自動化評估需求越來越迫切。要開展飛行質量的自動化評估,首先要進行飛行動作的自動化識別。謝川等在文獻[1~2]中針對復雜特技飛行動作的識別問題,構建了基于專家知識庫和知識推理機的飛行動作識別方法,該識別方法受限于專家知識庫;孟光磊等在文獻[3]中以飛行模擬訓練的機動動作對應飛參數(shù)據(jù)為研究對象,構建了機動動作識別的動態(tài)貝葉斯網(wǎng)絡模型,借助基于網(wǎng)絡模型的遞歸推理的智能方法識別飛行動作;周超等在文獻[4]中主要針對戰(zhàn)術機動動作數(shù)據(jù)隨機性強和長度不一的特點,提出了基于改進動態(tài)時間規(guī)整算法的飛行動作識別方法,該方法利用飛行動作的不同特征參數(shù)設置不同貢獻度,計算飛參數(shù)據(jù)與標準模板數(shù)據(jù)的幀匹配距離,根據(jù)距離大小進行飛行動作的識別。這三篇文獻都在某個具體應用場景下實現(xiàn)了飛行動作的自動識別,模型所涉及的樣本數(shù)據(jù)集偏小,沒有借助機器學習的優(yōu)勢。
當前,隨著飛機上各組成部件信息化水平的提高,飛行過程中按照時間能采集到的數(shù)據(jù)越來越豐富,形成飛參大數(shù)據(jù)。如何有效利用飛參大數(shù)據(jù)、采用機器學習算法進行飛行動作的自動化識別是當前飛行訓練領域的一個研究熱點。為此,需要研究兩個方面的內容:一是各飛行動作對應的關鍵特征參數(shù);二是如何應用機器學習算法將基于時間序列的飛參數(shù)據(jù)進行分段,標識各分段序列對應的飛行動作。
飛機飛行過程中借助各類傳感器產(chǎn)生的大量數(shù)據(jù),都存儲在飛機上的快速存取記錄器QAR(Quick Access Recorder)中,這些數(shù)據(jù)經(jīng)過飛參譯碼系統(tǒng)的分析和譯碼,得到按照時間序列排列的飛參數(shù)據(jù)。飛行動作的自動化識別就是輸入譯碼后的飛參數(shù)據(jù),經(jīng)過機器學習算法的分析處理,輸出各時間段的飛行動作。
不同飛機機型的飛行訓練大綱不同,本文主要以起飛滑行、爬升、平飛、轉彎、降落和著陸共6個最基本動作為例,進行基于機器學習算法的自動化識別。在算法處理之前,首先依據(jù)飛行訓練大綱和飛行專家的意見,建立飛行動作的主要特征參數(shù)[5],如表1所示。
針對飛行動作的自動化識別問題,算法設計之前首先進行識別流程設計,識別步驟如圖1所示。
整個模型主要包括飛參數(shù)據(jù)和飛行動作識別標準庫采集入庫、數(shù)據(jù)預處理[6]、飛行動作識別和識別結果反饋四個步驟。表2描述了每個步驟的主要工作內容。
為每個時間點特征參數(shù)向量標注飛行動作的問題屬于分類問題的一種,決策樹是解決分類問題的經(jīng)典機器學習算法之一。算法利用6個基本動作對應模板時間序列數(shù)據(jù)D={D1,D2,......,D6}訓練機器學習模型,遞歸構建CART(Classification And Regression Tree)決策樹,然后用建立的決策樹模型標注各時間段的數(shù)據(jù)集合T對應的飛行動作。
算法輸入:
1)m個時間點的飛參數(shù)據(jù)集合記為T={t1,t2,......,tm};
2)6個標準動作對應模板時間序列數(shù)據(jù)集合記為D={D1,D2,......,D6}。
算法輸出:
標記飛參數(shù)據(jù)集合T={t1,t2,......,tm}中每個時間點ti=(ti1,ti2,......,tin)對應的飛行動作及所處的階段。
算法步驟:
步驟1對于標準動作模板數(shù)據(jù)D={D1,D2,......,D6},計算標準飛行動作Dr第u個時間點的n元特征參數(shù)向量之間的高度變化率 Δh、俯仰角變化率Δα、航向角變化率Δβ、傾斜角變化率Δγ,首先按照式(1)計算數(shù)據(jù)集D的基尼系數(shù)。
式(1)中pk表示數(shù)據(jù)集D中第k個類別在D中所占比例,相對于采用信息增益率計算對數(shù)的方式,要簡單?;跀?shù)據(jù)集D,按照式(2)計算特征c的基尼系數(shù)。
其中,|D|表示數(shù)據(jù)集D所有時間序列向量的數(shù)目,E表示特征c在數(shù)據(jù)集D上的取值類別總數(shù),|De|表示數(shù)據(jù)集合D中所有特征c取值為e的向量總數(shù),Gini(De)是按照式(1)計算基尼系數(shù)。
步驟2數(shù)據(jù)集D依據(jù)基尼系數(shù)值最小的特征參數(shù)C,劃分為兩部分得到其左右節(jié)點,記為Dleft和Dright。
步驟3停止構建決策樹的條件有兩個,一是判斷閾值與當前基尼系數(shù)大小關系,若當前基尼系數(shù)小于閾值,則當前節(jié)點停止構建決策樹子樹,否則繼續(xù)構建;二是檢查找飛參特征參數(shù)集合D中是否存在能繼續(xù)分解集合的分類特征,如果沒有找到,則停止構建決策樹。
步驟4對D節(jié)點的左右子節(jié)點Dleft和Dright遞歸執(zhí)行步驟1至步驟4,直到從滿足步驟3的條件退出,返回決策樹訓練模型Tree。
步驟5標準模板數(shù)據(jù)集D的訓練數(shù)據(jù)集完全決定了上述決策樹的建立過程,該過程特別容易產(chǎn)生決策樹模型的過擬合問題,可以通過對決策樹進行剪枝的方式避免。所謂剪枝,刪除非葉子節(jié)點{T1,T2,T3,......,Tn}中表面誤差率增益值最小(計算方法如式(3)所示)的αi對應非葉子節(jié)點Ti的左右子節(jié)點,用子樹的葉子節(jié)點替換非葉子節(jié)點Ti,重復該過程直至沒有任何非葉子節(jié)點可以替換,剪枝完成。
利用生成的決策樹Tree對m個時間點的飛參數(shù)據(jù)集合記為T={t1,t2,......,tm}進行飛行動作的自動化識別,標注各時間段的飛行動作。
步驟1數(shù)據(jù)采集:實驗選取某型飛機優(yōu)秀飛行員飛出的包含6個標準飛行動作的基于時間序列的飛參數(shù)據(jù)作為數(shù)據(jù)集,由多名飛行領域專家對該飛參數(shù)據(jù)進行分段動作標注,標注后的飛參數(shù)據(jù)作為飛行動作識別標準庫。
步驟2數(shù)據(jù)預處理:利用sklearn.preprocess?ing包中 Imputer類填補缺失值、scale,MaxAbsScal?er,MinMaxScaler類將數(shù)據(jù)標準化、normalize方法將數(shù)據(jù)歸一化。
步驟3飛行動作識別:利用飛行動作識別標準庫進行CART決策樹模型的訓練和測試,取其中80%的數(shù)據(jù)作為訓練數(shù)據(jù)集,20%數(shù)據(jù)作為測試數(shù)據(jù)集。利用sklearn.tree包決策樹分類器Decision?TreeClassifier構建CART決策樹,利用sklearn.mod?el_selection包GridSearchCV類對DecisionTreeClas?sifier進行調參,尋找到最優(yōu)的參數(shù),使得構建決策樹最優(yōu)。利用構建的最優(yōu)決策樹對待識別的飛行動作時間序列參數(shù)進行動作識別。
步驟4識別結果反饋:將步驟3中飛行動作識別的結果按照預定義的數(shù)據(jù)結構導入至數(shù)據(jù)庫,為飛行訓練質量評估提供數(shù)據(jù)支持。
利用模型訓練集準確度、測試集準確度、精準率和召回率共四個指標來衡量生成決策樹模型的性能。調用sklearn包的函數(shù)庫,計算決策樹模型在GridSearchCV調優(yōu)前和調優(yōu)后的性能指標(如圖2所示)。從圖中看出調優(yōu)前模型訓練集準確度為1,說明GridSearchCV調優(yōu)前生成的決策樹模型產(chǎn)生過擬合現(xiàn)象。經(jīng)過GridSearchCV調優(yōu)后,決策樹模型各項指標有了較大提升,說明調參后決策樹減少了過擬合,四項指標都達到了90%以上,說明利用機器學習算法生成的決策樹模型能有效地識別飛行動作,具有較好的模型泛化能力。
圖2 GridSearchCV調優(yōu)前后的模型性能指標對比
本文以起飛滑行、爬升、平飛、轉彎、降落和著陸共6個基本飛行動作為例,設計了基于機器學習算法——CART決策樹算法的飛行動作自動化識別模型的流程,并利用Python語言實現(xiàn)了算法,實驗結果表明調優(yōu)后的決策樹模型能有效識別飛行動作,而且識別準確度較高。本文設計實現(xiàn)的基于CART決策樹的飛行動作自動化識別模型,也可以針對其他飛行動作進行自動化識別,識別結果為飛行質量評估奠定了良好的數(shù)據(jù)基礎。