李佳
摘要:深度學習是機器學習研究中的一個新的領域,在入侵檢測領域有了飛速發展。本文討論了一種基于GRU序列的攻擊趨勢預測技術,將深度學習技術更加方便的應用于實際生產。
關鍵詞:遞歸神經網絡;時間序列;編碼器;譯碼器
1 方案背景
入侵檢測領域對于機器學習的應用在近些年有了飛速提升,如人工神經網絡,遺傳算法等,都在入侵檢測領域頗見成效。但是由于機器學習方法存在很多局限性,使得他無法面對多樣化的入侵手段。需要對學習方法有高要求,才能應對入侵特征的自動提取和分析。深度學習在處理復雜數據時,有突出的識別能力,是由于應用了高度非線性結構。同時,深度學習算法也由于并行計算硬件設施的高速發展,有了更強大的硬件能力。借助合理的網絡結構,可以對深度神經網絡的參數量進行控制,使得深度神經網絡即能保證網絡性能,也能降低運行成本。
2 需求描述
2.1 技術關鍵點
RNN遞歸神經網絡(recurrent neural network),是近年來非常熱門的一類神經網絡模型,簡單來說就是每一個隱含層的計算結果都與當前輸入以及上一次的隱含層結果相關,是可以模擬時序結構的神經網絡。LSTM(Long Short-Term Memory),GRU(Gated Recurrent Unit)都是RNN的變型。
時間序列是指按時間先后順序分布的一列同一統計指標的數據集,這樣的序列可能呈現一定的季節性變動和固定趨勢。時間序列的預測分析是指利用過去一段時間內序列的特征來預測未來一段時間內該序列的走向。和回歸分析模型的預測不同,時間序列模型時依賴于序列發生的先后順序。
Encoder-decoder自編碼器由編碼器(Encoder)和解碼器(decoder)兩部分構成,編碼器將輸入信息變換為中間的編碼信息C,而解碼器則從中間信息C重建目標序列。Encoder/Decoder框架在文本處理領域應用廣泛,例如在機器翻譯任務中,RNN編碼器將輸入序列進行編碼,輸出固定長度的向量,該向量被看做是輸入文本的語義表達C。而另一個RNN解碼器則根據該中間語義表示C產生目標語言的文本。
2.2 問題分析
Sequence to Sequence模型框架分為編碼和解碼兩個階段,每個階段都采用了可以處理時序序列的RNN類模型,以此建立了一個能直接處理變長輸入與變長輸出的結構,實現了不固定長度的多對多任務。
3 解決方案
本文提出基于GRU序列自編碼的攻擊趨勢預測技術,能夠節省時間和資源,對共享的環境和情報也有更好的模擬。對變長的多對多模型可以使得時間序列的預測分析更加靈活,可以應對多種情況。另外在預測分析中加入輔助信息聯合訓練,也使得模型對問題的模擬更綜合全面。
3.1 方案思路
現有的對于同一個環境下的多臺機器或者多個資產,如果每個個體單獨應用模型進行預測分析,會消耗過多的時間和機器資源,并且這些個體(資產等)很可能共享同一部分環境因素。為了能夠更加節省時間和資源,該模型整合分析相同時期的病毒情報和攻擊情報,綜合考慮多個個體的聯合模型,能夠更加有效的解約時間和資源成本,對共享的環境和情報也有更好的模擬。
隨著多個體模型的引入,需要對經典RNN結構進行優化,雖然經典的RNN結構也能實現等長/同步的多對多模型,但是相等長度的假設限制了它的應用場景。采用Encoder-decoder架構可以更靈活的將提煉/編碼的輸入信息,反饋到解碼的輸出部分,比如teaching force,peek以及attention等機制。變長的多對多模型可以更靈活的引入輔助信息(如特定的病毒情報,攻擊情報),參與中間過程的計算,與主模型序列的參數聯合訓練。
最后,在Sequence to Sequence模型框架的編碼和解碼兩個階段,都采用了可以處理時序序列的RNN類模型,以此建立了一個能直接處理變長輸入與變長輸出的結構,實現了不固定長度的多對多任務,變長的多對多模型中靈活的引入輔助信息(如特定的病毒情報,攻擊情報),參與中間過程的計算,與主模型序列的參數聯合訓練。
3.2 方案驗證
經過分析,為了得到更好的攻擊預測模型,需要在Sequence to Sequence模型框架的編碼和解碼兩個階段,采用可處理時序蓄力的RNN類模型,也就是GRU模型。這樣,模型可以直接處理變長輸出和變長輸出的結構,滿足特定場景下,不固定長度的多對多任務。同時引入特定的病毒情報或者攻擊情報作為輔助信息,參與中間過程的計算,能夠使得模型訓練的結果,更加貼近生產環境,模型結果更加準確。
具體流程:
步驟1:提取t時刻n個主體的狀態量Xt。
步驟2:將t時刻n個主體的狀態量輸入編碼器,編碼器的RNN接受輸入的n個主體狀態量,最終編碼輸出編碼向量C,所有神經元的隱藏狀態h。
步驟3:輸入輔助信息S,構建輔助信息S屬性向量。
步驟4:編碼向量C與輔助信息S屬性向量合并成合并向量CS。
步驟5:在解碼器中輸入上一個神經元的隱藏層向量 S1、S2、…、…、Sn,上一個神經元的輸出,當前的輸入合并向量CS。
步驟6:解碼器輸出t+1時刻n個主體的狀態Xt+1。
編碼器
輸入:t時刻n個主體的狀態
輸出:編碼向量C,隱向量H(該隱向量將傳遞給解碼器的神經網絡)
解碼器(每單元)
輸入包含三個部分,分別為編碼向量C(此處可以有多種組合機制,如teaching force,peek以及attention等),第二部分是解碼器前一個單元預測輸出的向量(在預測階段,在訓練階段也可使用真實的標簽或是隨機選取真實值/預測值),第三部分是輔助情報信息S。
輸出:t+1時刻n個主體的狀態的預測值
4.總結
本文主要討論了一種基于GRU序列自編碼的攻擊趨勢預測技術,使深度學習在實際工作中發揮實際的效用。本文討論了基于深度學習和神經遞歸網絡在現有環境中的使用,在此基礎上,提出了基于GRU序列,采用Encoder-decoder架構的優化改進方案,并進行了介紹和驗證。