国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種車載控制器局域網(wǎng)絡(luò)入侵檢測(cè)算法及硬件加速

2023-12-15 04:47:34盧繼武李仁發(fā)
計(jì)算機(jī)研究與發(fā)展 2023年12期
關(guān)鍵詞:注意力卷積維度

許 鶴 吳 迪 盧繼武 李仁發(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í)延性能.

1 相關(guān)工作

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í)方法.

1.1 基于規(guī)則判斷方法

在早期的研究中,基于規(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.

1.2 基于機(jī)器學(xué)習(xí)方法

基于機(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í)在線部署提供一種新思路.

2 車載CAN 網(wǎng)絡(luò)攻擊類型

由于車載系統(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)致車輛某些功能失效.

2.1 生成攻擊數(shù)據(jù)集

本文采用荷蘭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 的分布特征

2.2 特征提取

如果直接將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 的比特特征分布

3 車載CAN 網(wǎng)絡(luò)入侵檢測(cè)模型

本文結(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)

3.1 自注意力機(jī)制層

自注意力機(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ù)的大小一致.

3.2 Grid LSTM 網(wǎng)絡(luò)層

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).

3.3 基于FPGA 的并行加速設(shè)計(jì)

為了在邊緣嵌入式設(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 所示.

4 實(shí)驗(yàn)與結(jié)果

4.1 實(shí)驗(yàn)設(shè)計(jì)與評(píng)估標(biāo)準(zhǔn)

本節(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)確率比較.

4.2 不同模型深度之間的性能評(píng)估

在本節(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 種模型的分類混淆矩陣

4.3 基準(zhǔn)對(duì)比模型與超參數(shù)設(shè)置

將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 不同模型之間的性能 %

4.4 FPGA 加速模型的參數(shù)選擇與效能評(píng)估

本節(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í)間.

5 結(jié) 論

本文提出了一種結(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)意見.

猜你喜歡
注意力卷積維度
讓注意力“飛”回來
基于3D-Winograd的快速卷積算法設(shè)計(jì)及FPGA實(shí)現(xiàn)
淺論詩中“史”識(shí)的四個(gè)維度
中華詩詞(2019年7期)2019-11-25 01:43:00
從濾波器理解卷積
電子制作(2019年11期)2019-07-04 00:34:38
基于傅里葉域卷積表示的目標(biāo)跟蹤算法
“揚(yáng)眼”APP:讓注意力“變現(xiàn)”
A Beautiful Way Of Looking At Things
光的維度
燈與照明(2016年4期)2016-06-05 09:01:45
“五個(gè)維度”解有機(jī)化學(xué)推斷題
一種基于卷積神經(jīng)網(wǎng)絡(luò)的性別識(shí)別方法
象山县| 日喀则市| 泽州县| 临西县| 佛坪县| 海宁市| 万源市| 余姚市| 乐至县| 阿鲁科尔沁旗| 乌兰县| 屯留县| 浦江县| 罗田县| 白朗县| 恭城| 乐都县| 河北省| 靖宇县| 定兴县| 北辰区| 宽甸| 双柏县| 灵山县| 清流县| 屏东市| 惠州市| 闽侯县| 丁青县| 长丰县| 永德县| 旌德县| 格尔木市| 惠安县| 东源县| 安新县| 江西省| 金乡县| 汶川县| 青神县| 中西区|