謝承宗,王禹賀,王佰多,李世明
(哈爾濱師范大學 計算機科學與信息工程學院,黑龍江 哈爾濱 150025)
工業物聯網(Industrial Internet of Things,IIoT)能夠利用智能化生產與管理來提高生產和管理效率,降低資源消耗,其應用行業眾多(如制造、物流、運輸、石油、天然氣、公用事業和航空等),然而卻存在易受網絡攻擊等問題[1]。入侵檢測系統(Intrusion Detection System,IDS)可監測網絡流量中疑似攻擊行為,成為提升IIoT的防御能力的關鍵技術之一[2]。
人工智能中的深度學習算法可從大量數據中學習和提取復雜特征,所以被人們用于入侵檢測并成為研究熱點[3-5]。然而,基于深度學習的入侵檢測模型結構越來越復雜,如文獻[6-7]的CNN+LSTM組合模型,文獻[8]的CNN和雙層GRU的組合模型等,這些模型的訓練時間都很長。此外,大多數基于深度學習的入侵檢測系統部署屬于集中式,該模式下服務器接收并利用不同客戶端傳來的數據進行訓練入侵檢測模型,然后再部署已訓練完成的模型到客戶端設備上[9],此過程存在隱私泄露等問題[10]。
聯邦學習(Federated Learning,FL)是由McMahan等[11]于2016年提出的一種協作學習方法,該方法在本地設備上利用本地數據集訓練共享模型,服務器只聚合更新后的本地模型參數,此過程中聯邦學習不傳輸用戶敏感數據,故保護了用戶隱私,從而被逐漸應用到入侵檢測技術中。然而,基于聯邦學習的入侵檢測方法[12-14]通常會使用隨機梯度下降算法(Stochastic Gradient Descent,SGD)來優化本地模型的參數,導致出現模型的訓練收斂速度慢和檢測效率低等問題。
針對上述問題,本文提出基于GRU-FedAdam的入侵檢測方法。首先,該方法構建基于單層門控循環單元(Gate Recurrent Unit,GRU)的入侵檢測模型來節省訓練時間;然后,采用FedAdam方法訓練入侵檢測模型,在提高模型的訓練速度的同時保護了客戶端隱私數據;最后,在TON_IoT數據集上進行仿真。實驗結果表明:本文提出的方法在保護數據隱私的同時,能夠快速縮短訓練時間并取得良好的入侵檢測效果。
門控循環單元(Gate Recurrent Unit,GRU)是一種循環神經網絡(Recurrent Neural Network,RNN),其網絡結構如圖1所示。
圖1 GRU結構圖
GRU保留傳統RNN處理時間序列數據的能力,并解決傳統RNN中長期依賴性的問題。GRU簡化和調整長短期記憶(Long Short Term Memory,LSTM)的結構,減少參數數量,縮短訓練時間[15]。GRU參數的計算過程如式(1)~(4)所示。
Rt=σ(XtWxr+Ht-1Whr+br)
(1)
Zt=σ(XtWxz+Ht-1Whz+bz)
(2)
(3)
(4)
其中,Ht-1為上一時刻的系統狀態,Xt為當前時刻的輸入,Ht為t時刻輸出的狀態向量,σ為Sigmoid函數,⊙為點乘。Wxr、Whr、Wxz、Whz、Wxh和Whh為神經網絡參數矩陣,br、bz和bh為偏置。
在集中式學習中,每個客戶端上傳數據到服務器來訓練入侵檢測模型;而聯邦學習模式中每個客戶端使用本地數據集來訓練一個具有相同結構的本地模型,向服務器傳輸的是客戶端本地模型參數,服務器聚合參與本地模型訓練的所有參數,生成全局模型并傳輸給所有客戶端[[16-17]。集中式學習與聯邦學習二者區別如圖2所示。
圖2 集中式學習與聯邦學習
Adam算法為每個參數維護一個自適應學習率,有助于在訓練過程中更好地處理不同參數的梯度變化,從而更有效地優化參數[18],其具體計算過程如算法1所示。
基于GRU-FedAdam的入侵檢測方法整體流程如圖3所示。
圖3 整體流程圖
首先,每個客戶端獲取數據,服務端初始化全局入侵檢測模型并將其分發給各個客戶端;其次,各個客戶端根據本地所擁有的數據集和Adam算法來訓練本地入侵檢測模型,并將訓練后的模型參數上傳到服務器端;服務器進行參數聚合并將全局入侵檢測模型分發給客戶端;最后,達到通信輪次后,各個客戶端得到最終的本地入侵檢測模型。
本文使用的入侵檢測模型如圖4所示。
圖4 入侵檢測模型結構圖
該模型由一個GRU層、一個Flatten層和一個Linear層組成,設x為模型輸入的特征向量,模型的計算過程如下:
(1)x經過GRU塊的計算,最終得到輸出的向量h,如式(5)所示:
h=GRU(x)
(5)
(2)h經過Flatten層實現降維,得到了μ,滿足了之后全連接層的輸入要求,如式(6)所示:
μ=Flatten(h)
(6)
(3)μ經過全連接層輸出τ,τ的大小為分類結果的類別數,如式(7)所示:
τ=FC(μ)
(7)
(4)τ最后經過Softmax層得到了模型的分類結果,如式(8)所示:
(8)
算法2: FedAdamInput: D//D為工業物聯網入侵檢測數據集Output: θKG 1:initialize θ0G2:for each round k=1,…,K do3: m←max(?Nf」,1)4: Ck←random subset of m clients5: for each client Cki∈Ckin parallel do6: θki(0)←θk-1G7: θki(τIki)←ClientUpdate(θki(0),τ,Dki,tr)8: end for9: θkG←∑mi=1nCkinθki(τIki),n=∑mi=1nCki10:end for11:return θKG12:function ClientUpdate(θki(0))13: Iki←「nCkiB?14: for each local epoch 1,…,τ do15: for each iteration 1,…,Iki do16: θki←Adam(θki)17: end for18: end for19: return θki(τIki)20:end function
利用FedAdam方法訓練入侵檢測模型的步驟如下:
(9)
在達到通信輪次前,不斷重復步驟(2)~(4),將最終得到的全局入侵檢測模型分發給客戶端,最終每個客戶端得到本地最終的入侵檢測模型。
(1)實驗平臺及評價指標
義憤填膺的高潮再輸入關鍵詞“老來俏 火鍋店”搜索,又搜索出不少帖子,才知道老太婆叫勞大翠。這些帖子有褒有貶。褒的帖子,有“老來俏火鍋店”榮獲“華人地區十佳連鎖餐飲企業”稱號的,有報道勞大翠慈善捐款熱心公益事業的,有出巨資冠名舉辦“老來俏杯青年歌手大獎賽”的;貶的帖子,有說從他們那里吃出菜青蟲長頭發的,有說火鍋底料回收后再賣給顧客的,有以曾經的員工身份揭露他們使用地溝油的……
實驗計算機配置為16 GB內存,i5-12500H 3.1 GHz處理器,操作系統為Windows 11,編程語言為Python,框架搭建使用PyTorch平臺完成。
本文使用準確率(Accuracy)、精確率(Precision)、召回率(Recall)和F1分數(F1-score)作為評價指標[19]。
(2)數據集描述和預處理
本文在TON_IoT數據集[20]上進行了實驗,該數據集可用于評估利用機器學習和深度學習模型進行IIoT入侵檢測的準確性。標簽為1類正常標簽和7類異常標簽。本文使用了其中的20 000個數據,數據分布如表1所示。
表1 實驗的數據集內容
本文將每個客戶端所擁有的數據中每類標簽的80%劃分為訓練集,20%劃分為測試集。模型的訓練和測試都是在客戶端本地進行的。
為加快模型訓練速度,提高分類準確率[21],需要將特征數據標準化,其方法如式(10)所示:
(10)
其中μ表示均值,σ表示標準差。
本文在實驗時,相關參數初始值設置如表2所示。
表2 實驗設置
實驗一采用f=1,K=2和τ=1的參數設置,比較不同入侵檢測模型在其訓練后的準確率、訓練時間和驗證時間。每個模型的具體結構如表3所示,實驗結果如表4所示。
表4 不同入侵檢測模型的實驗結果
在使用FedAdam算法的訓練過程中,基于單層GRU的入侵檢測模型最終獲得了0.988 4的準確率和82.22 s的訓練時間。訓練時間比兩層GRU和單層LSTM分別減少34 s和4 s,說明本文所使用的入侵檢測模型在減少訓練時間的同時擁有良好的特征提取能力。
(2)實驗二
實驗二采用了f=1,K=1和τ=1的參數設置,統一使用本文提出的入侵檢測模型。比較在參與聯邦訓練的不同比例下,模型在測試集上的精確率(Precision)、召回率(Recall)和F1分數(F1-score),實驗結果如表5所示。
表5 不同設置下的對比結果
由表5可以看出,比例為1較比例為0.5的情況下各項指標高0.03以上。這表明當參與訓練客戶端的比例減少,全局入侵檢測模型沒有充分學習到所有客戶端上數據的特征,導致檢測效果下降。
(3)實驗三
實驗三將本文所提出的方法與線性回歸(Linear Regression,LR)、樸素貝葉斯(Naive Bayes,NB)、隨機森林(Random Forest,RF)、K-近鄰(K-Nearest Neighbors,KNN)、支持向量機(Support Vector Machine,SVM)算法以及參考文獻[22]所提方法做比較,實驗結果如表6所示。
表6 與其他方法的對比結果
由表6可以看出,本文方法在入侵檢測效果上優于機器學習算法,與文獻[22]的入侵檢測方法實驗結果接近;同時,通過只傳輸模型參數既可以保護客戶端的數據隱私,也可以減少網絡帶寬需求。
(4)實驗四
實驗四采用了f=1,K=10和τ=1的參數設置,統一使用本文提出的入侵檢測模型。比較SGD和Adam優化算法在聯邦學習訓練中的損失值和準確率,實驗結果如圖5和圖6所示。
圖5 不同優化算法的損失值
圖6 不同優化算法的準確率
可以看出,隨著通信輪次的增加,客戶端本地訓練中采用Adam優化算法比SGD算法收斂速度更快、獲得的準確率更高。Adam算法采用了自適應學習率,可以提高收斂速度和獲得更好的優化效果。
本文提出一種基于GRU-FedAdam的入侵檢測方法,以解決工業物聯網中的入侵檢測方法存在數據隱私泄露和訓練時間較長的問題。本文構建基于單層GRU的入侵檢測模型,利用FedAdam協作訓練入侵檢測模型,可以保護數據隱私和提高模型的訓練速度。通過實驗驗證,使用基于單層GRU的入侵檢測模型節約了訓練時間,使用Adam方法加快了收斂速度和獲得更好的優化效果。本文方法的入侵檢測效果接近最新的入侵檢測方法。但是隨著參與訓練的客戶端比例下降,本文方法無法充分學習到數據特征,存在檢測效果下降等問題。
后繼工作將利用差分隱私和同態加密技術來抵御推理攻擊,進一步提升本文方法的魯棒性。此外,通信延遲、設備算力等對客戶端實時上傳本地參數數據存在重要影響,甚至降低聯邦學習的訓練效果,本文將進一步針對上述問題開展研究并提出有效解決方案。