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