許 鶴 吳 迪 盧繼武 李仁發(fā)
1 (湖南大學(xué)電氣與信息工程學(xué)院 長(zhǎng)沙 410082)
2 (湖南大學(xué)信息科學(xué)與工程學(xué)院 長(zhǎng)沙 410082)
3 (嵌入式與網(wǎng)絡(luò)計(jì)算湖南省重點(diǎn)實(shí)驗(yàn)室(湖南大學(xué))長(zhǎng)沙 410082)(xuhe@hnu.edu.cn)
控制器局域網(wǎng)(controller area network, CAN)總線協(xié)議由于其低成本、高可靠性、實(shí)時(shí)性、抗干擾能力強(qiáng)的特點(diǎn),已廣泛應(yīng)用于工業(yè)自動(dòng)化控制系統(tǒng)中[1].在汽車電子領(lǐng)域,CAN 總線協(xié)議已經(jīng)成為實(shí)質(zhì)上的通信標(biāo)準(zhǔn).隨著汽車智能化的程度不斷提升,車載電子控制單元(electronic control unit,ECU)的數(shù)量也在不斷增加,車載系統(tǒng)的功能愈加復(fù)雜化[2].
任何產(chǎn)業(yè)在網(wǎng)絡(luò)化的發(fā)展過程中都會(huì)面臨信息安全問題,車聯(lián)網(wǎng)的發(fā)展也不例外[3].2017 年,Mccluskey[4]通過無線信號(hào)欺騙手段遠(yuǎn)程入侵了Jeep Cherokee的車載娛樂系統(tǒng),進(jìn)一步向引擎、變速箱、轉(zhuǎn)向等控制系統(tǒng)發(fā)送惡意指令,致使車輛沖下路邊斜坡.2017年,騰訊科恩實(shí)驗(yàn)室通過特斯拉Model S 車內(nèi)網(wǎng)絡(luò)瀏覽器,讓用戶訪問一個(gè)可疑的網(wǎng)站,借此進(jìn)入到車載網(wǎng)關(guān),控制了Model S 的方向盤和剎車[5].在“2020 中國5G+工業(yè)互聯(lián)網(wǎng)大會(huì)”上,入侵者借助5G 無線技術(shù)連接上車載電腦,輕松打開一輛智能網(wǎng)聯(lián)汽車車門,并隨后啟動(dòng)引擎.隨著智能網(wǎng)聯(lián)汽車的不斷涌現(xiàn),惡意攻擊、非法控制、隱私泄露等威脅也日益增加.
自動(dòng)駕駛輔助系統(tǒng)和新一代電子信息技術(shù)在汽車上的應(yīng)用,使得汽車越來越智能化,可以很大程度保障行車安全,但與此同時(shí),智能輔助功能一旦在某種狀況下突然失效或出現(xiàn)異常,將嚴(yán)重威脅行車安全.如圖1 所示,車聯(lián)網(wǎng)、移動(dòng)網(wǎng)絡(luò)、GPS 導(dǎo)航以及智能傳感器等對(duì)外暴露的接口給車輛安全帶來了諸多不可預(yù)知的威脅[6].CAN 協(xié)議的安全機(jī)制主要是為了保證通信的可靠性,無法防止入侵攻擊或者檢測(cè)CAN 網(wǎng)絡(luò)是否受到入侵攻擊[7].攻擊者可以通過安全漏洞入侵CAN 網(wǎng)絡(luò),挾持車載ECU,對(duì)車輛進(jìn)行惡意攻擊以及非法控制.CAN 網(wǎng)絡(luò)一旦遭受入侵攻擊,一方面有可能造成車載網(wǎng)絡(luò)通信癱瘓、阻塞、數(shù)據(jù)被篡改,最終導(dǎo)致車輛行駛狀態(tài)異常,危及車輛與人員安全;另一方面,還可能涉及個(gè)人隱私數(shù)據(jù)泄露及相應(yīng)的財(cái)產(chǎn)損失[8].安全事故往往發(fā)生在極短時(shí)間內(nèi),因此車載入侵檢測(cè)具有高實(shí)時(shí)性、高精度的要求.
Fig.1 The architecture of vehicular communication network圖1 車載通信網(wǎng)絡(luò)架構(gòu)
近些年來,基于深度學(xué)習(xí)的入侵檢測(cè)系統(tǒng)研究是諸多研究者關(guān)注的熱點(diǎn),但是對(duì)于小批量特征攻擊的相關(guān)研究較少,并且大部分研究都以高性能的CPU 和GPU 為基礎(chǔ),受限于車系統(tǒng)硬件性能的限制.深度學(xué)習(xí)模型在車載系統(tǒng)上部署,其實(shí)時(shí)性較差,因此研究基于深度學(xué)習(xí)的入侵檢測(cè)模型在實(shí)際車載環(huán)境下的加速部署方法具有很大的實(shí)際意義.本文提出了一種結(jié)合網(wǎng)格型長(zhǎng)短時(shí)記憶(grid long short-term memory, Grid LSTM)[9]網(wǎng)絡(luò)與自注意力機(jī)制(selfattention mechanism, SAM)[10]的入侵檢測(cè)模型SALVID(SAM enhanced Grid LSTM for vehicular intrusion detection,),并基于現(xiàn)場(chǎng)可編程門陣列(field programmable gate array,F(xiàn)PGA)器件,實(shí)現(xiàn)了模型加速設(shè)計(jì).該模型利用SAM 增強(qiáng)CAN 網(wǎng)絡(luò)攻擊數(shù)據(jù)的特征,進(jìn)一步基于Grid LSTM 提取時(shí)序數(shù)據(jù)在不同維度上的相關(guān)性特征.同時(shí),F(xiàn)PGA 器件具有硬件算法定制能力和并行處理的優(yōu)勢(shì),非常適合對(duì)實(shí)時(shí)性要求高的應(yīng)用場(chǎng)景.研究的主要貢獻(xiàn)總結(jié)為3 點(diǎn):
1) 通過分析常見攻擊類型的 CAN ID 分布特征,包括拒絕服務(wù)(denial of service, DoS)、模糊(fuzzy)、欺騙(spoofing)、重放(replay)和刪除(delete)等攻擊,設(shè)計(jì)了一種模擬攻擊系統(tǒng),利用真實(shí)汽車采集的無攻擊數(shù)據(jù)集模擬生成多種攻擊類型的數(shù)據(jù)集.
2) 為了能夠分析大量的實(shí)時(shí)CAN 數(shù)據(jù)并優(yōu)化模型的性能,本文采用多維度以及SAM 的思路,設(shè)計(jì)并實(shí)現(xiàn)了SALVID 模型.多維度的設(shè)計(jì)有利于在FPGA 上實(shí)現(xiàn)不同維度的并行化并提取更深層次的特征信息,SAM 的引入可以進(jìn)一步增強(qiáng)攻擊數(shù)據(jù)的特征,使得Grid LSTM 網(wǎng)絡(luò)更容易區(qū)分不同類型的數(shù)據(jù).多種基準(zhǔn)對(duì)比模型的性能評(píng)估實(shí)驗(yàn)表明,SALVID 具有最佳的性能表現(xiàn).
3) 基于FPGA 嵌入式平臺(tái)設(shè)計(jì)并實(shí)現(xiàn)了堆疊型長(zhǎng)短時(shí)記憶(stacked long short-term memory, Stacked LSTM)網(wǎng)絡(luò)、Grid LSTM、SALVID 這3 種模型,實(shí)驗(yàn)表明SALVID 具有更高檢測(cè)精度以及低延時(shí).傳統(tǒng)的矩陣乘法運(yùn)算具有靜態(tài)特性,而自注意力機(jī)制網(wǎng)絡(luò)層內(nèi)部矩陣具有動(dòng)態(tài)生成的特性,如果遵循傳統(tǒng)設(shè)計(jì)思路,則需要等待內(nèi)部矩陣完全計(jì)算完后才能進(jìn)行矩陣乘法.為了提高SALVID 的數(shù)據(jù)吞吐量,本文設(shè)計(jì)了一種基于動(dòng)態(tài)矩陣的矩陣乘法運(yùn)算優(yōu)化方法.實(shí)驗(yàn)表明,該方法有效地提升了SALVID 的時(shí)延性能.
CAN 總線安全防護(hù)手段一般可以分成2 種:一種是基于加密和認(rèn)證的防護(hù)手段;另一種是基于入侵檢測(cè)的防護(hù)手段.基于加密和認(rèn)證的防護(hù)手段主要是對(duì)幀數(shù)據(jù)和ECU 進(jìn)行認(rèn)證或者使用安全密鑰對(duì)消息進(jìn)行加密處理,由于CAN 數(shù)據(jù)幀格式的有效載荷位數(shù)只有64 b,加密勢(shì)必會(huì)增加CAN 總線的網(wǎng)絡(luò)負(fù)載負(fù)擔(dān),導(dǎo)致通信效率降低,而且加密手段升級(jí)需要對(duì)現(xiàn)有固件進(jìn)行升級(jí).基于入侵檢測(cè)的防護(hù)手段是通過分析數(shù)據(jù)幀的物理特征、統(tǒng)計(jì)學(xué)特征等建立一個(gè)檢測(cè)模型,這種方法的優(yōu)勢(shì)在于不會(huì)增加CAN總線的通信負(fù)擔(dān),并且不需要更新現(xiàn)有的固件程序.
由于通信效率和實(shí)時(shí)性的要求,基于入侵檢測(cè)的防護(hù)手段是車載安全研究的熱點(diǎn),大部分研究可以歸納為基于規(guī)則判斷方法和基于機(jī)器學(xué)習(xí)方法.
在早期的研究中,基于規(guī)則判斷方法較為常見,通過設(shè)置一些邏輯判斷規(guī)則,對(duì)CAN 數(shù)據(jù)內(nèi)部存在的邏輯關(guān)系進(jìn)行決策,達(dá)到異常分類的目的.例如,Vuong 等人[11]設(shè)計(jì)了一種基于決策樹的攻擊檢測(cè)方法,該模型使用網(wǎng)絡(luò)和物理特征,在DoS、命令注入和2 種惡意軟件攻擊場(chǎng)景下進(jìn)行了離線實(shí)驗(yàn)評(píng)估.實(shí)驗(yàn)表明,考慮物理特征顯著提高了檢測(cè)精度并減少了所有攻擊類型的檢測(cè)延遲,然而該方法具有大約1s 的高檢測(cè)延遲,無法滿足車載安全對(duì)實(shí)時(shí)性的需求.Cho 等人[12]將車載ECU 所特有的時(shí)鐘偏差作為指紋特征,提出了一種新型入侵檢測(cè)系統(tǒng)CIDS(clock-based intrusion detection system),CIDS 通 過 最小二乘算法,實(shí)現(xiàn)了0.055%的誤報(bào)率(false positive rate,F(xiàn)PR).然而,CIDS 只能檢測(cè)周期性消息的攻擊,并且攻擊者可以操縱幀數(shù)據(jù)繞過CIDS.
基于機(jī)器學(xué)習(xí)的入侵檢測(cè)系統(tǒng)能夠處理具有多維復(fù)雜特征的數(shù)據(jù),但同時(shí)也更加難以被訓(xùn)練,并且對(duì)硬件性能要求也更高.一些研究人員嘗試使用CAN 總線的物理特征對(duì)車載ECU 的狀態(tài)進(jìn)行分類,Zhou 等人[13]提出了一種基于CAN 總線數(shù)據(jù)比特位寬時(shí)間的新型入侵檢測(cè)系統(tǒng)BTMonitor(bit-time-based monitor),該方法提取了時(shí)域和頻域中9 個(gè)基本特征作為 ECU 的指紋特征,采用多層感知器 (multilayer perceptron, MLP) 訓(xùn)練完成識(shí)別異常 ECU 的分類任務(wù),并在實(shí)際汽車CAN 網(wǎng)絡(luò)上進(jìn)行了測(cè)試,成功識(shí)別率為99.76%.然而,這種方法容易受到溫度和電磁環(huán)境的影響.Choi 等人[14]提出了一種基于CAN 總線電壓的入侵檢測(cè)系統(tǒng),該方法通過檢查CAN 報(bào)文對(duì)應(yīng)的電信號(hào)的特性,使用多類分類器來識(shí)別報(bào)文的發(fā)送方ECU.然而,與BTMonitor 一樣,車內(nèi)的電磁環(huán)境和溫度會(huì)影響CAN 總線信號(hào)的電氣特性.Hanselmann等人[15]提出了一種稱為CANet 的新型無監(jiān)督學(xué)習(xí)方法,該方法結(jié)合了LSTM 和自動(dòng)編碼器,其穩(wěn)定性優(yōu)于其他基于物理特征的檢測(cè)方法.但是CANet 需要為每個(gè)CAN ID 對(duì)應(yīng)的消息時(shí)間序列引入了一個(gè)獨(dú)立的LSTM 輸入模型,這會(huì)導(dǎo)致模型復(fù)雜且難以實(shí)際部署.Hossain 等人[16]提出了一種基于 LSTM 的入侵檢測(cè)算法,研究了不同超參數(shù)設(shè)置對(duì)性能的影響并選擇了最佳參數(shù)值,該方法基于真實(shí)車輛采集的CAN 數(shù)據(jù)模擬生成的3 個(gè)攻擊數(shù)據(jù)集,包括DoS、模糊、欺騙等攻擊,實(shí)現(xiàn)了高效的檢測(cè)準(zhǔn)確率.然而,該方法并未考慮小批量注入攻擊類型.基于車輛原始設(shè)備制造商(OEM)提供的CAN 通信矩陣,Xie 等人[17]設(shè)計(jì)了特殊的CAN 消息塊,并利用生成對(duì)抗網(wǎng)絡(luò)(generative adversarial networks, GAN)檢測(cè)CAN 數(shù)據(jù)是否被篡改.然而,GAN 網(wǎng)絡(luò)無法識(shí)別具體的攻擊類型并且模型難以訓(xùn)練.
從目前的研究現(xiàn)狀分析,大部分基于機(jī)器學(xué)習(xí)的入侵檢測(cè)算法優(yōu)于其他方法,常見的模型算法包括MLP, LSTM, GAN 等.盡管如此,對(duì)于小批量特征類型的攻擊以及如何在嵌入式系統(tǒng)實(shí)現(xiàn)模型部署的相關(guān)研究工作還鮮有深入研究,其主要原因在于小批量特征攻擊的識(shí)別難度較大,并且機(jī)器學(xué)習(xí)算法對(duì)硬件性能要求較高.針對(duì)這2 個(gè)關(guān)鍵問題,提出了一種將SAM 與Grid LSTM 網(wǎng)絡(luò)相結(jié)合的入侵檢測(cè)算法,用于高效地識(shí)別車載CAN 總線是否受到攻擊,本文還進(jìn)行了基于FPGA 嵌入式設(shè)備的入侵檢測(cè)模型加速設(shè)計(jì)與性能評(píng)估,為深度學(xué)習(xí)入侵檢測(cè)模型的實(shí)時(shí)在線部署提供一種新思路.
由于車載系統(tǒng)的特點(diǎn),很難獲取到帶有攻擊特征的數(shù)據(jù)集,因此需要從攻擊類型本身的特征出發(fā),設(shè)計(jì)模擬攻擊系統(tǒng).基于真實(shí)車輛所采集的無攻擊數(shù)據(jù)樣本,利用模擬攻擊系統(tǒng)生成5 種類型的攻擊數(shù)據(jù)集,包括DoS、模糊、欺騙、重放以及刪除等攻擊,其中DoS、模糊和欺騙等攻擊具有泛洪特性,重放以及刪除等攻擊具有小批量特性.每種攻擊的具體特征有:
1) DoS 攻擊.攻擊者一旦入侵到CAN 總線網(wǎng)絡(luò),會(huì)不斷向CAN 網(wǎng)絡(luò)發(fā)送優(yōu)先級(jí)最高(CAN ID 為0)的CAN 數(shù)據(jù)幀,占用CAN 總線網(wǎng)絡(luò)數(shù)據(jù)傳輸時(shí)間窗口,導(dǎo)致其他正常ECU 無法發(fā)送數(shù)據(jù).
2) 模糊攻擊.攻擊者可以在不清楚CAN 網(wǎng)絡(luò)中ECU 具體功能的情況下,向CAN 網(wǎng)絡(luò)注入隨機(jī)性數(shù)據(jù).由于CAN ID 的隨機(jī)性和大量注入的特點(diǎn),其會(huì)導(dǎo)致CAN 網(wǎng)絡(luò)通信紊亂.
3) 欺騙攻擊.在欺騙攻擊中,攻擊者通過監(jiān)聽CAN 總線.記錄歷史消息,并重新大量注入到CAN網(wǎng)絡(luò)中,企圖欺騙車載系統(tǒng)接收過時(shí)消息更新數(shù)據(jù),導(dǎo)致狀態(tài)出現(xiàn)錯(cuò)誤.
4) 重放攻擊.重放攻擊具有小批量的特征,其識(shí)別難度相比上述攻擊要更大,攻擊者通過周期性注入某一個(gè)CAN ID 的CAN 消息,偽裝成正常的ECU實(shí)現(xiàn)重放攻擊.
5) 刪除攻擊.當(dāng)攻擊者入侵CAN 網(wǎng)絡(luò)并挾持車載ECU 之后,往往會(huì)導(dǎo)致正常的ECU 喪失其原本的功能,在這種情況下,CAN 總線上特定的CAN 消息將不再出現(xiàn),有可能導(dǎo)致車輛某些功能失效.
本文采用荷蘭4TU 聯(lián)盟ResearchData 開源的CAN 總線數(shù)據(jù)集[18],該數(shù)據(jù)集包含來自3 個(gè)系統(tǒng)的汽車CAN 總線數(shù)據(jù):2 輛汽車(歐寶 Astra 和雷諾Clio)以及自行搭建的 CAN 總線原型.本文選取了歐寶Astra 的數(shù)據(jù)集作為實(shí)驗(yàn)數(shù)據(jù)集,利用模擬攻擊方法生成了上述5 種攻擊類型的數(shù)據(jù).
對(duì)于所有攻擊類型而言,都需要按順序從原始數(shù)據(jù)集中讀取每一個(gè)記錄,再提取采集時(shí)間戳和CAN ID,以數(shù)據(jù)集第1 行數(shù)據(jù)的時(shí)間戳作為起始時(shí)間,通過攻擊間隔時(shí)間確定每次發(fā)起攻擊的時(shí)間點(diǎn),擇機(jī)發(fā)起攻擊.如圖2(a) 所示,對(duì)于DoS、模糊、欺騙、重放等攻擊而言,通過比較每一個(gè)CAN 消息的采集時(shí)間與攻擊時(shí)間,確定是否發(fā)起攻擊,并在數(shù)據(jù)集添加一列相應(yīng)的標(biāo)志值,發(fā)起攻擊時(shí),注入對(duì)應(yīng)的攻擊標(biāo)志值,其中0, 1, 2, 3, 4 分別表示正常狀態(tài)、DoS 攻擊、模糊攻擊、欺騙攻擊以及重放攻擊的標(biāo)志值.對(duì)于刪除攻擊而言,如圖2 (b)所示,通過判斷當(dāng)前讀取的CAN ID 是否為攻擊目標(biāo),如果是,則刪除該CAN 消息,并標(biāo)記下一個(gè)消息狀態(tài)為刪除攻擊標(biāo)記值為5.
Fig.2 Generation methods of simulation attacks圖2 模擬攻擊生成方法
生成的數(shù)據(jù)集大小如表1 所示,其中正常狀態(tài)的CAN 消息占比最大,3 種泛洪特性的攻擊各自占比約10%,2 種小批量特性的攻擊各自占比約為2%.數(shù)據(jù)集按照8∶1∶1 的比例分別劃分為訓(xùn)練、驗(yàn)證、測(cè)試數(shù)據(jù)集.本文已將實(shí)驗(yàn)所用的數(shù)據(jù)集開源.
Table 1 The Size of Generated Datasets表1 生成的數(shù)據(jù)集大小
通過分析車載CAN 總線的攻擊類型特點(diǎn),發(fā)現(xiàn)幾乎所有攻擊都需要注入或者截?cái)郈AN 消息數(shù)據(jù)幀,這勢(shì)必會(huì)導(dǎo)致CAN 總線上數(shù)據(jù)幀特征分布發(fā)生變化.因此本文通過提取正常情況和攻擊狀態(tài)下的CAN ID 時(shí)序數(shù)據(jù)作為實(shí)驗(yàn)?zāi)P偷妮斎霐?shù)據(jù).圖3 顯示了正常狀態(tài)與5 種攻擊狀態(tài)下CAN 消息中CAN ID 的分布特征.從圖3 中可以看出,DoS、模糊和欺騙等攻擊的特征數(shù)據(jù)與正常狀態(tài)數(shù)據(jù)具有比較明顯的區(qū)別,具有小批量特征的重放攻擊和刪除攻擊的特征并不顯著,與正常狀態(tài)下的分布特征類似,這意味著小批量特征攻擊更難被區(qū)分,更具有迷惑性.
Fig.3 The distribution features of CAN ID in CAN messages of different statuses圖3 各狀態(tài)下CAN 消息中CAN ID 的分布特征
如果直接將CAN ID 作為輸入特征,由于CAN ID 在CAN 協(xié)議中占有11 b,其十進(jìn)制范圍在0~2 047.通常為了加快深度學(xué)習(xí)模型訓(xùn)練收斂速度,模型訓(xùn)練時(shí)會(huì)將輸入數(shù)據(jù)進(jìn)行歸一化處理,這對(duì)浮點(diǎn)數(shù)計(jì)算沒有影響,但如果將歸一化后的數(shù)據(jù)作為FPGA 的輸入,由于需要進(jìn)行定點(diǎn)數(shù)量化處理,會(huì)導(dǎo)致輸入特征的精度下降,因此需要針對(duì)FPGA 的特點(diǎn)對(duì)輸入數(shù)據(jù)進(jìn)行特殊處理.
通過式(1)提取CAN ID 的11 b 特征作為輸入,一方面可以解決歸一化帶來的精度問題,另一方面,由于只有0 和1 這2 種輸入,在FPGA 中可以只用1 b進(jìn)行運(yùn)算,能夠降低資源開銷.CAN ID 的比特特征如圖4 所示.其中橫向坐標(biāo)代表時(shí)間步長(zhǎng),縱向坐標(biāo)代表11 b 特征信息.
Fig.4 The bit distribution features of CAN ID圖4 CAN ID 的比特特征分布
本文結(jié)合自注意力機(jī)制與Grid LSTM 設(shè)計(jì)了SALVID 模型,其模型結(jié)構(gòu)如圖5 所示.
Fig.5 The architecture of SALVID model combining SAM and Grid LSTM圖5 結(jié)合SAM 與Grid LSTM 的SALVID 模型架構(gòu)
自注意力機(jī)制是Transformer 模型的重要組成部分,其優(yōu)勢(shì)在于減少了外部信息的時(shí)間依賴性,可以更快地捕獲數(shù)據(jù)特征的內(nèi)部相關(guān)性[9].本文針對(duì)FPGA 的并行計(jì)算模式,對(duì)自注意力機(jī)制進(jìn)行改進(jìn).自注意力機(jī)制的作用可以理解為通過分配不同的權(quán)重比例,對(duì)輸入數(shù)據(jù)進(jìn)行預(yù)處理,典型的自注意力機(jī)制如圖6 所示,其內(nèi)部矩陣Q,K,V是通過全連接網(wǎng)絡(luò)實(shí)現(xiàn),其中Q為計(jì)算模塊,K為激活函數(shù)計(jì)算模塊,V為卷積層輸出模塊,所用到的激活函數(shù)為softmax函數(shù),為了簡(jiǎn)化自注意力機(jī)制的內(nèi)部計(jì)算以及降低參數(shù)量,本文將全連接網(wǎng)絡(luò)使用卷積網(wǎng)絡(luò)代替.對(duì)于softmax 激活函數(shù),其作用在于將輸出結(jié)果歸一化至0~1,并且總和為1,這個(gè)過程需要等待所有輸出結(jié)果值計(jì)算完成,不利于在FPGA 上實(shí)現(xiàn).而sigmoid 函數(shù)
Fig.6 Improvement of network structure of SAM圖6 自注意力機(jī)制網(wǎng)絡(luò)結(jié)構(gòu)的改進(jìn)
的激活值范圍也在0~1,激活結(jié)果不依賴于外部信息,并且不會(huì)改變輸入數(shù)據(jù)之間的大小關(guān)系,同樣能夠作為注意力權(quán)重.其他常用的激活函數(shù),例如ReLU函數(shù)與tanh 函數(shù)的激活值范圍不在0~1,過大的區(qū)間范圍需要更多的片上硬件資源用于保存激活值,因此我們采用sigmoid 函數(shù)替換softmax 函數(shù).改進(jìn)后的自注意力機(jī)制網(wǎng)絡(luò)[19]如圖6 所示.
首先,將輸入數(shù)據(jù)定義為:
其中X是n×m的矩陣,m為輸入的特征維度,n為一次輸入的總時(shí)間步長(zhǎng).
改進(jìn)后的自注意力機(jī)制的定義如式(3)~(5)所示:
根據(jù)式(3)計(jì)算得到矩陣Q,K,V;其中(1,1)表示卷積核為1×1;F對(duì)應(yīng)一個(gè)特征矩陣卷積層的輸出通道數(shù),F(xiàn)*3 表示卷積層總的輸出通道數(shù);Conv2D()表示2 維卷積函數(shù),其輸出值平均切分為3 個(gè)部分,分別為Q,K,V;再根據(jù)式(4)計(jì)算得到自注意力機(jī)制網(wǎng)絡(luò)層權(quán)重矩陣, 將矩陣與V相乘,得到的結(jié)果作為式(5)的輸入,最終得到自注意力機(jī)制網(wǎng)絡(luò)層的輸出結(jié)果;D表示最終輸出的通道數(shù),將其設(shè)置為1,即表示輸出值的大小與輸入數(shù)據(jù)的大小一致.
LSTM 通過引入若干門控信號(hào)解決了RNN 梯度消失和爆炸的問題,被廣泛應(yīng)用于文本識(shí)別、語音識(shí)別、時(shí)序數(shù)據(jù)處理、自然語言處理等領(lǐng)域[20].而Grid LSTM 能夠基于不同維度提取時(shí)序數(shù)據(jù)中更深層次的特征.本文采用的Grid LSTM 模型包括時(shí)間和深度2 個(gè)維度,不同維度的LSTM 內(nèi)部權(quán)重參數(shù)可以相互獨(dú)立或共享[21].當(dāng)不同維度之間的參數(shù)相互獨(dú)立時(shí),時(shí)間維度與深度維度互不干擾,有利于緩解梯度消失問題并提取深層次的特征,并且每個(gè)維度在FPGA上可以并行執(zhí)行,因此,本文在Grid LSTM 的不同維度上采用相互獨(dú)立的設(shè)計(jì).
Grid LSTM 內(nèi)部的基本計(jì)算單元可以拆分為2個(gè)LSTM 單元,LSTM 單元通過記憶單元的3 個(gè)門控信號(hào),即輸入門、遺忘門和輸出門,避免了RNN 存在的梯度消失和梯度爆炸的問題,LSTM 單元的每一個(gè)時(shí)間步計(jì)算如式(6)所示:
其中 σ表示sigmoid 函數(shù), ⊙表示按元素相乘,Wix,Wf x,Wgx,Wox為 輸入向量的權(quán)重矩陣,Wih,Wfh,Wgh,Woh為上一時(shí)刻隱藏層單元輸出向量的權(quán)重矩陣.將式(6)的LSTM 單元計(jì)算過程表示為lstm(), 如式(7)所示:
與LSTM 單元的計(jì)算所不同的是,本文所設(shè)計(jì)的Grid LSTM 單元具有深度維度與時(shí)間維度的2 個(gè)隱藏層單元輸入向量和2 個(gè)記憶單元向量,其計(jì)算可獨(dú)立拆分如式(8)所示:
對(duì)應(yīng)于標(biāo)準(zhǔn)的LSTM 單元,Grid LSTM 單元具有2 個(gè)維度的獨(dú)立參數(shù),本文將2 個(gè)不同維度的最后一步隱藏層輸出進(jìn)行拼接,如式(9)所示,最終得到Grid LSTM 的輸入向量.
其中n表示一次輸入的總時(shí)間步長(zhǎng).
為了在邊緣嵌入式設(shè)備上進(jìn)行部署,基于FPGA架構(gòu),本文對(duì)所提出的SALVID 模型進(jìn)行加速設(shè)計(jì),利用高層次綜合(high-level synthesis, HLS)語言將模型算法綜合為硬件電路[22].
SALVID 模型的加速設(shè)計(jì)可分成2 部分,包括自注意力層與Grid LSTM 層.為了降低推斷時(shí)延和提高開發(fā)效率,本文基于模塊化設(shè)計(jì)與流水線設(shè)計(jì)思路,將自注意力層進(jìn)一步分解為Q,K,V,將Grid LSTM層拆分為2 個(gè)維度,這2 個(gè)維度并行計(jì)算,單個(gè)維度的LSTM 計(jì)算單元模塊可以復(fù)用.基于模塊化設(shè)計(jì)思路,重新設(shè)計(jì)模型的數(shù)據(jù)流管道,每個(gè)計(jì)算模塊之間通過FIFO 隊(duì)列資源進(jìn)行連接,可以實(shí)現(xiàn)整個(gè)計(jì)算過程的流水化.
3.3.1Q,K,V卷積模塊設(shè)計(jì)
自注意力機(jī)制網(wǎng)絡(luò)內(nèi)部的矩陣Q,K,V卷積計(jì)算不具有時(shí)間上的相互依賴性,因此無論是在CPU,GPU 或者FPGA 都可以并行計(jì)算.但對(duì)于CPU 或者GPU 而言,需要完整計(jì)算出矩陣Q,K,V的所有值才能進(jìn)行下一步計(jì)算,整個(gè)計(jì)算過程會(huì)處于阻塞狀態(tài).相比之下,F(xiàn)PGA 具有并行流水線處理的優(yōu)勢(shì),由于卷積函數(shù)卷積核是訓(xùn)練后的固定值,此過程可以很容易實(shí)現(xiàn)流水化設(shè)計(jì),其計(jì)算過程如圖7 所示.
Fig.7 A single step calculation process of Q,K,V convolution modules圖7 Q,K,V 卷積模塊單步計(jì)算過程
將Q,K,V的內(nèi)部計(jì)算獨(dú)立為一個(gè)模塊,其輸入流為一個(gè)CAN ID 的時(shí)序比特流數(shù)據(jù),輸出流為Q,K,V的流數(shù)據(jù).假設(shè)當(dāng)前輸入為x(t,i),代表第t個(gè)時(shí)間步第i個(gè)維度的比特值,由于Q,K,V卷積函數(shù)卷積核已知,因此根據(jù)式(3)可以得到所有通道對(duì)應(yīng)位置的輸出值,d表示輸出通道序號(hào).Q,K,V的輸出流FIFO 隊(duì)列將會(huì)依次輸出所有通道計(jì)算后的值用于輸入到下一模塊的計(jì)算過程.在此過程中,矩陣Q,K,V被完全展開成1 維矩陣.
3.3.2 激活函數(shù)計(jì)算模塊
激活模塊的計(jì)算過程對(duì)應(yīng)式(4),本質(zhì)上整個(gè)計(jì)算過程是一個(gè)累加過程,如式(10)所示:
其中i,m∈{0,1,...,H-1},ai,m表示矩陣A中對(duì)應(yīng)位置的元素,由于矩陣Q,K,V計(jì)算模塊輸出的矩陣Q,K是按照通道序號(hào)以數(shù)據(jù)流的形式串行傳輸,如果等接收到所有元素再開始計(jì)算A,將會(huì)導(dǎo)致很大的時(shí)延,因此,基于數(shù)據(jù)流傳輸?shù)慕Y(jié)構(gòu),本文設(shè)計(jì)了優(yōu)化后的矩陣計(jì)算流程,當(dāng)分別從Q,K隊(duì)列讀取q(i,j)和k(i,j)時(shí),ki,j在KT中 為kj,i,可以將qi,jkj,i累 加到元 素ai,i中,同時(shí),當(dāng)前的qi,j和kj,i也需要和緩存的Q,K元素進(jìn)行乘法計(jì)算,并累加到矩陣A對(duì)應(yīng)位置的元素中,其計(jì)算過程如式(11)所示:
其中kj,z和qw,j分 別為緩存的矩陣Q,K元素,z∈{0,1,…,j-1},w∈{0,1,…,i-1}.這種計(jì)算方法本質(zhì)上是將式(10)(11)中乘累加的過程進(jìn)行拆分,使其適合于Q,K的數(shù)據(jù)流模式,本文將此方法稱為動(dòng)態(tài)矩陣乘法計(jì)算.由于矩陣Q,K的值是動(dòng)態(tài)產(chǎn)生的,因此只能在Q,K隊(duì)列全部數(shù)據(jù)讀取完成之后才能進(jìn)行激活計(jì)算,否則無法得到一個(gè)完整的輸出值.
3.3.3 輸出卷積層模塊
計(jì)算得到激活值后,將激活值串行輸入到自注意力機(jī)制的卷積層輸出模塊,該模塊對(duì)應(yīng)于式(5).由于此時(shí)V特征矩陣的值是完全已知的,這種情況的矩陣乘法運(yùn)算比動(dòng)態(tài)矩陣的計(jì)算要簡(jiǎn)單.當(dāng)輸入矩陣的 一行數(shù)據(jù)時(shí),便可以計(jì)算出結(jié)果矩陣的一行數(shù)據(jù),計(jì)算過程如圖8 所示.
Fig.8 A single step calculation of output convolution module圖8 輸出卷積模塊單步計(jì)算
假設(shè)當(dāng)前輸入為A?的 一個(gè)元素ai,j,將其與V的第j行元素vj相 乘,再按位累加到結(jié)果矩陣第i行元素ri,其計(jì)算過程如式(12)所示:
其中m∈{0,1,...,11n}, 11 表示CAN ID 的11 b,n為一次輸入的序列長(zhǎng)度.
當(dāng)計(jì)算得到A?V的所有輸出值后,去按行進(jìn)行累加計(jì)算,再做卷積函數(shù)計(jì)算,如式(13)所示:
圖9 中,MVM 模塊表示LSTM 單元內(nèi)的矩陣向量乘法.LSTM 單元的計(jì)算過程包括LSTM 內(nèi)部的全連接網(wǎng)絡(luò)LSTM-MLP、激活(activation)函數(shù)和記憶單元和隱藏層單元狀態(tài)計(jì)算LSTM-Tail[23].LSTM-MLP用于并行處理內(nèi)部矩陣向量乘法.LSTM-Tail 以流水線模式計(jì)算最終隱藏層單元和記憶單元的輸出值.
Fig.9 The internal computing architecture of LSTM cell圖9 LSTM cell 內(nèi)部計(jì)算架構(gòu)
其中j∈{0,1,...,11n},sad,j表 示 第d個(gè)輸 出通道的 第j個(gè)元素,Wd表示輸出卷積函數(shù)的第d個(gè)卷積核.為了保持自注意力層的輸入輸出維度一致,將輸出卷積函數(shù)的輸出通道設(shè)置為1.
3.3.4 LSTM 計(jì)算單元模塊
LSTM 計(jì)算單元的設(shè)計(jì)遵循與自注意力機(jī)制網(wǎng)絡(luò)設(shè)計(jì)相同的設(shè)計(jì)原理,采用FIFO 隊(duì)列以及數(shù)據(jù)流的設(shè)計(jì)思想,對(duì)輸入值、中間結(jié)果以及輸出值進(jìn)行串行傳輸以實(shí)現(xiàn)整個(gè)計(jì)算過程流水化.首先對(duì)LSTM 單元單個(gè)時(shí)間步的計(jì)算過程進(jìn)行分析,由于LSTM 內(nèi)部的全連接層權(quán)重矩陣與偏置向量完全已知,因此其優(yōu)化方法與自注意力機(jī)制網(wǎng)絡(luò)的輸出層乘累加計(jì)算過程的優(yōu)化方法相同,為了最大化降低時(shí)延,不需要等待矩陣乘法完全計(jì)算結(jié)束得到完整的輸出結(jié)果,可以在計(jì)算得到一行輸出之后,便開始下一步激活函數(shù)的計(jì)算以及其他模塊的計(jì)算.LSTM 網(wǎng)絡(luò)單個(gè)時(shí)間步的計(jì)算過程如圖9 所示.
本節(jié)描述實(shí)驗(yàn)的相關(guān)硬件與軟件環(huán)境以及模型評(píng)估標(biāo)準(zhǔn).實(shí)驗(yàn)的軟件環(huán)境為PyCharm 2 021.2.1 專業(yè)版以及Xilinx Vivado 2 019.2 集成開發(fā)環(huán)境(包括Vivado 和HLS),數(shù)據(jù)特征提取實(shí)驗(yàn)所采用的是Python 3.7,通過提取原始數(shù)據(jù)集中的CAN ID 字段,注入攻擊數(shù)據(jù)之后,保存為二進(jìn)制文件,以提高訓(xùn)練時(shí)內(nèi)存I/O 讀取速度.基于PyTorch 1.9.0 構(gòu)建了各類深度學(xué)習(xí)實(shí)驗(yàn)?zāi)P?,包括本文提出的SALVID 模型,采用Scikit-learn 0.24.1 機(jī)器學(xué)習(xí)庫用于構(gòu)建SVM 對(duì)比模型,模型加速實(shí)驗(yàn)均基于Vivado HLS 高層次綜合設(shè)計(jì).所有PC 端實(shí)驗(yàn)都在同一臺(tái)安裝了Windows 10 系統(tǒng)的臺(tái)式電腦進(jìn)行,該電腦CPU 配置為Intel i9-10850K CPU @ 3.6GHz × 10,配有8 GB 顯存的NVIDIA Quadro RTX 4 000 GPU.加速模型部署測(cè)試基于Ultra96-v2 開發(fā)板,配置有2 GB LPDDR4 的內(nèi)存和UltraScale+ MPSoC 架構(gòu)的FPGA 芯片.
為了衡量模型的檢測(cè)性能,本文從3 個(gè)方面對(duì)所提出的SALVID 模型進(jìn)行評(píng)估:
1) 不同模型深度條件下的整體檢測(cè)準(zhǔn)確率(accuracy,ACC)比較.
2) 7 種不同模型之間的性能比較,如ACC、漏報(bào)率(false negative rate,F(xiàn)NR)、FPR.
其中TP,F(xiàn)P,TN,F(xiàn)N分別代表被正確分類的正例、被錯(cuò)誤分類的正例、被正確分類的負(fù)例以及被錯(cuò)誤分類的負(fù)例.
3) 基于FPGA 平臺(tái)的3 種不同加速模型的平均推斷時(shí)延以及整體檢測(cè)準(zhǔn)確率比較.
在本節(jié)中,根據(jù)模擬攻擊方法生成的攻擊數(shù)據(jù)集以及原始的正常數(shù)據(jù)集,在不同的模型深度條件下,對(duì)3 種基于LSTM 的模型進(jìn)行性能評(píng)估,包括Stacked LSTM、Grid LSTM 和所提出的SALVID.模型深度范圍為10~30,步長(zhǎng)為2.為了避免Dropout 層對(duì)模型精度造成的影響,本文在每一種模型深度條件下進(jìn)行了20 次訓(xùn)練實(shí)驗(yàn),在測(cè)試數(shù)據(jù)集上測(cè)試得到ACC后取平均值.實(shí)驗(yàn)結(jié)果如圖10 所示.
Fig.10 The performance between different model depths圖10 不同模型深度之間的性能
從圖10 可以看出,當(dāng)模型深度不斷增加時(shí),3 種模型的ACC都有上升的趨勢(shì),在模型深度達(dá)到一定值之后,模型的ACC很難繼續(xù)提升,SALVID, Grid LSTM, Stacked LSTM 模型分別在模型深度為22, 24,24 時(shí)達(dá)到最高的ACC,并且SALVID 模型具有最佳的性能表現(xiàn).實(shí)驗(yàn)表明,多維度的特性以及自注意力機(jī)制能夠有效提升模型的檢測(cè)性能,特別是在網(wǎng)絡(luò)模型深度很小的情況下,SALVID 依舊具有很高的檢測(cè)性能.
為了評(píng)估模型的訓(xùn)練穩(wěn)定性,本文選取了模型深度為16~24 的ACC進(jìn)行比較.如圖11 所示, SALVID的ACC波動(dòng)范圍在2%~4%,而Stacked LSTM 的ACC波動(dòng)范圍在2.4%~6%,Grid LSTM 的ACC波動(dòng)范圍在2.4%~5%.相 比 于SALVID,Stacked LSTM 和Grid LSTM 模型的ACC波動(dòng)范圍較大.在模型深度較大時(shí),SALVID 模型的穩(wěn)定性表現(xiàn)更佳.實(shí)驗(yàn)結(jié)果表明,SALVID 具有最佳的訓(xùn)練穩(wěn)定性表現(xiàn),這表明自注意力機(jī)制有助于降低模型檢測(cè)性能對(duì)模型參數(shù)的敏感度,能夠提高SALVID 模型的訓(xùn)練穩(wěn)定性.
Fig.11 The training stability between different models圖11 不同模型之間的訓(xùn)練穩(wěn)定性
為了進(jìn)一步研究Stacked LSTM, Grid LSTM,SALVID 在檢測(cè)性能上的差異,本文選取了3 種模型中具有最佳性能表現(xiàn)模型所對(duì)應(yīng)的模型深度作為比較基礎(chǔ),通過其分類混淆矩陣進(jìn)行分析對(duì)比,如圖12所示,3 種模型對(duì)具有泛洪特性的攻擊都有較好的檢測(cè)識(shí)別性能,主要原因在于其泛洪特征較為明顯,易于識(shí)別.SALVID 對(duì)正常狀態(tài)的識(shí)別率最佳,這能夠有效地降低正常狀態(tài)下的FPR.3 種模型的主要差異體現(xiàn)在小批量特性的攻擊類型檢測(cè)識(shí)別效果上,對(duì)于重放攻擊來說,這3 種模型都存在將攻擊識(shí)別為正常狀態(tài)的誤識(shí)別情況,然而,SALVID 的錯(cuò)誤識(shí)別次數(shù)僅為233,大約是Grid LSTM 的1/2 和Stacked LSTM 的1/3.這種差異表明多維度特性與自注意力機(jī)制有利于捕獲更深層的攻擊特征.
Fig.12 The classification confusion matrix of the three models圖12 3 種模型的分類混淆矩陣
將SALVID 與其他基線對(duì)比模型的異常檢測(cè)性能進(jìn)行比較,評(píng)估指標(biāo)包括ACC,F(xiàn)NR,F(xiàn)PR.
本文采用交叉熵?fù)p失(crossentropy loss)函數(shù)作為所有深度學(xué)習(xí)模型的損失函數(shù),其中p為期望輸出,q為實(shí)際輸出.實(shí)驗(yàn)過程中,最大的訓(xùn)練輪數(shù)為100,學(xué)習(xí)率為1E-3,優(yōu)化器類型為自適應(yīng)矩估計(jì)優(yōu)化器adam,一個(gè)批次訓(xùn)練的大小為128,輸出層激活函數(shù)采用softmax 函數(shù),并且,當(dāng)驗(yàn)證集上的損失值不再連續(xù)下降的次數(shù)超過所設(shè)定的中斷閾值時(shí),訓(xùn)練過程提前中斷,本文設(shè)置中斷閾值為5.具體超參數(shù)設(shè)置如表2 所示.
Table 2 Hyperparameter Configuration表2 超參數(shù)設(shè)置
本文模型包括支持向量機(jī)(support vector machines,SVM)、 MLP、 卷 積 神 經(jīng) 網(wǎng) 絡(luò)(convolutional neural network, CNN )、 Stacked LSTM、 Grid LSTM 以 及SALVID 模型.
多種模型的性能對(duì)比結(jié)果如表3 所示.通過實(shí)驗(yàn)結(jié)果分析,基于LSTM 的模型性能表現(xiàn)明顯優(yōu)于其他非循環(huán)神經(jīng)網(wǎng)絡(luò)模型SVM, MLP, CNN,其主要原因在于小批量注入攻擊與正常狀態(tài)的特征分布圖很類似,非循環(huán)神經(jīng)網(wǎng)絡(luò)不具有捕獲上下文時(shí)序相關(guān)性的能力,難以區(qū)分此類的差異.此外,Stacked LSTM 與Grid LSTM 的實(shí)驗(yàn)結(jié)果表明,多維度特性加強(qiáng)了LSTM 對(duì)具有復(fù)雜特征數(shù)據(jù)的分類能力.對(duì)比SALVID 與Grid LSTM 的實(shí)驗(yàn)結(jié)果可以發(fā)現(xiàn),自注意力機(jī)制有效地增強(qiáng)了原數(shù)據(jù)的攻擊特征,提升了SALVID 模型的檢測(cè)分類性能.
Table 3 The Performance Between Different Models表3 不同模型之間的性能 %
本節(jié)基于FPGA 嵌入式平臺(tái),采用獨(dú)立模塊化設(shè)計(jì)方式實(shí)現(xiàn)了自注意力機(jī)制網(wǎng)絡(luò)層和LSTM cell 基本運(yùn)算單元,通過將LSTM cell 計(jì)算單元在時(shí)間維度上進(jìn)行堆疊得到Stacked LSTM 模型;然后將Stacked LSTM 拼接組合得到具有深度和時(shí)間維度的Grid LSTM 模型;最后將自注意力機(jī)制網(wǎng)絡(luò)層作為前置部分與Grid LSTM 網(wǎng)絡(luò)層進(jìn)行串聯(lián),得到SALVID 模型.基于PC 端訓(xùn)練得到的模型參數(shù),本文選取了3種表現(xiàn)最佳模型所對(duì)應(yīng)的模型深度列表進(jìn)行比較,如表4 所示.
Table 4 Model Depth Selection and Their Accuracy表4 模型深度選擇及其準(zhǔn)確率
本節(jié)將會(huì)從參數(shù)量化分析、資源消耗以及性能表現(xiàn)3 個(gè)方面對(duì)基于FPGA 的加速模型設(shè)計(jì)進(jìn)行評(píng)估.
4.4.1 參數(shù)量化分析
為了加速模型推斷,本文利用定點(diǎn)數(shù)量化的方式對(duì)模型的參數(shù)進(jìn)行壓縮[24].對(duì)訓(xùn)練好的模型參數(shù)范圍進(jìn)行分析,模型參數(shù)包括卷積函數(shù)的卷積核、LSTM 內(nèi)部的全連接層以及輸出層的權(quán)重矩陣與偏置向量,其分布特征如圖13 所示.
Fig.13 Histogram of parameter distribution for each network layer圖13 各網(wǎng)絡(luò)層參數(shù)分布直方圖
可以看到自注意力機(jī)制參數(shù)范圍大致在-2~2,LSTM 內(nèi)部的參數(shù)范圍大致在-2~2,輸出層的參數(shù)范圍大致在-3~3,因此,針對(duì)模型參數(shù)的定點(diǎn)數(shù)量化整數(shù)部分,定義其為4 b 位寬,16 b 總位寬,同時(shí),模型計(jì)算過程中有累加操作,為了避免溢出,對(duì)中間計(jì)算值采用32 b 總位寬和16 b 整數(shù)位進(jìn)行量化,激活函數(shù)則采用16 b 總位寬和8 b 整數(shù)位進(jìn)行量化.由于輸入值只有0 和1 這2 種情況,故用1 b 無符號(hào)整數(shù)保存,輸出值以8 b 無符號(hào)整數(shù)存儲(chǔ),便于在處理系統(tǒng)(PS)和FPGA 器件上的可編程邏輯(PL)中傳輸.FPGA設(shè)計(jì)中具體參數(shù)位寬的定義如表5 所示.
Table 5 The Bit Width Definition of Model Parameter Quantization表5 模型參數(shù)量化位寬定義
其中,在FPGA 設(shè)計(jì)中,未實(shí)現(xiàn)輸出層的softmax歸一化函數(shù),這對(duì)輸出值的大小順序并不會(huì)產(chǎn)生影響,但卻能夠有效減少資源開銷以及降低推斷時(shí)延.
4.4.2 基于動(dòng)態(tài)矩陣的矩陣乘法優(yōu)化設(shè)計(jì)
在FPGA 設(shè)計(jì)中,傳統(tǒng)的矩陣乘法通常是已知權(quán)重矩陣,計(jì)算輸入矩陣與權(quán)重矩陣的矩陣乘法結(jié)果,而在自注意力機(jī)制網(wǎng)絡(luò)層中內(nèi)部矩陣的生成具有動(dòng)態(tài)特性,傳統(tǒng)設(shè)計(jì)思路會(huì)阻塞計(jì)算過程,需要等待內(nèi)部矩陣計(jì)算完成,無法與其他計(jì)算過程實(shí)現(xiàn)流水線優(yōu)化,因此針對(duì)該計(jì)算過程,本文設(shè)計(jì)了一種基于動(dòng)態(tài)矩陣的矩陣乘法運(yùn)算優(yōu)化方法,并與傳統(tǒng)設(shè)計(jì)思路在FPGA 器件上進(jìn)行板載測(cè)試對(duì)比.如表6 所示,優(yōu)化后的設(shè)計(jì)方法相比傳統(tǒng)的設(shè)計(jì)方法,在具有相同準(zhǔn)確度的基礎(chǔ)上,降低了0.1 ms 的推斷時(shí)延.
Table 6 The Performance of Different Design Methods表6 不同設(shè)計(jì)方法的性能 ms
4.4.3 FPGA 硬件資源消耗
有效利用資源對(duì)于嵌入式系統(tǒng)至關(guān)重要.基于FPGA 的加速器因其高性能和高能效而被應(yīng)用于從嵌入式系統(tǒng)到云計(jì)算的各種系統(tǒng)[25].本文對(duì)加速模型硬件資源利用進(jìn)行分析.從圖14 可以看出,SALVID由于內(nèi)部結(jié)構(gòu)復(fù)雜,占用的硬件資源最多.Grid LSTM 模型中的基本計(jì)算單元具有2 個(gè)維度,包括深度和時(shí)間,因此,在相同模型深度條件下,Grid LSTM的資源開銷要多于Stacked LSTM.
Fig.14 Comparison of resource cost in FPGA model design圖14 FPGA 模型設(shè)計(jì)的資源消耗比較
4.4.4 準(zhǔn)確率與推斷時(shí)延性能表現(xiàn)
基于Ultra96-v2 嵌入式FPGA 設(shè)備,本文進(jìn)行了模型板載測(cè)試實(shí)驗(yàn),并對(duì)Stacked LSTM, Grid LSTM,SALVID 進(jìn)行了性能評(píng)估.板載測(cè)試實(shí)驗(yàn)數(shù)據(jù)包括從測(cè)試數(shù)據(jù)集中隨機(jī)抽取的1 600 個(gè)類型均勻分布的樣本,實(shí)驗(yàn)結(jié)果如圖15 所示.
Fig.15 Performance comparison of model tested on FPGA board圖15 模型在FPGA 板上測(cè)試的性能比較
從圖15 可以看到,參數(shù)量化對(duì)Stacked LSTM 與SALVID 模型的ACC影響不大,但對(duì)Grid LSTM 的影響比較明顯.其主要原因在于Grid LSTM 有2 個(gè)維度,2 個(gè)維度的計(jì)算互相對(duì)立,這種結(jié)構(gòu)有利于在FPGA上進(jìn)行并行設(shè)計(jì),然而多維特性也導(dǎo)致模型對(duì)參數(shù)的敏感性增強(qiáng).由于增加了自注意力層,SALVID 的時(shí) 延 大于Grid LSTM, 但SALVID 的ACC比Grid LSTM 高約2%.并且自注意力層也有助于降低模型對(duì)參數(shù)的敏感性.并且實(shí)驗(yàn)中測(cè)試數(shù)據(jù)的總步長(zhǎng)為32,對(duì)應(yīng)CAN 網(wǎng)絡(luò)大約30 ms 的采集時(shí)間.因此,3 種模型的時(shí)延遠(yuǎn)小于CAN 數(shù)據(jù)的生成時(shí)間.
本文提出了一種結(jié)合自注意力機(jī)制與Grid LSTM 的車載CAN 總線網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng),利用自注意力機(jī)制增強(qiáng)原數(shù)據(jù)時(shí)序相關(guān)性,再通過多維度的Grid LSTM 模型提取深層次的特征,取得了較好的檢測(cè)效果.
通過將本文所提出的SALVID 與深度算法MLP,CNN,Stacked LSTM,Grid LSTM 以及傳統(tǒng)的機(jī)器學(xué)習(xí)算法SVM 進(jìn)行實(shí)驗(yàn)對(duì)比,從整體的檢測(cè)效果與不同類別樣本的檢測(cè)效果方面進(jìn)行對(duì)比,實(shí)驗(yàn)結(jié)果表明SALVID 模型有效地提高了檢測(cè)準(zhǔn)確率(98.98%)以及降低了誤報(bào)率(0.20%).進(jìn)一步地,本文提供了基于FPGA 平臺(tái)的模型設(shè)計(jì)方案,并在FPGA 嵌入式設(shè)備上進(jìn)行加速模型板載測(cè)試,實(shí)驗(yàn)結(jié)果表明,參數(shù)量化對(duì)模型的準(zhǔn)確率影響較小,并且對(duì)模型的推斷時(shí)延影響很小,這為基于深度學(xué)習(xí)模型的入侵檢測(cè)系統(tǒng)的實(shí)際部署提供了一種針對(duì)FPGA 嵌入式設(shè)備的實(shí)踐方案.
作者貢獻(xiàn)聲明:許鶴負(fù)責(zé)完成實(shí)驗(yàn)設(shè)計(jì)、調(diào)研和論文主要內(nèi)容的撰寫;吳迪、盧繼武參與了討論并提出了修改意見和實(shí)驗(yàn)思路;李仁發(fā)對(duì)論文結(jié)構(gòu)和內(nèi)容提出指導(dǎo)意見.