杭夢鑫,陳 偉,張仁杰
(南京郵電大學計算機學院,南京 210023)
(*通信作者電子郵箱chenwei@njupt.edu.cn)
隨著網絡科技的快速發展,網絡涉及人類社會的各個方面,網絡安全問題也越來越受到人們的關注。《2018 年中國互聯網安全報告》指出,2018 年網宿云安全平臺共監測攔截了75.46億次有針對性的爬蟲攻擊事件,9 578.88億次分布式拒絕服務(Distributed Denial of Service,DDoS)攻擊事件,9.53億次Web應用攻擊,相較2017年呈翻倍式增長。2018年思科發布的新的視覺網絡指數(Visual Networking Index,VNI)[1]中預測,到2022 年,互聯網連接設備預計將達到285 億,約為全球人口的3倍,全球互聯網用戶將占全球人口的60%,全球IP流量將超過互聯網元年(1984 年)到2016 年底這32 年間的流量總和,將增加三倍以上,每年將產生4.8 ZB 的網絡流量。因此,維持網絡的安全運行需要引起重視。異常檢測是網絡安全的研究重點,其中網絡流量異常檢測通過對流量數據的分析,可以檢測出網絡中是否存在攻擊。
但是傳統的機器學習方法對特征的依賴度很大,良好的特征取決于研究者的經驗,選取不同的特征對檢測的準確度有很大的影響。而卷積神經網絡(Convolutional Neural Network,CNN)具備良好的表征學習能力,能自主學習特征,實現低級特征到高級特征的抽象提取。因此,近年來CNN 常被應用于異常流量檢測。
本文對傳統的CNN 結構進行了改進,提出了一種基于改進的一維卷積神經網絡(Improved one-Dimentional Convolutional Neural Network,ICNN-1D)的異常流量檢測方法(Abnormal Flow detection Method based on ICNN-1D,AFMICNN-1D),在流量檢測中,無須人為設置關鍵參數與提取特征。傳統的CNN 大多用于圖像識別等,因為圖像中每個相鄰的像素之間關系緊密,可以通過池化操作獲取圖像的邊緣信息和背景信息,但相鄰的流量特征之間并沒有相關性,池化操作反而會損失信息。因此本文ICNN-1D在每一次卷積之后沒有池化操作,以盡可能保留完整的流量信息;另外,ICNN-1D使用全局池化(Global Pooling,GP)和一層全連接來代替傳統多層全連接分類操作,能大大減少訓練參數,縮短訓練時間,減少過擬合現象的發生。
目前,已有許多機器學習算法應用于異常流量檢測,利用不同的機器學習算法降低誤報率,檢測異常的網絡行為。入侵檢測技術是計算機網絡安全的重要組成部分,1980 年由Anderson[2]首次提出。Shon 等[3]提出了一種將遺傳算法和支持向量機(Support Vector Machine,SVM)相結合的異常檢測分類器,對真實環境數據集有廣泛的適應性;趙夫群[4]提出了一種用于網絡入侵檢測的最小二乘支持向量機(Least Squares Support Vector Machine,LSSVM);Jha 等[5]使用馬爾可夫(Markov)模型研究網絡異常檢測;Bamakan等[6]使用支持向量分類(Support Vector Classification,SVC)對網絡入侵進行分類;Pan 等[7]提出了一種混合機器學習技術,它結合了k 近鄰(k-Nearest Neighbor,kNN)和SVM 來檢測攻擊。傳統的機器學習方法在網絡流量異常檢測中十分有效,并且有一定的準確率,但實驗過程中的調優較為困難,而且需要人為選擇特征,構造樣本特征效率低,檢測性能取決于參數調優和選擇特征的質量。
為了解決上述問題,研究人員引入了深度學習技術。近幾年來,深度學習廣泛應用于語音識別、圖像識別和自然語言處理領域。由于深度學習可以從原始數據中提取高級特征,因此許多領域都在積極利用深度學習方法,部分學者也開始將深度學習方法與異常檢測領域相結合。Salama 等[8]引入深度置信網絡(Deep Belief Network,DBN)、深度神經網絡(Deep Neural Network,DNN)用于提取特征,利用SVM 作為分類器對流量進行分類;Alom 等[9]使用受限玻爾茲曼機(Restricted Boltzmann Machine,RBM)訓練了一個深度置信網絡,在NSL-KDD訓練數據上具有97.5%的準確率;Javaid等[10]結合稀疏自編碼器(Sparse Autoencoder)的編碼層(用于特征提取)和softmax 函數(用于類的概率估計),設計了一種“自學習”分類機制對NSL-KDD 進行分類;Khan 等[11-12]利用基于CNN 的殘差網絡(ResNet)和GoogleNet 模型進行惡意軟件檢測;Kumar等[13]通過建立CNN模型,檢測基于模式識別的惡意代碼;賈凡等[14]實現了一種基于CNN 的入侵檢測算法;Bontemps 等[15]提出了一個基于長短期記憶(Long Short-Term Memory,LSTM)網絡的異常檢測系統,報告了該方法中的β參數變化會引起預測錯誤和虛假警報;王偉[16]針對傳統基于機器學習方法的異常檢測需要手動提取特征的問題,將流量轉化為灰度圖,利用深度學習的方法實現了流量特征的自動提取和流量識別;何文河等[17]提出了一種改進的反向傳播(Back Propagation,BP)神經網絡算法用于異常檢測,但是收斂速度很慢。
基于傳統機器學習的異常檢測方法通常需要人工選擇流量特征,而特征工程一般都要求研究者有相關的專業背景,同時也應具備較為豐富的機器學習經驗。特征選擇的優秀與否,會直接影響到最終檢測的性能。另外,基于深度學習的方法雖然在樣本識別能力和性能上有了一定的提升,但是在網絡訓練過程中會存在過擬合問題,且參數眾多,訓練時間較長,檢測精度和效率都需要進一步提升。
CNN 是一種經典的深度學習算法,與其他深度學習算法相比,它的優勢就是在于它共享相同的卷積核,能明顯減少參數數量和計算時間。因此,本文提出了一種基于CNN 的異常流量檢測方法,將原始網絡流量特征經過預處理后作為輸入數據進行訓練。此外,與其他基于CNN 的異常流量檢測方法不同,本文方法在卷積之后不再采用池化操作。實驗結果表明,與現有池化操作的方法相比,本文方法具有較好的檢測效果。
傳統的CNN 模型結構是“卷積-池化-全連接”。在卷積神經網絡中,一個卷積層可以包含很多個卷積面。假設輸入是一個M×N的圖像,用矩陣x表示,卷積核是大小為m×n的矩陣w,偏置是b,卷積后結果中的每一個元素就是圖像中對應卷積核大小的區域與卷積核進行內積加上偏置得到的,那么:

其中:*代表卷積;g(·)代表激活函數。一般情況,g(·)為校正線性單元(Rectified Linear Unit,ReLU):

在卷積神經網絡中,下采樣過程也稱為池化過程,主要有兩種池化操作:平均池化和最大池化。平均池化公式如下:

其中:C代表卷積面;λ、τ代表對卷積面進行塊大小為λ*τ的下采樣。
經過多層卷積-池化之后,通過全連接層對抽象出的高級特征進行分類:

其中:W代表全連接層權重;X代表經過卷積池化的特征圖(feature map)轉化為向量之后作為全連接層的輸入;b為全連接層的偏置。經過計算之后,softmax 函數將結果的每一個元素值限制在[0,1]內,且和為1。
池化層也叫下采樣或欠采樣。池化操作的目的是特征降維,壓縮數據和參數數量,避免發生過擬合。對于圖像而言,它將輸入的圖像分為大小相同的若干個矩陣區域,然后對每一個矩陣區域求其最大值(最大池化)或者平均值(平均池化),從而減小了數據的空間大小,參數量和計算量也會減少,避免了過擬合。圖像經過最大池化提取到紋理信息,經過平均池化可以提取到背景信息,但流量特征進行池化反而會損失信息,影響檢測性能。
在傳統的卷積神經網絡中,卷積層通過池化(一般為最大池化)后,通常會將結果壓平,送入兩個及以上的全連接層,再使用softmax 函數計算樣本關于每個類別的概率值。樣本的類別即為求得的最大概率值。但是,多個全連接層面臨一個問題:參數眾多。例如,將特征向量送入網絡模型,在經過最后一次卷積之后,得到一個W×H×C的特征圖。設定全連接層神經元個數為M,那么全連接層共需要W×H×C×M個參數。這使得整個網絡參數多,計算速度慢,參數更新復雜,效率低下,甚至造成過擬合。
Lin 等[18]提出了一種新型的深度網絡結構“網中網”(Network In Network,NIN),提出了一種新策略,即在卷積后采用全局平均池化得出分類結果。經過多次卷積之后最終得到與樣本類別數相同個數的特征圖(W×H×Label),其中Label代表樣本類別數。對每一個特征圖求均值,最終得到1× 1×Label的矩陣,轉化為一維向量之后得到該樣本數據的分類結果。簡而言之,全局池化就是使得池化的滑動窗口大小和特征圖的大小相等,一個特征圖輸出一個值。全局池化相較全連接層的優點在于全局池化沒有參數設置,只需求整個特征圖的均值或最大值,極大縮短了訓練時間;同時,也不需要根據優化算法進行調參,能很好地避免過擬合的現象發生;另外,全局池化能夠匯聚空間信息,所以對輸入的空間轉換具有更好的魯棒性。全局池化分為全局平均池化(Global Average Pooling,GAP)和全局最大池化(Global Max Pooling,GMP),GMP 只提取每個特征圖中最重要的區域,而GAP 會對特征圖中每一個區域進行考慮,求均值。
異常檢測是網絡入侵檢測的主要研究方向。異常流量是在網絡中偏移正常流量的情形,正常流量會隨著網絡的環境、用戶的操作發生變化,因此,異常流量要根據同一網絡狀態下的正常流量作出判斷,尋找出不正常的預期行為。在流量檢測中,異常流量的某些特征值必定會與正常流量的特征值有區別。例如,在CIC-IDS-2017 數據集中,分布式拒絕服務(Distributed Denial of Service,DDoS)攻 擊 的Bwd Packet Length Std 特征與其他類別流量相比具有較大差異。正常流量與其他攻擊流量(除拒絕服務攻擊(Denial of Service,DoS)該特征值大部分為0,而DDoS 攻擊流量具有較大的數值。由此可見,每一種攻擊的某些特征都會與其他攻擊及正常流量有區別。因此,通過對流量特征進行不斷的學習,就可以對網絡流量進行分類,識別出正異常流量。
本文提出了一種基于改進的一維卷積神經網絡的異常流量檢測方法(AFM-ICNN-1D)。輸入數據是流量特征向量,每個特征之間不具備相關性,多次池化會造成局部信息的損失,影響檢測的效果,因此,本文方法在卷積之后不采用池化操作;另外,在全連接層之前加入全局池化層,并且采用了跨層聚合,減少參數,縮減訓練時間。實驗結果表明,該方法可以快速、有效地識別出日常的網絡攻擊。
考慮到對流量特征進行池化會造成信息損失,同時傳統CNN 的全連接層因參數眾多而導致訓練速度慢,也會產生過擬合的問題,本文方法除去了傳統CNN 結構中卷積之后的池化操作,并采用前文提到的全局池化方法來緩解多層全連接分類參數眾多、易過擬合的問題。本文ICNN-1D 具有如下特點:
1)每次卷積后不做池化操作,保存最后一層卷積得到的特征圖;
2)采用跨層聚合的思想,多次卷積之后的結果分別進行全局平均池化和全局最大池化,將得到的兩個結果通過keras中的concatenate方法進行合并,重構得到一個特征向量;
3)使用全連接層結合softmax得到分類結果,與真實值比較計算損失值,通過Adam 優化算法,迭代更新權值和偏置,直至收斂。
AFM-ICNN-1D 的整體結構如圖1 所示,主要包含3 個步驟:
步驟1 數據預處理。此步驟主要是標準化數據值,由于特征值的數量級不一致,會影響檢測性能及分類結果,所以將每個特征取值范圍映射到[0,1]區間。
算法1 數據預處理算法。


步驟2 訓練。根據最后預測的結果與真實值計算損失,通過反向傳播不斷迭代更新參數直至收斂。另外,在訓練過程中利用先驗經驗結合實驗結果修改一些超參數以提高檢測性能,獲得較高的準確率和召回率。
ICNN-1D 包含2個卷積層(conv1d1、conv1d2),2個全局池化層(gap1、gmp1)和1 個全連接層dense1。為了網絡具備適度的稀疏性,使用ReLU 作為激活函數,在全局池化結果合并后使用的dropout 按一定概率暫時將一些神經元從網絡中移除,避免過擬合現象的發生。
算法2 AFM-ICNN-1D的檢測分類算法。

每一條網絡流量記錄的特征值構成一維向量,因此本文采用一維卷積神經網絡。
在訓練階段,首先,數據標準化之后,將訓練集送入ICNN-1D 進行訓練。每次訓練從訓練集中隨機選取一個固定大小的塊(batch)作為輸入。輸入數據維度為特征值個數(n_features),通道(channel)為單通道。
其次,input經過conv1d1、conv1d2 兩次卷積,利用卷積層對數據進行特征提取。每次卷積的輸出結果在激活函數ReLU 的作用下作為下一層的輸入數據。卷積后特征圖中每個元素運算公式定義為:

其中:i代表卷積后特征圖元素的位置,j代表該層卷積的卷積核序列號,c代表卷積核長度,m代表特征圖的長度,b為偏置,g()為式(2)的ReLU函數。
然后保存卷積結果,分別送入全局平均池化和全局最大池化(gmp1、gap1),得到1×k個特征圖,k表示保存卷積結果中特征圖的個數。

其中:i代表第i個特征圖,max()、avg()分別對該特征圖中的數值求最大和平均。
在全局池化后合并結果并壓平,得到2×k維數據集合進行分類操作,輸出該流量在各個類別概率值,概率最大值代表的類別即為該流量在AFM-ICNN-1D 中的預測類別。最后,根據真實值與預測值計算損失誤差,迭代更新參數,直至收斂,得出一個訓練模型。
步驟3 測試。在進行訓練(步驟2)之后得到一個檢測模型,使用測試數據集來檢測其性能,根據真實值與預測值計算出評估指標值,判斷性能是否優秀。如果測試結果表明該性能較優,則停止訓練,AFM-ICNN-1D 由此得到;否則,將繼續步驟2,重復訓練。

圖1 AFM-ICNN-1D結構Fig.1 Structure of AFM-ICNN-1D
本文方法使用ICNN-1D 構建模型,能有效地避免人工選擇特征的繁瑣,直接將數據集每條記錄預處理后的原始特征作為模型輸入,讓網絡自主提取。由于流量特征之間不具備關聯性,卷積之后不使用池化操作很好地保留了流量的局部特征。在分類階段,ICNN-1D沒有采用多層全連接進行分類,而是在全連接之前跨層聚合全局池化的結果,再使用一層全連接。與傳統基于CNN 的方法相比,AFM-ICNN-1D 能大大減少訓練參數,縮短訓練時間。
本文實驗使用的數據集是CIC-IDS-2017,該數據集包含了正常流量和常見攻擊。數據捕獲從2017 年7 月3 日(星期一)上午9 點開始,截止到2017 年7 月7 日(星期五)下午5 點。星期一只捕獲到正常流量,星期二至星期五捕獲到9 種攻擊,分別為暴力破解FTP(FTP-Parator)、暴力破解SSH(SSHParator)、心臟出血漏洞(Heartbleed)、Web 攻擊(Web Attack)、滲透(Infiltration)、僵尸網絡(Botnet)、端口掃描攻擊(PortScans)、DoS 和DDoS。數據集中每一條記錄均有78 個特征值。由于采用5天的數據量較多,因此,選取周一50%的正常流量,以及周二至周五捕獲到的異常流量作為本文實驗的數據集。
在特征向量中,不同的特征一般具有不同的量綱和數量級。這種情況會造成每個樣本不同特征值之間大小差異很大,從而影響到網絡模型性能,數量級大的特征會明顯影響到分類的結果。例如,在本文采用的數據集中,Flow Duration 特征值范圍在[-1,119 999 993],FwdPacket Length Max 的特征值范圍在[0,23 360],這兩個特征具有不同的數量級。因此,需要采用標準化處理,消除數量級不同對實驗結果產生的影響,同時加快計算處理。
本文實驗采用了去均值方差歸一化處理方式,使用sklearn 中StandardScaler 模塊對數據進行預處理,將數據歸一化到均值為0、方差為1的正態分布的正負數之間。均值方差歸一化計算公式如式(8)所示。

式中:X代表每一組特征值,Xmean代表該組特征的平均值,σ代表該組特征的標準差。
本文實驗訓練和測試均在Windows 系統環境下進行,使用keras搭建網絡模型,采用Tensorflow-CPU進行計算,實現本文提到的AFM-ICNN-1D。
在機器學習或深度學習中,研究者需要在學習之前根據自己的經驗和專業知識設置一些參數,選擇一組相對最優的超參數訓練出模型,這些參數不會根據優化算法進行迭代更新,稱為超參數。
經過多次實驗調整參數,本實驗選擇了以下超參數訓練出一維卷積神經網絡:
1)學習率:它決定著損失函數(loss)能否在合適的時間收斂到最小值。因為過小的學習率會造成收斂速度十分緩慢,而過大的學習率可能造成梯度在最小值附近來回震蕩,從而無法達到收斂。經過多次小范圍的調整,本文實驗的學習率設置為0.01時,網絡效率較優。
2)mini-batch:假設訓練集含有100 條數據,將這100 條數據分成10 個塊,那么其中每一個塊稱之為一個mini-batch。模型訓練中,每次取出一個mini-batch,計算損失,根據優化算法,更新網絡權重和偏置。如果mini-batch 的值太小,則無法運用到矩陣庫的快速運算,從而學習變得緩慢;如果值選擇太大,不能很好地更新權重。因此,需要選擇一個折中的值,使得運算速率、權重更新最優化。本實驗中mini-batch 設置為100。
3)epoch:網絡每次訓練完全部訓練集稱為一個epoch 周期。如果epoch 設置太小,會使得網絡沒有充足的數據和時間去訓練得到最優參數;如果epoch 設置過大,會使得網絡訓練過擬合,造成測試準確率較低。由于本文實驗訓練數據較多,epoch設置為5,訓練效果較好。
一般來說,為了得到較優的準確率,研究者一般會將網絡模型設計得較深,以得到更高級的特征。但層數越深,參數越多。從理論上說,參數越多,模型擬合程度越好,但也越容易出現過擬合。根據多次實驗,本文實驗的卷積核大小、卷積核個數、卷積層數分別設置為3、64、2。
本實驗采用精確率(precision)、召回率(recall)、F1-Score及ROC(Receiver Operating Characteristic)曲線來作為評估性能的指標。
混淆矩陣是評估指標,也是本文采用的指標的基礎,通過混淆矩陣計算出4 個基礎指標:真正類(True Positive,TP)代表被正確分類的正例數量;假負類(False Negative,FN)代表將正例錯分為負例的數量;假正類(False Positive,FP)代表將負例錯分為正例的數量;真負類(True Negative,TN)代表正確分類的負例數量。

表1 ICNN-1D結構與參數Tab.1 Structure and parameters of ICNN-1D
在混淆矩陣計算出基礎指標后,可以獲得本文所采用的4個指標。
精準率P即分類結果預測為正例的樣本中實際為正例的比例。計算如下:

召回率R即真實值為正例中預測正確的比例。計算如下:

F1-Score 是綜合精確率和召回率兩個指標所產生的值,它的范圍是[0,1],1 代表性能最好,0 代表性能最差。計算如下:

ROC 曲線是由真陽性率(True Positive Rate,TPR)和假陽性率(False Positive Rate,FPR)繪制而成,FPR 和TPR 分別為x、y軸。TPR 代表在所有正例中正確分類的比重,FPR 代表在所有負例中被錯誤分為正例的比重。ROC 曲線越接近左上角,代表分類性能越好。
在訓練過程中,設置epoch 為5,損失值逐漸減少直至收斂,訓練集和驗證集F1值高達97%以上。在測試集進行分類后輸出10維的混淆矩陣,如表2、3所示,該矩陣對角線的數值為各類別樣本被預測正確的比重(精確到小數點后兩位)。表2 是有池化層的卷積神經網絡預測的結果,可以看出,幾乎每一類別預測準確率都在87%以上,DoS 和DDoS 相對相低;表3 是沒有池化操作的卷積神經網絡預測的結果,可以看出,與有池化相比,該網絡的預測準確率都達到了94%以上,效果更佳。
在CIC-IDS-2017 測試集中,每一個類別的預測精準率和召回率都在94%以上,同時,F1值幾乎都接近97%。通過這三個指標可以看出本文提出的AFM-ICNN-1D 對CIC-IDS-2017數據集的檢測性能較好。為了更加直觀地評估該方法的檢測性能,根據測試后的結果繪制了關于誤報率和召回率的曲線圖,即ROC 曲線圖。ROC 曲線越接近左上角說明分類越準確,檢測性能越優秀。從CIC-IDS-2017 測試集ROC 曲線(圖2)可以看出,本文提出的方法對CIC-IDS-2017 數據集10分類測試的ROC擬合程度較好。

表2 測試集混淆矩陣(有池化操作)Tab.2 Test set confusion matrix(with pooling)

表3 測試集混淆矩陣(無池化操作)Tab.3 Test set confusion matrix(without pooling)

圖2 CIC-IDS-2017測試集上的ROC曲線Fig.2 ROC curves on CIC-IDS-2017 test set
將AFM-ICNN-1D 與基于兩層全連接模型(dense100-dense10)異常流量檢測方法(AFM-Dense100-Dense10)進行對比,dense100-dense10具體結構與參數如表4所示。
dense100-dense10在卷積后采用兩層全連接,第一層全連接有100 個神經元,第二層神經元個數為數據集的類別個數,即10,其余超參數設置與ICNN-1D 一致。ICNN-1D 共有13 898 個參數,相較于dense100-dense10,減少了約97%。經實驗,AFM-ICNN-1D 的訓練時間需要35 min 47 s,而AFDDense100-Dense10 則需要57 min 43 s,相比較而 言,AFMICNN-1D 減少了約40%的訓練時間。與AFM-ICNN-1D 的實驗結果相比,AFM-Dense100-Dense10 的測試效果(表5)不佳,個別類別的識別準確率僅達到40%左右。可見,AFM-ICNN-1D 在時間和測試準確率方面與AFD-Dense100-Dense10 相比都具有較好的表現。

表4 dense100-dense10網絡結構與參數Tab.4 Network structure and parameters of dense100-dense10
將本文方法與kNN、隨機森林(Random Forests,RF)、ID3算法、Adaboost 迭代算法、多層感知機(Multi-Layer Perceptron,MLP)、樸素貝葉斯(Naive-Bayes)和二次判別分析(Quadratic Discriminant Analysis,QDA)在CIC-IDS-2017 數據集上進行比較,結果如表6,可以看出AFM-ICNN-1D具有較好精準率、召回率及F1值。由表6 可知,傳統機器學習中kNN、RF、ID3 算法也同樣具有較好的檢測結果,但是,為了降維和提高準確率,機器學習方法需要進行特征選擇;而本文方法在特征選擇這一方面具有較好的優越性,可以使用卷積自動將低級特征抽象為高級的特征,節省時間與人力。另外,本文方法在多分類的檢測上也具有較好的結果。

表5 測試集混淆矩陣(AFD-Dense100-Dense10)Tab.5 Test dataset confusion matrix(AFD-Dense100-Dense10)

表6 各異常流量檢測方法的P、R和F1值Tab.6 Precision,recall and F1-Score of abnormal flow detection methods
為了驗證本文方法的通用性,本文還使用了另一個網絡安全領域常用的數據集NSL-KDD 進行測試,由于NSL-KDD數據集中含有字符特征,需將其進行數值化處理。同樣,在訓練時,epoch仍為5,模型達到最優,準確率(accuracy)達到96%以上。由表7 可見,本文提出的AFM-ICNN-1D 方法對NSLKDD 數據仍然具有很好的性能。Normal、DoS、遠程用戶攻擊(Remote-to-Login,R2L)、提權攻擊(User-to-Root,U2R)和端口攻擊(Probe)這5 個類的精準率分別為95.6%、99.3%、97.4%、97.0%和93.3%,同時各個類的召回率和F1-Score 指標也都達到90%以上。由此可見,AFM-ICNN-1D 對于CICIDS-2017 和NSL-KDD 這兩個數據集的檢測性能都較好,本文的檢測方法具有較好的通用性。

表7 本文方法在NSL-KDD數據集上的P、R和F1值Tab.7 Precision,recall and F1-Score of the proposed method on NSL-KDD dataset
深度學習能從原始數據中自動抽象提取高層特征,學習樣本的內規律和層次,對海量高維數據具有較高的適應性,很好地解決了傳統機器學習中特征工程的問題,因此本文提出了基于改進一維CNN 的異常流量檢測方法AFM-ICNN-1D。本文方法與基于傳統CNN 結構的方法區別在于未采用卷積后的池化操作,另外,在全連接層前使用全局池化,并利用跨層聚合將結果作為全連接層輸入。實驗結果表明,本文的AFM-ICNN-1D 方法具有良好的檢測性能,與基于兩層全連接模型的檢測方法相比,該方法的參數量更少,且訓練時間較短。
將來仍有兩項工作要做:首先,需要提高檢測精度及方法的泛化能力,嘗試修改CNN 模型的結構以達到目標;其次,由于檢測時間也是異常流量檢測的關鍵,因此在提高檢測精度的同時還應強調該方法需要滿足檢測時間的要求。此外,還將考慮如何將該方法運用到在線流量檢測中。