劉 祥,李高明,李林陽(yáng)
(武警工程大學(xué) 基礎(chǔ)部,陜西 西安 710086)
入侵檢測(cè)技術(shù)研究由JamsP.Anderson首次提出[1]。W.T.Tenr在1986年設(shè)計(jì)出第一款入侵檢測(cè)系統(tǒng)。然而,隨著大數(shù)據(jù)時(shí)代的到來(lái),傳統(tǒng)入侵檢測(cè)系統(tǒng)存在自適應(yīng)能力差、漏報(bào)率、誤報(bào)率高等缺陷。W.Lee和Stolfo首次將數(shù)據(jù)挖掘技術(shù)應(yīng)用到入侵檢測(cè)領(lǐng)域,隨著人工智能的發(fā)展,人工智能算法應(yīng)用于入侵檢測(cè)逐漸成為研究的熱點(diǎn)。
支持向量機(jī)[2]是基于VC維和結(jié)構(gòu)風(fēng)險(xiǎn)最小理論提出的一種機(jī)器學(xué)習(xí)方法,主要有以下優(yōu)點(diǎn):(1)小數(shù)據(jù)集,泛化能力強(qiáng);(2)可以有效避免“維數(shù)災(zāi)難”;(3)引入核函數(shù),解決非線性分類問(wèn)題。因其良好的性能,它被廣泛應(yīng)用于各領(lǐng)域[3]。2003年饒鮮等[4]將支持向量機(jī)應(yīng)用到入侵檢測(cè)領(lǐng)域。自20世紀(jì)90年代以來(lái),SVM理論不斷發(fā)展和完善,越來(lái)越多的改進(jìn)模型應(yīng)用到入侵檢測(cè)中。近年來(lái),越來(lái)越多的進(jìn)化算法應(yīng)用到SVM參數(shù)優(yōu)化問(wèn)題中,標(biāo)準(zhǔn)的粒子群算法(Particle Swarm Optimization,PSO)的思想與傳統(tǒng)進(jìn)化算法類似,最大的缺點(diǎn)是算法不能保證以概率1收斂到全局最優(yōu)甚至是局部最優(yōu)[5]。2004年,我國(guó)學(xué)者孫俊[6]提出了量子粒子群算法,因量子態(tài)的粒子可以以一定的概率出現(xiàn)在搜索空間的任何區(qū)域,因此不僅具有傳統(tǒng)粒子群的優(yōu)點(diǎn),而且具有很強(qiáng)的全局搜索能力。應(yīng)用QPSO優(yōu)化SVM,然而優(yōu)化后期種群適應(yīng)度差異小,導(dǎo)致局部收斂。2010年,XL Liu等人利用網(wǎng)格搜索算法搜索核參數(shù)和懲罰因子,由于網(wǎng)格搜索算法在全局優(yōu)化中尋找的點(diǎn)多,找到的模型泛化性能強(qiáng),耗費(fèi)了大量的計(jì)算資源。
本文主要將精英策略融入量子粒子群算法,在大范圍內(nèi)初步尋找核參數(shù)和懲罰因子。由于量子粒子群算法實(shí)現(xiàn)簡(jiǎn)單、易操作、收斂速度快、具有全局收斂性,能夠快速得到參數(shù)的大致范圍,而后通過(guò)網(wǎng)格搜索算法,基于更小精度對(duì)參數(shù)進(jìn)行細(xì)致搜索,尋找更優(yōu)質(zhì)的參數(shù)。
支持向量機(jī)是一種二分類方法,基本思想是尋找一個(gè)最優(yōu)分類超平面,使得該超平面到兩類點(diǎn)中最近點(diǎn)的距離最大。支持向量機(jī)通??煞譃榫€性可分、線性支持及非線性支持向量機(jī)3類,分別對(duì)應(yīng)線性可分、近似線性可分及線性不可分?jǐn)?shù)據(jù)集。
這里將ai*>0所對(duì)應(yīng)的點(diǎn)叫做支持向量,并用支持向量求解b*,得出決策函數(shù):
針對(duì)線性近似可分?jǐn)?shù)據(jù)集,對(duì)于每一個(gè)訓(xùn)練數(shù)據(jù)引入一個(gè)松弛變量εi,模型允許少量的點(diǎn)落在間隔邊界內(nèi)或者錯(cuò)分。此時(shí)的數(shù)學(xué)模型為:
模型的對(duì)偶形式不變,約束條件變?yōu)?≤ai≤C,C為懲罰因子,C值的大小體現(xiàn)了訓(xùn)練中對(duì)誤分類數(shù)據(jù)的重視程度。C值的大小與模型的泛化性能相關(guān),此時(shí)將ai*>0所對(duì)應(yīng)的點(diǎn)也叫做支持向量。
針對(duì)線性不可分?jǐn)?shù)據(jù)集,引入核函數(shù)思想。先通過(guò)升維將低維線性不可分?jǐn)?shù)據(jù)映射到高維可分的特征空間,需注意這個(gè)高緯空間可能是無(wú)限維。引入核函數(shù),將高維空間的內(nèi)積轉(zhuǎn)化為原始空間中的運(yùn)算,常用的核函數(shù)有高斯、多項(xiàng)式以及字符串核函數(shù)等。在給定數(shù)據(jù)集的前提下,影響SVM的泛化性能主要有懲罰因子C、核函數(shù)類型以及核函數(shù)參數(shù)3個(gè)因素,通常用高斯核函數(shù)。本文采用高斯核函數(shù),主要對(duì)核函數(shù)參數(shù)σ和懲罰因子C對(duì)模型泛化性能的影響進(jìn)行討論。優(yōu)化目標(biāo)和決策函數(shù)為:
量子粒子群算法(Quantum Particle Swarms Optimization,QPSO)是基于量子力學(xué)和粒子群算法(Particle Swarms Optimization,PSO)的一種新型種群進(jìn)化算法,不僅具有PSO算法的優(yōu)點(diǎn),而且具有全局收斂的優(yōu)點(diǎn)。文獻(xiàn)[5]對(duì)PSO算法收斂性進(jìn)行了分析,表明在收斂過(guò)程中粒子i以pi為吸引子,隨著迭代次數(shù)的增加粒子不斷接近pi,粒子收斂的前提是粒子的每一個(gè)維度都收斂到吸引子的對(duì)應(yīng)維度,式(7)是其每一維的更新:
其中,n為粒子的維度;φj(t)是0到1之間的隨機(jī)數(shù);pbestij(t)是粒子當(dāng)前最優(yōu)位;pgbestj(t)是種群當(dāng)前全局最優(yōu)粒子,實(shí)現(xiàn)了種群粒子間信息和粒子自身歷史信息的溝通;pi對(duì)種群產(chǎn)生約束作用。由于PSO算法中粒子速度有界,并沿著軌道逐步收斂,這種束縛作用使得粒子在一個(gè)有限的區(qū)域內(nèi)搜索,導(dǎo)致粒子不能保證以概率1收斂。在QPSO算法中,通過(guò)δ勢(shì)井場(chǎng)建立這種束縛作用,與PSO算法不同的是,粒子可以概率p在任何區(qū)域出現(xiàn),距離吸引子pi無(wú)窮遠(yuǎn)的地方出現(xiàn)的概率為0;QPSO的位置信息通過(guò)波函數(shù)Ψ(X,t)刻畫(huà),處于量子態(tài)的粒子滿足薛定諤方程:
其中m為粒子質(zhì)量,V(X)為粒子所在的勢(shì)場(chǎng)。
將式(9)帶入(8),得波函數(shù)滿足的微分方程:
假定粒子處于定態(tài),則粒子具有一定的能量,因此波函數(shù)為:
其中E為相應(yīng)的能量,以吸引子pi為中心p建立δ勢(shì)井場(chǎng),其勢(shì)能函數(shù)V(X)可表示為:
做坐標(biāo)變換Y=X-p,得到:
將式(9)~式(13)帶入(8),得到:
解出φ,根據(jù)波函數(shù)的物理意義,波函數(shù)模的平方即為概率密度,即:
求得概率分布函數(shù)為:
通過(guò)蒙特卡洛方法得到位置X的表達(dá)式為:
L是特征長(zhǎng)度,與質(zhì)量、普朗克常量等有關(guān);u服從0到1之間的均勻分布。在標(biāo)準(zhǔn)QPSO算法中,L具有時(shí)變性,對(duì)于第i個(gè)粒子的第j維,有:
Cj(t)是平均最優(yōu)位置,則粒子的進(jìn)化公式為:
其中,r為0到1之間的隨機(jī)數(shù);因子α叫做CE系數(shù),α大小影響算法的性能。
量子粒子群算法盡管擁有較快的收斂速度、良好的全局開(kāi)發(fā)能力,然而仍然避免不了早熟收斂問(wèn)題。本文將精英策略引入量子粒子群算法,通過(guò)精英算法每次迭代保留E個(gè)最優(yōu)粒子并生成NP-E個(gè)隨機(jī)粒子,即保留了最優(yōu)信息加快收斂。同時(shí),由于每次迭代粒子的隨機(jī)生成提高了全局開(kāi)發(fā)能力,一定程度上避免了局部收斂問(wèn)題。設(shè)NP為種群數(shù)量,E為精英數(shù)量,算法基本步驟如下。
步驟1:初始化NP個(gè)粒子;
步驟2:計(jì)算適應(yīng)度值,更新當(dāng)前粒子的最優(yōu)位置和全局最優(yōu)位置;
步驟3:根據(jù)式21)和式(22)計(jì)算吸引中心P和平均最優(yōu)位置C;
步驟4:判斷是否滿足終止條件,若未滿足終止條件,則繼續(xù)執(zhí)行;
步驟5:保留E個(gè)最優(yōu)粒子,隨機(jī)生成NP-E個(gè)粒子,返回第2步。
網(wǎng)格搜索算法是一種暴力算法,通過(guò)枚舉遍歷所有可能的情況來(lái)尋找最優(yōu)解。然而,當(dāng)不知道參數(shù)范圍或者參數(shù)范圍很大時(shí),網(wǎng)格搜索算法將消耗大量的計(jì)算資源。網(wǎng)格搜索算優(yōu)化支持向量機(jī)的思想,主要是通過(guò)預(yù)先設(shè)定精度將核參數(shù)和懲罰因子劃分為網(wǎng)格,遍歷網(wǎng)格中的點(diǎn)。交叉驗(yàn)證是一種檢驗(yàn)?zāi)P托阅艿囊环N統(tǒng)計(jì)方法,通過(guò)將訓(xùn)練集劃分為K個(gè)子集,每次訓(xùn)練用K-1個(gè)子集訓(xùn)練,1個(gè)子集測(cè)試共得到K個(gè)結(jié)果。本文在前期精英量子粒子群優(yōu)化時(shí)和網(wǎng)格搜素優(yōu)化時(shí)均利用利用3折交叉驗(yàn)證的方法。
工作原理可簡(jiǎn)述如下。
(1)將數(shù)據(jù)進(jìn)行預(yù)處理,而后數(shù)據(jù)分為訓(xùn)練集、驗(yàn)證集和測(cè)試集提取特征。在特征提取方面,本文參考前人已提取的較好的特征;訓(xùn)練集用來(lái)訓(xùn)練模型;驗(yàn)證集用來(lái)調(diào)整超參數(shù)即懲罰因子C和核參數(shù)σ。
(2)利用EQPSO算法初始化或者更新超參數(shù),參數(shù)更新時(shí)以第4步的檢測(cè)率作為適應(yīng)度值。
(3)訓(xùn)練SVM。
(4)利用驗(yàn)證集驗(yàn)證SVM模型,判斷是否滿足條件,如果滿足則進(jìn)行下一步,否則返會(huì)第2步。
(5)利用EQPSO算法選擇的參數(shù)范圍將其網(wǎng)格化。
(6)逐一枚舉參數(shù)訓(xùn)練SVM。
(7)得出最優(yōu)參數(shù),利用得到的參數(shù)訓(xùn)練SVM。
(8)利用測(cè)試集測(cè)試模型泛化性能。
目前,在入侵檢測(cè)試驗(yàn)中比較常用的數(shù)據(jù)集為KDDCUP99及其修改版NLSKDD。許多研究證明,這兩個(gè)數(shù)據(jù)集并不能代表現(xiàn)代的網(wǎng)絡(luò)入侵行為,主要存在以下缺點(diǎn):(1)訓(xùn)練數(shù)據(jù)集中存在大量冗余信息;(2)多條數(shù)據(jù)存在數(shù)據(jù)值缺失,且缺失值都是一些重要的因素;(3)數(shù)據(jù)不平衡;(4)NLSKDD盡管解決了上述問(wèn)題,然而KDDCUP99是1999年美國(guó)軍方的網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù),20年前的數(shù)據(jù)并不能代表現(xiàn)代的網(wǎng)絡(luò)流量狀態(tài)和入侵環(huán)境。因此,本文采用UNSW-NB15數(shù)據(jù)集。該數(shù)據(jù)集是澳大利亞網(wǎng)絡(luò)安全中心(Australian Centre for Cyber Security,ACCS)網(wǎng)絡(luò)實(shí)驗(yàn)室創(chuàng)建的,由真實(shí)的正常行為的網(wǎng)絡(luò)流量和綜合的攻擊行為網(wǎng)絡(luò)流量組成,包括10個(gè)標(biāo)簽,其中1個(gè)正常類標(biāo)簽和9個(gè)異常類標(biāo)簽。本文利用SVM模型解決二分類問(wèn)題,將Nomal標(biāo)簽記為1,其余異常類記為0,其中每條記錄有49個(gè)特征屬性,特征對(duì)應(yīng)的數(shù)值類型有字符型、整數(shù)型、浮點(diǎn)型和二進(jìn)制。由于本文重點(diǎn)研究?jī)?yōu)化的SVM的入侵檢測(cè)效果,故在特征選擇方面參考官網(wǎng)給出的特征選取文中采用的44個(gè)特征,分別為 dur、proto、service、state、spkts、dpkts、sbytes、dbytes、rate、sttl、dttl、sload、dload、sloss、dloss、sinpkt、dinpkt、sjit、djit、swin、stcpb、dtcpb、dwin、tcprtt、synack、ackdat、smean、dmean、trans_depth、response_body_len、ct_srv_src、ct_state_ttl、ct_dst_ltm、ct_src_dport_ltm、ct_dst_sport_ltm、ct_dst_src_ltm、is_ftp_login、ct_ftp_cmd、ct_flw_http_mthd、ct_src_ltm、ct_srv_dst、is_sm_ips_ports、attack_cat、label。其 中,前42個(gè)特征和最后一個(gè)Label特征用于訓(xùn)練;第43個(gè)特征為攻擊類型,用于數(shù)據(jù)抽樣。數(shù)據(jù)預(yù)處理主要采用字符型數(shù)據(jù)數(shù)字化、稀疏特征合并以及標(biāo)準(zhǔn)化等方法。
3.2.1 利用EQPSO優(yōu)化SVM初步尋找參數(shù)
本文主要研究懲罰因子C和高斯核參數(shù)σ,取g=1/2σ2。高斯核函數(shù)K(x,y)=exp(-g||x-y||2),將C的取值(0,1 000),g的取值(0,100)。在對(duì)SVM參數(shù)做粗略搜索時(shí),設(shè)置懲罰因子C的精度為1(即搜索域?yàn)?到1 000的整數(shù)),g的精度設(shè)置為0.1(即搜索域?yàn)?到100間隔為0.1的所有值)。系數(shù),其中tmax為最大迭代次數(shù),t為當(dāng)前代數(shù)。種群大小PN=20,精英個(gè)數(shù)E=10,tmax=200;以交叉驗(yàn)證的正確率的平均數(shù)作為適應(yīng)度值。圖1為迭代次數(shù)與適應(yīng)度的關(guān)系圖,得到的最優(yōu)參數(shù)C1=875,g1=0.3,交叉驗(yàn)證平均正確率為0.930 9。
圖1 迭代次數(shù)與適應(yīng)度關(guān)系
3.2.2 利用GS-SVM精細(xì)化尋找參數(shù)
利用上述所得到的初步最優(yōu)參數(shù),選取參數(shù)C、g范圍分別為(837,877)、(0,0.8)設(shè)置懲罰因子C的精度為0.5,g的精度設(shè)置為0.01。將在C的范圍中等分出80個(gè)點(diǎn),在g的范圍中等分出80個(gè)點(diǎn)。網(wǎng)格搜索算法遍歷6 400個(gè)點(diǎn),最終得出的結(jié)果如圖2所示。
圖2 網(wǎng)格搜索算法遍歷6400個(gè)點(diǎn)結(jié)果
最終得到最優(yōu)參數(shù)C=867、g=0.38,交叉驗(yàn)證平均正確率為0.941 0。從圖2中可知,當(dāng)懲罰因子C范圍給定在(837,877)時(shí),核參數(shù)g所選的范圍內(nèi),對(duì)適應(yīng)度并不敏感,變動(dòng)微小。C在逐步增大的過(guò)程中,適應(yīng)度值先增大后減小。
為了將本文的入侵檢測(cè)模型與量子粒子群優(yōu)化(QPSO-SVM)模型、差分進(jìn)化優(yōu)化(DE-SVM)模型、粒子群優(yōu)化(PSO-SVM)模型對(duì)比,鑒于對(duì)比的公平性,將種群數(shù)量統(tǒng)一設(shè)置為20,參考文獻(xiàn)將懲罰因子C false的范圍為(0,1 000),高斯核參數(shù)的范圍為(0,100)訓(xùn)練數(shù)據(jù)3 000個(gè),測(cè)試數(shù)據(jù)為3 000,隨機(jī)從測(cè)試數(shù)據(jù)中抽取1 000,抽取5次取平均值。比較適應(yīng)度值(即交叉驗(yàn)證的平均正確率)以及比較用測(cè)試數(shù)據(jù)測(cè)試,以最優(yōu)參數(shù)訓(xùn)練得出各個(gè)模型的正確率、誤報(bào)率和漏報(bào)率。圖3分別為QPSO-SVM模型、DE-SVM模型、PSOSVM迭代次數(shù)與適應(yīng)度值關(guān)系圖,其中檢測(cè)率為正確率、誤報(bào)率、漏報(bào)率3個(gè)指標(biāo)。
圖3 QPSO-SVM模型、DE-SVM模型、PSO-SVM迭代次數(shù)與適應(yīng)度值關(guān)系
最優(yōu)參數(shù)和最優(yōu)適應(yīng)度如表1所示。用對(duì)應(yīng)的參數(shù)、相同的數(shù)據(jù)訓(xùn)練表中4個(gè)模型并測(cè)試,得到4個(gè)模型的正確率、誤報(bào)率和漏報(bào)率。
表1 EQPSO-GS-SVM模型、QPSO-SVM模型、DE-SVM模型和PSO-SVM模型測(cè)試結(jié)果表
從表1可以看出,EQPSO-GS-SVM模型相比其他3個(gè)模型正確率提高,誤報(bào)率和漏報(bào)率降低。從迭代代數(shù)與交叉驗(yàn)證的準(zhǔn)確率的關(guān)系圖可以看出收斂速度。本文做了大量實(shí)驗(yàn),精英量子粒子群模型平均在25次迭代后進(jìn)入收斂,其余3個(gè)模型平均在40次、60次、90次迭代后進(jìn)入收斂,且泛化性能較后三者好。
本文主要進(jìn)行了以下3項(xiàng)工作:(1)將精英策略融合于量子粒子群算法中初步優(yōu)化支持向量機(jī),利用精英策略及量子粒子群算法的優(yōu)勢(shì),提高了收斂速度,且一定程度上避免了局部收斂;(2)利用網(wǎng)格搜索算法進(jìn)一步優(yōu)化支持向量機(jī),提高了收斂精度;(3)在過(guò)去的幾十年里,入侵檢測(cè)的實(shí)驗(yàn)一直使用KDD99,然而該數(shù)據(jù)存在許多缺陷,本文使用具有代表性、時(shí)效性的UNSW-NB15數(shù)據(jù)集進(jìn)行對(duì)比實(shí)驗(yàn),結(jié)果較為理想,提高了泛化性能,正確率、誤報(bào)率和漏報(bào)率均有所改善。本文是對(duì)入侵檢測(cè)方法的一次有效探索,在探索過(guò)程中也存在不足。例如,現(xiàn)實(shí)生活中入侵檢測(cè)數(shù)據(jù)的不平衡性、樣本的采集、特征的選擇等都影響著模型的泛化性能,這些問(wèn)題值得進(jìn)一步探索。