周激揚(yáng) 康維新
關(guān)鍵詞:無(wú)人機(jī);異常檢測(cè);時(shí)序卷積神經(jīng)網(wǎng)絡(luò);通道注意力機(jī)制
一、引言
無(wú)人機(jī)以其機(jī)動(dòng)性好、價(jià)格低廉、方便快捷、無(wú)人駕駛等優(yōu)點(diǎn)受到世界各國(guó)的重視,并且在軍事和民用領(lǐng)域都得到了廣泛應(yīng)用[1]。然而,無(wú)人機(jī)在飛行過(guò)程存在諸多影響因素,這些因素能夠?qū)o(wú)人機(jī)飛行質(zhì)量造成限制,同時(shí)降低無(wú)人機(jī)在各個(gè)領(lǐng)域應(yīng)用價(jià)值,為從根本上解決這些因素的實(shí)際危害,異常檢測(cè)技術(shù)逐漸成為無(wú)人機(jī)的應(yīng)用要點(diǎn)。傳感器所采集到的無(wú)人機(jī)數(shù)據(jù)通常以時(shí)間序列的形式展現(xiàn),無(wú)人機(jī)數(shù)據(jù)是一系列與飛行和運(yùn)行狀態(tài)相關(guān)的參數(shù), 而無(wú)人機(jī)數(shù)據(jù)異常檢測(cè)技術(shù)旨在監(jiān)測(cè)航空器關(guān)鍵部件的狀態(tài)、發(fā)現(xiàn)機(jī)組飛行操縱等問(wèn)題,從而完成對(duì)無(wú)人機(jī)設(shè)備的故障預(yù)測(cè)與健康管理工作,有利于維修維護(hù)、消除安全隱患和確保飛行安全。隨著機(jī)器學(xué)習(xí)技術(shù)的發(fā)展,神經(jīng)網(wǎng)絡(luò)被運(yùn)用于處理數(shù)據(jù)量龐大的時(shí)間序列中,并且對(duì)于時(shí)間序列中數(shù)據(jù)所產(chǎn)生的異常進(jìn)行檢測(cè)與預(yù)測(cè)。在機(jī)器學(xué)習(xí)模型進(jìn)行時(shí)間序列建模過(guò)程中,時(shí)間序列預(yù)測(cè)可以判斷事物發(fā)展趨勢(shì),高效的預(yù)測(cè)模型可為應(yīng)用決策提供有力依據(jù)。
二、時(shí)序卷積神經(jīng)網(wǎng)絡(luò)
時(shí)域卷積神經(jīng)網(wǎng)絡(luò)(Temporal Convolution Network,TCN)是Shaojie Bai 等人在卷積神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上提出的一種用于處理時(shí)間序列數(shù)據(jù)的網(wǎng)絡(luò)結(jié)構(gòu)。TCN 網(wǎng)絡(luò)由多個(gè)殘差模塊組成,每個(gè)殘差模塊中包含空洞因果卷積(Dilated Causal Convolution)、非線性激活函數(shù)、Dropout 和恒等映射網(wǎng)絡(luò)。非線性激活函數(shù)、Dropout 和恒等映射網(wǎng)絡(luò)能夠有效抑制網(wǎng)絡(luò)過(guò)擬合,提高網(wǎng)絡(luò)學(xué)習(xí)速度和準(zhǔn)確率??斩匆蚬矸e中的擴(kuò)張因子和卷積核大小與TCN 感受野范圍有關(guān),越大的擴(kuò)張因子和卷積核,TCN 擁有越大的感受野。同時(shí),擴(kuò)張因子會(huì)隨著卷積層基于SE-TCN 的無(wú)人機(jī)異常時(shí)間序列檢測(cè)的加深呈現(xiàn)指數(shù)式增量,這保證TCN 能夠處理更長(zhǎng)的時(shí)間序列數(shù)據(jù)[7]。
為了使TCN 不僅僅是一個(gè)過(guò)于復(fù)雜的線性模型,需要在卷積層的頂部添加ReLU 激活函數(shù)[8] 來(lái)引入非線性。非線性激活函數(shù)ReLU 在一定程度上解決了軟飽和的情況,當(dāng)X > 0 時(shí)可以保持梯度不降,使得梯度消失問(wèn)題得到解決。同時(shí),為了防止過(guò)擬合,在每個(gè)剩余塊的每個(gè)卷積層之后通過(guò)Dropout 引入正則化。
已經(jīng)有研究證明,在時(shí)間序列預(yù)測(cè)和分類任務(wù)中,時(shí)間卷積網(wǎng)絡(luò)在多種任務(wù)和數(shù)據(jù)集上的性能優(yōu)于LSTM、GRU 等典型的遞歸神經(jīng)網(wǎng)絡(luò),相比于遞歸神經(jīng)網(wǎng)絡(luò),TCN 可以記住更長(zhǎng)的歷史信息,捕獲更全局的時(shí)間序列特征。
三、通道注意力機(jī)制
注意力機(jī)制作為一種人類處理信息時(shí)采用的機(jī)制,它能夠幫助模型更好地學(xué)習(xí)不同屬性之間的相互關(guān)系,防止神經(jīng)網(wǎng)絡(luò)在訓(xùn)練過(guò)程中給每一個(gè)預(yù)測(cè)因子賦予相同的權(quán)值,忽略其中的重要信息[9]。本文引入通道注意力機(jī)制,通過(guò)計(jì)算時(shí)序卷積神經(jīng)網(wǎng)絡(luò)中各個(gè)隱藏層輸出的向量權(quán)重,對(duì)于不同的異常類型,突出影響較大的特征,從而提高異常檢測(cè)精確度。
由于輸入到網(wǎng)絡(luò)中的時(shí)間序列復(fù)雜多樣,一般經(jīng)過(guò)傳統(tǒng)TCN 比較困難提取顯著性信息。為了使網(wǎng)絡(luò)模型更像人類感知系統(tǒng)一樣具有提取高價(jià)值,顯著性信息的能力,在模型中融入注意力機(jī)制具有重要意義。因此,本文設(shè)計(jì)了一種通道注意力模塊,在通道注意力的基礎(chǔ)上,加上了全局最大池化(Global Max Pooling ,GMP) 結(jié)構(gòu),使得網(wǎng)絡(luò)能夠重點(diǎn)關(guān)注最重要通道信息,增大顯著性特征的權(quán)重,提取顯著性特征,在特征通道維度上充分挖掘重要時(shí)間序列特征信息,提取到更加具有層次感和判別力的特征。
通道注意力機(jī)制分為以下三個(gè)部分:
(1)Squeeze(Fsq):通過(guò)全局平均池化,將每個(gè)通道的二維特征(H×W)壓縮為1 個(gè)實(shí)數(shù),將特征圖從 [h,w, c] ==> [1,1,c]。
(2)Excitation(Fex):給每個(gè)特征通道生成一個(gè)權(quán)重值,論文中通過(guò)兩個(gè)全連接層構(gòu)建通道間的相關(guān)性,輸出的權(quán)重值數(shù)目和輸入特征圖的通道數(shù)相同。[1,1,c]==> [1,1,c]。
(3)Scale(Fscale):將前面得到的歸一化權(quán)重加權(quán)到每個(gè)通道的特征上,并逐一將通道乘以權(quán)重系數(shù)。[h,w,c]×[1,1,c] ==> [h,w,c]。
針對(duì)時(shí)序卷積神經(jīng)網(wǎng)絡(luò)本身所具有時(shí)空特性,其每個(gè)隱藏層都能包含歷史時(shí)間序列的信息。對(duì)于隱藏層進(jìn)行全局池化,針對(duì)各個(gè)隱藏層增加注意力,生成權(quán)重。對(duì)于各個(gè)隱藏層的權(quán)重值進(jìn)行歸一化操作,取每個(gè)隱藏層輸出效果均值與分配的權(quán)重,得到最終檢測(cè)精度。
四、實(shí)驗(yàn)與分析
(一)實(shí)驗(yàn)環(huán)境
本文實(shí)驗(yàn)采用Pytorch 深度學(xué)習(xí)框架,使用Python語(yǔ)言編程實(shí)現(xiàn), 實(shí)驗(yàn)運(yùn)行環(huán)境為 JetBrains PyCharmCommunity Edition 軟件,操作系統(tǒng)為Windows 10(64 位),內(nèi)存為16GB,通過(guò)RTX-2060 GPU 加速,完成實(shí)驗(yàn)。
(二)數(shù)據(jù)獲取
在Ubuntu 系統(tǒng)中開(kāi)啟的Ardupilot 無(wú)人機(jī)仿真器,針對(duì)微電機(jī)的電流數(shù)據(jù)、電池輸出電壓數(shù)據(jù)和傳感器的三軸加速度數(shù)據(jù)等數(shù)據(jù)進(jìn)行仿真,得到正常數(shù)據(jù)集。對(duì)于完成仿真得到的無(wú)人機(jī)正常數(shù)據(jù)集進(jìn)行異常注入。固定值零點(diǎn)漂移異常是指?jìng)鞲衅鞯妮敵鲋翟谀骋粫r(shí)刻開(kāi)始出現(xiàn)一個(gè)常量偏置誤差的情況,這個(gè)常量大多情況是波動(dòng)的,理想狀態(tài)下保持不變,該值可以為正值也可以為負(fù)值。
(三)參數(shù)選取
為了防止過(guò)擬合,通過(guò)訓(xùn)練集訓(xùn)練預(yù)測(cè)模型,并通過(guò)驗(yàn)證集進(jìn)行Early stop 以防止模型在訓(xùn)練集出現(xiàn)Overfitting 的現(xiàn)象。每組樣本數(shù)Batch_Size = 100,Dropout 比率為0.2,優(yōu)化 器選擇隨機(jī)梯度下降算法時(shí),TCN 預(yù)測(cè)效果較好。Kernel Size 等于2,即每一層的輸入,是上一層的兩個(gè)時(shí)刻的輸出,Dilations = [1, 2, 4, 8],即每一層的輸入的時(shí)間間隔有多大,Dilation=4,即上一層每前推4 個(gè)時(shí)間進(jìn)一步地輸出,作為這一層的輸入,直到取夠Kernal size 個(gè)輸入。由于時(shí)間序列波動(dòng)性較大,滑動(dòng)窗口長(zhǎng)度對(duì)應(yīng)的預(yù)測(cè)效果好壞也有波動(dòng),綜合考慮預(yù)測(cè)時(shí)效以及預(yù)測(cè)準(zhǔn)確度,這里選擇滑動(dòng)窗口長(zhǎng)度為128。
(四)結(jié)果對(duì)比
對(duì)于無(wú)人機(jī)仿真得到的正常數(shù)據(jù)集與三類完成故障注入的數(shù)據(jù)集進(jìn)行基于TCN 網(wǎng)絡(luò)的時(shí)間序列異常檢測(cè)。同時(shí),對(duì)于TCN 網(wǎng)絡(luò)添加通道注意力機(jī)制,設(shè)計(jì)對(duì)比實(shí)驗(yàn)。
圖3 為了防止過(guò)擬合,通過(guò)訓(xùn)練集訓(xùn)練預(yù)測(cè)模型,并通過(guò)驗(yàn)證集進(jìn)行Early stop 以防止模型在訓(xùn)練集出現(xiàn)Overfitting 的現(xiàn)象。由圖3 可知,時(shí)序卷積神經(jīng)網(wǎng)絡(luò)在進(jìn)行60 次迭代后,精確度與loss 值趨于收斂,且測(cè)試集的精確度上升速度略高于訓(xùn)練集。
根據(jù)表1 可得,改進(jìn)通道注意力機(jī)制的時(shí)序卷積神經(jīng)網(wǎng)絡(luò)算法相比于傳統(tǒng)的時(shí)序卷積神經(jīng)網(wǎng)絡(luò)算法,正常數(shù)據(jù)集與三類異常數(shù)據(jù)集的檢測(cè)精確度得到了一定的提高,因此改進(jìn)算法具有明顯的優(yōu)越性。
五、結(jié)束語(yǔ)
本文針對(duì)無(wú)人機(jī)時(shí)間序列異常行為檢測(cè)中的關(guān)鍵問(wèn)題,主要提出了基于時(shí)序卷積神經(jīng)網(wǎng)絡(luò)的算法,以提升對(duì)無(wú)人機(jī)時(shí)間序列上出現(xiàn)的異常行為檢測(cè)的準(zhǔn)確率和效率。在無(wú)人機(jī)飛行時(shí)間序列的特征提取方面,根據(jù)時(shí)序卷積神經(jīng)網(wǎng)絡(luò)中各隱藏層包含的空間特性結(jié)合通道注意力機(jī)制,并對(duì)改進(jìn)后的時(shí)序卷積神經(jīng)網(wǎng)絡(luò)的KernelSize、Dilation、滑動(dòng)窗口等關(guān)鍵參數(shù)進(jìn)行設(shè)置。進(jìn)而,提出了結(jié)合通道注意力機(jī)制的時(shí)序卷積神經(jīng)網(wǎng)絡(luò)異常檢測(cè)算法,對(duì)無(wú)人機(jī)異常行為進(jìn)行檢測(cè)。仿真結(jié)果表明,本文所提出的方法可有效提高無(wú)人機(jī)異常行為檢測(cè)的準(zhǔn)確性和效率。解決了無(wú)人機(jī)異常行為檢測(cè)中的關(guān)鍵性問(wèn)題,進(jìn)一步降低了無(wú)人機(jī)異常行為檢測(cè)難度。下一步,將在此方法的基礎(chǔ)上進(jìn)行回歸實(shí)驗(yàn),并在原模型上進(jìn)行改進(jìn)以提升對(duì)于無(wú)人機(jī)時(shí)間序列數(shù)據(jù)的異常行為召回率,降低異常檢測(cè)的誤檢率和漏檢率。
作者單位:周激揚(yáng) 康維新 哈爾濱工程大學(xué)