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