張振軍
(青海漢圖測(cè)繪科技有限公司,青海西寧 810001)
無(wú)人機(jī)測(cè)繪綜合了無(wú)人飛行器、遙感傳感器、通信和圖像處理等多種技術(shù),以實(shí)時(shí)獲取目標(biāo)區(qū)域信息、快速進(jìn)行數(shù)據(jù)處理和繪圖為主要目的[1]。這種方法運(yùn)行成本低、風(fēng)險(xiǎn)小,且數(shù)據(jù)采集周期相對(duì)較短,已被廣泛應(yīng)用于相關(guān)領(lǐng)域。無(wú)人機(jī)測(cè)繪生成的飛行數(shù)據(jù)具有快速、實(shí)時(shí)等特點(diǎn)[2]。采用此技術(shù)獲取的單維特征流數(shù)據(jù)主要反映被測(cè)系統(tǒng)的某一狀態(tài)信息,然而多維數(shù)據(jù)庫(kù)中異常數(shù)據(jù)是各維度信息綜合作用的結(jié)果,能夠反映無(wú)人機(jī)(unmanned aerial vehicle,UAV)的實(shí)際情況,具有更高的參考價(jià)值[3]。
目前,基于無(wú)人機(jī)測(cè)繪的異常檢測(cè)算法已經(jīng)被廣泛應(yīng)用,但大多算法不能滿足無(wú)人機(jī)測(cè)繪的實(shí)時(shí)檢測(cè)需求。為此,本文提出一種基于數(shù)據(jù)篩選的無(wú)人機(jī)測(cè)繪數(shù)據(jù)異常檢測(cè)方法。實(shí)驗(yàn)結(jié)果表明:與傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)方法相比,該方法降低了檢測(cè)的漏檢率與誤檢率,并縮短了檢測(cè)時(shí)間。該檢測(cè)方法能夠滿足無(wú)人機(jī)測(cè)繪中的異常數(shù)據(jù)檢測(cè)需求,可實(shí)際應(yīng)用到異常數(shù)據(jù)檢測(cè)中。
在異常數(shù)據(jù)檢測(cè)過(guò)程中,須預(yù)先對(duì)無(wú)人機(jī)測(cè)繪過(guò)程中產(chǎn)生的相關(guān)數(shù)據(jù)進(jìn)行挖掘。與其他數(shù)據(jù)挖掘技術(shù)相比,支持向量機(jī)是一種監(jiān)督式的數(shù)據(jù)挖掘方法,其對(duì)樣本的依賴性較小,對(duì)小樣本、高維數(shù)據(jù)等分類具有較好的應(yīng)用效果[4]。為此,本文將支持向量機(jī)應(yīng)用到無(wú)人機(jī)測(cè)繪數(shù)據(jù)挖掘中。支持向量機(jī)技術(shù)[5]建立了一個(gè)最優(yōu)分界面,通過(guò)該界面能夠?qū)⒋诰驍?shù)據(jù)劃分為二類,其表達(dá)式為
式中:ωt代表非線性參數(shù);x代表核函數(shù);b代表分類參數(shù)。
利用式(1)將原始無(wú)人機(jī)測(cè)繪數(shù)據(jù)分為正常數(shù)據(jù)和異常數(shù)據(jù)兩大類,并將數(shù)據(jù)訓(xùn)練成樣本集進(jìn)行學(xué)習(xí),為異常數(shù)據(jù)挖掘提供基礎(chǔ)。
在上述數(shù)據(jù)分類的基礎(chǔ)上,對(duì)無(wú)人機(jī)測(cè)繪過(guò)程中產(chǎn)生的數(shù)據(jù)流進(jìn)行預(yù)處理。即對(duì)無(wú)人機(jī)測(cè)繪異常數(shù)據(jù)進(jìn)行數(shù)據(jù)流分塊、豎向規(guī)范化處理與時(shí)間切片處理,便于對(duì)無(wú)人機(jī)測(cè)繪數(shù)據(jù)潛在規(guī)律的分析。
1)數(shù)據(jù)流分塊。由于無(wú)人機(jī)測(cè)繪過(guò)程中產(chǎn)生的數(shù)據(jù)流可看作是一系列無(wú)限的點(diǎn)[6],其存儲(chǔ)相對(duì)較難,為此將其劃分為數(shù)據(jù)塊的形式。將數(shù)據(jù)塊的大小定義為n,將數(shù)據(jù)塊劃分為若干類,并對(duì)其進(jìn)行標(biāo)準(zhǔn)化處理。
2)豎向規(guī)范化處理。由于采集的數(shù)據(jù)存在屬性差異,導(dǎo)致其屬性難以得到合理的調(diào)配。為降低數(shù)據(jù)屬性對(duì)數(shù)據(jù)檢測(cè)的影響,本文引入了屬性規(guī)范化的概念[7],其表述為
式中:aij代表采集的數(shù)據(jù)集中某一個(gè)數(shù)據(jù)的特征值;aj代表數(shù)據(jù)第j維屬性的集合;max(aj)、min(aj)分別代表采集的數(shù)據(jù)集中數(shù)據(jù)的最大值和最小值。
因無(wú)人機(jī)測(cè)繪包含參數(shù)較多,單一的標(biāo)準(zhǔn)化處理是不能滿足要求,因此對(duì)數(shù)據(jù)進(jìn)行尺度變換[8?9],其表達(dá)式為
式中:yi代表數(shù)據(jù)采集時(shí)間序列數(shù)據(jù)的信號(hào)參數(shù);Yˉ代表采集信號(hào)的平均值;S代表采集信息的標(biāo)準(zhǔn)差。
3)時(shí)間切片處理。對(duì)時(shí)間序列數(shù)據(jù)進(jìn)行切片處理,將原始數(shù)據(jù)創(chuàng)建為固定大小的段[10?11],劃分為等間隔的時(shí)間序列片段,即
式中:S代表數(shù)據(jù)切片處理后所得的數(shù)據(jù)集合;sj代表第j個(gè)處理的數(shù)據(jù)段;Nˉ代表數(shù)據(jù)總量;N代表片段的總數(shù)。
在上述預(yù)處理后,對(duì)數(shù)據(jù)潛在規(guī)律進(jìn)行分析。此部分采用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行分析處理。該方法的局部特征提取能力較強(qiáng),能夠降低網(wǎng)絡(luò)的計(jì)算復(fù)雜度[12?13]。其挖掘過(guò)程如下。
步驟1,設(shè)置輸入層。輸入層是整個(gè)網(wǎng)絡(luò)的起始端[14],是整個(gè)網(wǎng)絡(luò)的輸入部分,能夠?qū)σ痪S數(shù)據(jù)或者二維數(shù)據(jù)進(jìn)行挖掘。
步驟2,建立激勵(lì)層函數(shù)。該函數(shù)主要對(duì)網(wǎng)絡(luò)層的輸入與輸出關(guān)系進(jìn)行描述,其表達(dá)為
步驟3,建立池化層。通過(guò)該環(huán)節(jié)將數(shù)據(jù)進(jìn)行壓縮,利用池化窗口生成的值生成周圍區(qū)域的統(tǒng)計(jì)量。
步驟4,建立全連接層。該層主要在計(jì)算過(guò)程中提供輸送信號(hào)的功能,將數(shù)據(jù)的特征值進(jìn)行連接,并連接成一個(gè)長(zhǎng)向量。
步驟5,反向傳播。該層主要以最小化函數(shù)為目標(biāo)[15],以最小代價(jià)分析所有數(shù)據(jù)點(diǎn),其表達(dá)式為
式中:yj代表第j個(gè)數(shù)據(jù)的輸出值;Sj代表數(shù)據(jù)概率;T代表總的數(shù)據(jù)類別數(shù)量。
通過(guò)上述計(jì)算能夠獲取所有數(shù)據(jù)的潛在規(guī)律,在此基礎(chǔ)上,對(duì)異常數(shù)據(jù)進(jìn)行分類處理。在無(wú)人機(jī)測(cè)繪過(guò)程中,較多因素都會(huì)引起異常,從而產(chǎn)生異常數(shù)據(jù)[16]。為此,對(duì)異常數(shù)據(jù)進(jìn)行分類。數(shù)據(jù)基礎(chǔ)分類如圖1所示。
由圖1可以看出,由于無(wú)人飛行器內(nèi)有較多傳感器,因此產(chǎn)生異常數(shù)據(jù)的因素較多,不僅能產(chǎn)生異常數(shù)據(jù),而且需要及時(shí)發(fā)現(xiàn)異常數(shù)據(jù)。為提高檢測(cè)效率,對(duì)所生成數(shù)據(jù)進(jìn)行聚類,本文采用無(wú)監(jiān)督聚類算法。當(dāng)數(shù)據(jù)流到達(dá)時(shí),該算法能及時(shí)更新,并對(duì)數(shù)據(jù)進(jìn)行實(shí)時(shí)聚類。對(duì)數(shù)據(jù)進(jìn)行相似性分類,將相似的分類成數(shù)據(jù)簇[17]。在實(shí)際計(jì)算過(guò)程中,主要包括2個(gè)步驟:首先測(cè)量數(shù)據(jù)與數(shù)據(jù)之間相似性,然后利用準(zhǔn)則函數(shù)對(duì)結(jié)果進(jìn)行聚類分類[18]。該算法的計(jì)算流程如圖2所示。
圖1 異常數(shù)據(jù)基礎(chǔ)分類
圖2 無(wú)監(jiān)督聚類算法流程圖
其中,準(zhǔn)則函數(shù)的計(jì)算非常重要,具體定義為
式中:E代表所有數(shù)據(jù)集中包含的對(duì)象的均方差之和;x代 表數(shù)據(jù)點(diǎn);mj為聚類中j指標(biāo)的均值;nj代表數(shù)據(jù)的多維性特征。
在上述數(shù)據(jù)處理的基礎(chǔ)上,對(duì)異常數(shù)據(jù)檢測(cè),具體步驟如下。
步驟1,由于無(wú)人飛行器測(cè)繪所產(chǎn)生的數(shù)據(jù)是飛行數(shù)據(jù),即時(shí)間序列數(shù)據(jù),因此需要對(duì)以上聚類后的數(shù)據(jù)進(jìn)行劃分,并將其劃分為時(shí)間序列數(shù)據(jù),從而得到各時(shí)間序列變化情況,并將變化情況插入時(shí)間序列數(shù)據(jù)中,形成相應(yīng)編碼數(shù)。
步驟2,生成數(shù)據(jù)存儲(chǔ)在模式庫(kù)中。該模式庫(kù)將特定的生成模式與自體發(fā)生相匹配,并將其視為合成檢測(cè)器[19]。
步驟3,計(jì)算庫(kù)中所有對(duì)象可達(dá)距離的平均值,將其表示為
式中:mean代表數(shù)據(jù)平均值函數(shù);Rk代表可達(dá)距離。
步驟4,在上述計(jì)算完成后,利用滑動(dòng)窗口對(duì)得到的數(shù)據(jù)流進(jìn)行處理,得到當(dāng)前滑動(dòng)窗口數(shù)據(jù)集,選取簇心因子,其表達(dá)式為
式中:δ(p)代表所有數(shù)據(jù)點(diǎn)中p數(shù)據(jù)的相異度;ρ(p)代表所有數(shù)據(jù)點(diǎn)中p的簇心程度參數(shù)。
步驟5,為提高數(shù)據(jù)集的時(shí)序建模能力,采用頻繁項(xiàng)挖掘方法對(duì)數(shù)據(jù)樣本進(jìn)行支持概率計(jì)算,具體表達(dá)式為
步驟6,建立異常判斷準(zhǔn)則。為準(zhǔn)確判斷異常點(diǎn),需要依據(jù)判斷準(zhǔn)則進(jìn)行劃分。傳統(tǒng)判斷準(zhǔn)則局限性較大,當(dāng)檢測(cè)數(shù)據(jù)集發(fā)生改變后,會(huì)對(duì)檢測(cè)結(jié)果產(chǎn)生較大影響[20],為此,本文依據(jù)最大斜率的判斷準(zhǔn)則進(jìn)行分析。最大斜率的計(jì)算公式為
式中:o代 表排序因子;v代表連線斜率的絕對(duì)值;g代 表劃分參數(shù);b代 表數(shù)據(jù)點(diǎn)與數(shù)據(jù)點(diǎn)之間的標(biāo)準(zhǔn)差。通過(guò)最大斜率判斷準(zhǔn)則能夠避免人為劃分帶來(lái)的影響,能夠更好地適應(yīng)動(dòng)態(tài)變化的數(shù)據(jù)流。
步驟7,根據(jù)獲得的簇心因子對(duì)數(shù)據(jù)進(jìn)行聚類分析,并根據(jù)判斷標(biāo)準(zhǔn)對(duì)異常數(shù)據(jù)進(jìn)行分塊處理,從而檢測(cè)當(dāng)前串口中是否存在異常因子。其表達(dá)式為
式中:Vc(p)代表p到簇心的距離;H(p)代表數(shù)據(jù)在p時(shí)的異常因子;L(p)代表數(shù)據(jù)點(diǎn)的距離之和。
步驟8,篩選異常數(shù)據(jù)。該部分是異常數(shù)據(jù)檢測(cè)的最后一部分,也是檢測(cè)實(shí)現(xiàn)的最關(guān)鍵步驟。主要對(duì)上述計(jì)算得到的異常數(shù)據(jù)點(diǎn)篩選,提升異常數(shù)據(jù)檢測(cè)的精度。在判斷上,采用重疊累加值方法,能夠?qū)?shù)據(jù)點(diǎn)之間的累計(jì)值間的差異進(jìn)行分析,其表達(dá)式為
式中:m代 表預(yù)估計(jì)值;Lj代表第j個(gè)數(shù)據(jù)點(diǎn)的屬性差值。
基于上述檢測(cè),對(duì)所獲得的無(wú)人機(jī)測(cè)繪數(shù)據(jù)中的異常數(shù)據(jù)點(diǎn)進(jìn)行篩選,以此完成異常數(shù)據(jù)檢測(cè),流程如圖3所示。
圖3 異常數(shù)據(jù)檢測(cè)流程圖
本文通過(guò)實(shí)驗(yàn)來(lái)驗(yàn)證該方法是否符合設(shè)計(jì)要求。同時(shí),為檢驗(yàn)該方法的應(yīng)用效果,將該方法與傳統(tǒng)基于卷積神經(jīng)網(wǎng)絡(luò)的異常數(shù)據(jù)檢測(cè)方法進(jìn)行了比較。
實(shí)驗(yàn)在Windows7操作系統(tǒng)下進(jìn)行,選用 Intel(R) Core (TM)i5 M 520作為 CPU,其內(nèi)存頻率較快,可以達(dá)到2.4 GHz,內(nèi)存8 GB。所用實(shí)驗(yàn)數(shù)據(jù)集通過(guò)高斯分布獲取,這些數(shù)據(jù)集共有1600個(gè)數(shù)據(jù)點(diǎn),其中包含1500個(gè)正常數(shù)據(jù)點(diǎn),100個(gè)異常數(shù)據(jù)點(diǎn)。
采用誤檢率、漏檢率作為異常檢測(cè)的評(píng)價(jià)指標(biāo),其定義為:
式中:FP代表異常數(shù)據(jù)未被檢測(cè)到的數(shù)量;FN代表異常數(shù)據(jù)被檢測(cè)為正常數(shù)據(jù)的數(shù)量;TN 代表檢測(cè)到的異常數(shù)據(jù)數(shù)量;TP表示異常數(shù)據(jù)正確檢測(cè)的數(shù)量。
異常檢測(cè)的實(shí)時(shí)性也是對(duì)比檢測(cè)方法性能的一個(gè)重要指標(biāo)。它是指不同算法對(duì)同一實(shí)驗(yàn)數(shù)據(jù)進(jìn)行異常檢測(cè)所花費(fèi)的時(shí)間,計(jì)算公式為
式中:Si代表第i個(gè)數(shù)據(jù)的計(jì)算效率;tn代表完成數(shù)據(jù)計(jì)算的運(yùn)行時(shí)間。
對(duì)比卷積神經(jīng)網(wǎng)絡(luò)方法與本文方法的誤檢率,其結(jié)果如表1所示。由表可知,本文的異常數(shù)據(jù)檢測(cè)方法的誤檢率相比卷積神經(jīng)網(wǎng)絡(luò)方法,平均降低了約11%。本文方法誤檢率低是由于本文方法在數(shù)據(jù)流上進(jìn)行了分塊和分類處理,并對(duì)處理后的數(shù)據(jù)進(jìn)行了綜合聚類分析。常規(guī)檢測(cè)方法受數(shù)據(jù)集干擾的影響較大,有些異常數(shù)據(jù)點(diǎn)在正常數(shù)據(jù)波動(dòng)范圍外,導(dǎo)致其誤檢率較高。
表1 誤檢率對(duì)比 %
對(duì)比卷積神經(jīng)網(wǎng)絡(luò)方法和本文方法的漏檢率,其結(jié)果如表2所示。由表可知,本文方法的漏檢率相比卷積神經(jīng)網(wǎng)絡(luò)方法的平均降低了約8.1%。常規(guī)卷積神經(jīng)網(wǎng)絡(luò)方法檢測(cè)漏檢率高的原因在于異常數(shù)據(jù)的幅度不在正確的數(shù)據(jù)范圍之內(nèi),且往往以片斷形式出現(xiàn),用常規(guī)方法進(jìn)行標(biāo)記時(shí),存在較大的漏檢風(fēng)險(xiǎn)。本文的異常數(shù)據(jù)檢測(cè)方法是通過(guò)詳細(xì)的檢測(cè)流程實(shí)現(xiàn)對(duì)異常樣本的有效檢測(cè),從而降低了漏檢現(xiàn)象。
表2 漏檢率對(duì)比 %
最后,對(duì)比卷積神經(jīng)網(wǎng)絡(luò)方法與本文方法的檢測(cè)時(shí)間,其結(jié)果如表3所示??梢钥闯觯矸e神經(jīng)網(wǎng)絡(luò)方法在多個(gè)實(shí)驗(yàn)中所需檢測(cè)時(shí)間均高于本文方法,最多相差16 min。本文方法的整體檢測(cè)時(shí)間平均縮短了11.3 min左右。本文的異常數(shù)據(jù)檢測(cè)方法不僅可以降低誤檢率和漏檢率,而且可以提高檢測(cè)的實(shí)時(shí)性。
表3 異常數(shù)據(jù)檢測(cè)時(shí)間對(duì)比 min
本文對(duì)無(wú)人機(jī)測(cè)繪過(guò)程中的異常數(shù)據(jù)檢測(cè)方法進(jìn)行了設(shè)計(jì),并通過(guò)實(shí)驗(yàn)對(duì)該方法進(jìn)行了驗(yàn)證。該方法可為相關(guān)測(cè)繪領(lǐng)域的異常數(shù)據(jù)檢測(cè)提供實(shí)用的解決方案。盡管本次研究取得了一定成果,但無(wú)人機(jī)測(cè)繪的數(shù)據(jù)范圍比較廣泛,在未來(lái)工作中可強(qiáng)化分析數(shù)據(jù)與數(shù)據(jù)之間的關(guān)聯(lián)特征,選擇融合不同的檢測(cè)方法,從而實(shí)現(xiàn)多種異常檢測(cè)方法的優(yōu)勢(shì)互補(bǔ)。