龐璐 路晶
(中國民用航空飛行學院計算機學院 四川省廣漢市 618300)
隨著航空領域的迅速發(fā)展,各個國家對航空專業(yè)人員的需求也隨之增加。截至2021年8月31日,我國共有43家正式飛行員培訓學校。其中擁有航線運輸駕駛員(飛機)整體課程培訓資質,現有在訓學生6380人,新增833人。與2020年12月相比,增長了15%。與此同時,航空業(yè)對于航空安全的要求也越來越高,飛行訓練工作是保證飛行安全,實現民航質量發(fā)展的基礎性工作。研究表明,通過有效飛行訓練可以大幅降低不安全事件和事故的發(fā)生率。飛行員需要經過專業(yè)的訓練,獲得相應的駕駛執(zhí)照后才可以進行商用航空運輸。對飛行員進行專業(yè)的飛行訓練能夠大幅度降低不安全事故的發(fā)生率,保證航行安全,提高飛行質量。為了判斷飛行員的訓練質量,飛行質量監(jiān)控評估系統應運而生??罩酗w行由基本飛行動作構成,飛行動作的標準與否是判斷駕駛員飛行訓練質量高低的一個重要依據。目前,在飛行員培訓學校中評判飛行動作的好壞是由飛行教員來完成的,并沒有一個統一的標準。對飛行訓練動作進行識別,將其使用數字化的手段呈現出來,可以幫助飛行教員更加客觀地判斷,從而建立一個完整標準的評價規(guī)范。
支持向量機(Support Vector Machine, SVM)是一種高精度的機器學習算法,通常用來解決數據二分類的問題,由感知器的算法模型發(fā)展改進而來,也可以直接用于回歸應用。支持向量機同樣適用于多元分類,通過OvR(One Vs Rest)或者OvO(One Vs One)的方式來解決多分類問題。在不考慮集成學習算法,不考慮特定的數據集的時候,在分類算法中SVM可以說是特別優(yōu)秀的。目前,廣義的SVM算法分為兩類:線性分類以及非線性分類。
SVM算法將數據的特征向量轉換為超平面中的點,在這些點是線性可分的情況下,畫出一條線將數據點分為兩類,這條線與兩類數據點的距離最遠。支持向量機的分割線并不一定是直線,也可能是曲線,取決于樣本點之間的復雜關系。
圖1:SVM劃分的最小間隔
圖2:SVM劃分的最大間隔
圖3:四種飛行動作識別圖
樣本的特征并不都是二維的,很有可能是高維的,因此數據點映射的空間被稱為超平面。在超平面中可以畫出無限條線,SVM會找出其中最優(yōu)的一條線,能夠很好的將數據樣本劃分為兩類且間隔最大。當樣本有部分的變動時,確保對劃分線的影響最小,產生的分類結果比較穩(wěn)定,不容易受到個別數據變化產生的影響。在數據樣本多的時候支持向量機的效果更好,但在數據少的時候也可以解決復雜分類問題。在實際應用中的很多情況下,樣本是多維的,使用二維平面無法對其進行很好地分類,需要將其進行升維處理。
SVM算法在運行時非常消耗內存,需要時間久,訓練所占資源相對較大。Suykens等人對損失函數進行研究,在目標函數中加入了二范數,提出了最小二乘支持向量機(Least Squares Support Vector Machines,LS-LVM)。SVM中的不等式約束條件替換為等式約束,使得原本優(yōu)化問題的求解轉為線性方程的求解,降低了優(yōu)化問題求解的難度,提高了算法的運行速度,更適合大規(guī)模數據的分類問題,同時算法的精度也沒有降低很多。
SVM算法中的不等式約束:
將其變?yōu)榈仁郊s束:
在最小二乘支持向量機中,γ是非常重要的,是一個用于控制最優(yōu)解和最小偏差之間平衡的權重。需要選取正確的值數,γ大,即對于偏差的容忍度很小,容易出現過擬合的情況,γ小,偏差大,擬合效果不夠好,兩種情況都會導致最終的結果不是最優(yōu)的。對稱正定陣在數值計算方面表現出很好的特性,只要合理選取γ值,就可以將方程變?yōu)檎ň仃嚕WC了算法運行過程中的計算穩(wěn)定性,分類器的能力也得到了進一步的提升。在解決多分類問題時,使用最小二乘支持向量機通常將其轉換為多個二分類問題,逐步進行,最終得到多個分類。LS-SVM采用最小二乘誤差的方式對所有的樣本數據進行擬合,只需要對線性方程組進行求解,不用了解非線性變換的步驟過程,在進行運算時更加簡單方便。
表1:樣本數據劃分
表2:簡單飛行訓練動作識別結果
GARMIN公司生產的導航地圖設備是廣泛應用于通航飛機導航及飛行數據記錄的產品,產品面板帶有SD卡插槽,可插入SD卡記錄飛行數據,廣泛用于飛行訓練用的教練機。數據的形態(tài)大致可分為表格數據、圖片數據、音頻數據以及文本數據,文中主要針對時序表格數據進行研究。文中所采用的全部來自于真實的飛行訓練,即從飛行訓練機上的SD卡中傳輸的數據。原始數據共有64項,其中包括了發(fā)動機數據,飛行環(huán)境數據,飛行航跡數據以及飛行姿態(tài)數據。識別飛行動作主要用到飛行姿態(tài)數據以及飛行航跡數據,其他的數據是無用的。由于飛行訓練為了保證飛行動作的標準,采用的樣本都是來自飛行教員駕駛飛行的數據,飛行訓練動作的完成度高且標準,確保飛行動作的識別率及準確率。由于不同機型的數據格式略有差異,為了排除不同因素的影響,本文選擇了塞斯納172R、商用駕駛員執(zhí)照訓練課程(單發(fā)飛機)(整體) 第1階段、同一教員、同一機號的飛行訓練數據,從不同的CSV文件中選取盡可能多的飛行動作數據。實驗中采用了log_210316_074139_ZUUU.csv數據文件中的4551行數據以及l(fā)og_210615_181942_ZUUU.csv文件中的1165行數據,每行11列數據,共計62876組數據。
由于SD卡在傳輸過程中會受到空中各種不確定因素的干擾,導致數據產生部分缺失或錯誤,需要對其進行簡單的處理。在選擇原始數據時,已經排除掉缺失值和噪聲太多的數據,對于含有極少缺失值的數據,采用KNN算法進行估計,首先通過相關性分析找到距離缺失值最近的k個數據,對這k個數據加權計算得到缺失數據。飛機的飛行動作是連續(xù)不斷的,而SD卡傳輸的數據頻率是1秒一個,為使飛行動作的識別更加準確,可采用線性插值的方式將其頻率增加為5個/秒。具體處理方法如下:
由于飛行訓練數據的數值單位、取值范圍各不相同,為提高精度、加快求最優(yōu)解的速度,對其進行歸一化處理。使用線性函數歸一化,也叫離差標準化。即將不同范圍內的數據轉換為[0,1]之間的數據。歸一化的函數為:
其中,x為任一特征數據的最大值,x為最小值,x為特征數據的真實值,X即經過歸一化的數值。將各項特征數據進行歸一化,減少了數值大小范圍不同對于實驗結果造成的影響,有助于提升實驗結果的準確度。
飛行訓練中通常將開關車、地面滑行、起飛、上升、轉彎、平飛、下滑、目測、著陸和停機稱為飛行的十個基本動作。一些復雜的飛行動作,比如穿云、八字航線等均是建立在飛行基本動作的基礎上,由基本飛行動作組合排列而成。本文首先對五種基本飛行動作進行識別,其中包括:上升、下降、平飛以及左轉、右轉。下圖是以緯度為x軸、經度為y軸、平均海平面氣壓高度為z軸,對飛行動作進行可視化:
由于訓練機在飛行時不能做到完全平穩(wěn),在動作過程中會產生顛簸,表示在圖上即數據發(fā)生波動,如上圖的下降曲線,一般來說,數據在微小范圍的波動是允許的,不將其進行拆分,同樣看作一個連貫的簡單動作。
采用平均海平面氣壓高度、平均海平面氣壓高度一秒變化量、指示空速、指示空速一秒變化量、升降率、俯仰角、俯仰角一秒變化量、滾轉角、滾轉角一秒變化量、航向角、航向角一秒變化量、飛行動作標簽共12個數據,即樣本的維數為12。選取前十一個數據為特征值并將其進行歸一化處理,第十二個數據為標簽。通過特征值的變化來預測第十二個數據。飛參數據中每一秒可以作為一個樣本,將CSV文件數據分割為訓練集和測試集,將數據中每類樣本的80 %為測試樣本的樣本,20%作為測試樣本。實驗中對于參數的選擇進行了多次的試驗,最后確定的參數選值為:懲罰系數10,RBF核函數參數0.8。選擇RBF函數作為核函數,核函數參數越大,支持向量越少,參數值越小,支持向量越多,支持向量的個數會影響訓練與預測的速度。
對樣本進行訓練并分類方法如下:
[alpha,b]= trainlssvm({input_train,output_train,type, gam,sig2,'RBF_kernel','preprocess'});
LSSVMoutput_train=simlssvm({input_train,output_train, type,gam,sig2,'RBF_kernel','preprocess'},{alpha,b},input_train);
LSSVMoutput_test=simlssvm({input_train,output_train, type,gam,sig2,'RBF_kernel','preprocess'},{alpha,b},input_test);
實驗進行于個人計算機上,Windows 10,64位操作系統。使用所用到Python版本為Python 3.9.5,Python工具為PyCharm 5.0.3 x64,同時使用到Matlab R2020b等軟件。具體的樣本數據量如表1所示。
通過對樣本進行訓練、擬合,對測試樣本進行計算分類,得到算法的動作識別標簽,將其與原始數據中的飛行動作標簽進行對比,最終得到的實驗結果如表2所示。
可以看出,使用LS-SVM對于飛行動作的識別率較高。
通過LS-SVM對飛行訓練動作進行識別,對于單個的簡單動作識別準確率較高,計算量相對SVM較小,速度快,當二分類問題變?yōu)槎喾诸悊栴},識別準確率會降低。且分類越多,識別率越低。當飛行動作分類達到12個時,使用LS-SVM算法的準確率已經下降到70%左右。在五種基本動作中,對于上升、下降動作的識別率較高,對于平飛的識別率最低。由于空中氣流以及溫度的變化,導致航空器在平飛時仍會有波動,數據會上下變化、忽大忽小,難以進行分辨,因此識別率較低。與民用航空數據不同,飛行訓練數據的穩(wěn)定性低,變化幅度大,部分特征數據不完善。因此實驗還有很多方面可以改進,例如特征參數的選擇,飛行訓練動作與數據的相關性等問題。對于飛行動作的劃分標準不同,也會導致實驗結果不同。