焦志強(qiáng), 易 侃, 張杰勇, 姚佩陽
(1. 空軍工程大學(xué)信息與導(dǎo)航學(xué)院, 陜西 西安 710077; 2. 中國人民解放軍95910部隊(duì),甘肅 酒泉 735018; 3. 信息系統(tǒng)工程重點(diǎn)實(shí)驗(yàn)室, 江蘇 南京 210007)
近年來,隨著指揮信息系統(tǒng)網(wǎng)絡(luò)化、智能化的理念不斷加深,基于面向服務(wù)的思想體系結(jié)構(gòu)(service-oriented architecture, SOA)構(gòu)建指揮信息系統(tǒng)勢在必行,并已經(jīng)取得了長足的發(fā)展[1]。新一代指揮信息系統(tǒng)將以軍事作戰(zhàn)云為依托,將各個(gè)功能模塊以服務(wù)的形式部署到各個(gè)節(jié)點(diǎn)中,以實(shí)現(xiàn)功能模塊之間的解耦,從而為提高系統(tǒng)整體的敏捷性提供基礎(chǔ)。指揮信息系統(tǒng)作為現(xiàn)代戰(zhàn)場上的粘合劑和戰(zhàn)斗力的倍增器,不可避免地需要面對高對抗、強(qiáng)干擾的復(fù)雜作戰(zhàn)環(huán)境,由于系統(tǒng)運(yùn)行狀態(tài)的正常與否將直接影響整體作戰(zhàn)效能,因此亟需對其狀態(tài)進(jìn)行實(shí)時(shí)監(jiān)控以及時(shí)發(fā)現(xiàn)異常并執(zhí)行相適應(yīng)的演化策略,從而維持指揮信息系統(tǒng)的正常運(yùn)轉(zhuǎn)。
針對系統(tǒng)狀態(tài)的監(jiān)控問題,許多云服務(wù)提供商已經(jīng)將資源運(yùn)行狀態(tài)數(shù)據(jù)作為一種關(guān)鍵服務(wù)向用戶開放,并開發(fā)了相應(yīng)的云環(huán)境下資源監(jiān)控工具。例如,Amazon的CloudWatch、Microsoft的Azure Monitor等。這些工具通過對CPU/RAM利用率、網(wǎng)絡(luò)流量、響應(yīng)時(shí)間等指標(biāo)的監(jiān)控和處理,分析用戶訂購服務(wù)的運(yùn)行狀態(tài)并為用戶進(jìn)行預(yù)警。在這個(gè)背景下,系統(tǒng)狀態(tài)的監(jiān)控問題在民用領(lǐng)域涌現(xiàn)出了大量研究[2-5]。
與此同時(shí),針對指揮信息系統(tǒng)狀態(tài)監(jiān)控的研究還處于起步階段。文獻(xiàn)[6]考慮了監(jiān)控系統(tǒng)在監(jiān)控圖生成、集中監(jiān)控和擴(kuò)展性等方面的不足,為了在已有系統(tǒng)上實(shí)施全方位監(jiān)控,提出了一種基于分層式插件化架構(gòu)的一站式綜合監(jiān)控系統(tǒng),并對該系統(tǒng)的總體架構(gòu)進(jìn)行了論述,分析了其中的插件設(shè)計(jì)、通用結(jié)構(gòu)樹和虛擬圖元等關(guān)鍵要素。文獻(xiàn)[7]從故障診斷的角度出發(fā),利用監(jiān)控代理對系統(tǒng)相關(guān)數(shù)據(jù)進(jìn)行收集和分析,提出了故障診斷專家系統(tǒng)的總體結(jié)構(gòu),但并未對具體方法做深入的研究。文獻(xiàn)[8]則分析了指揮控制網(wǎng)絡(luò)存在的問題,提出了建立實(shí)時(shí)流量監(jiān)控系統(tǒng)的思路,并基于WinPcap體系結(jié)構(gòu)設(shè)計(jì)了面向指控網(wǎng)絡(luò)的流量監(jiān)控系統(tǒng)架構(gòu)??梢钥吹?已有研究偏重于對指揮信息系統(tǒng)狀態(tài)監(jiān)控總體結(jié)構(gòu)的構(gòu)建,而在監(jiān)控方法層面的研究還有待進(jìn)一步深入。
指揮信息系統(tǒng)作為軍事信息系統(tǒng),其部署的空間更為分散,對狀態(tài)監(jiān)控的實(shí)時(shí)性要求也更為苛刻。同時(shí),由于系統(tǒng)狀態(tài)數(shù)據(jù)的保密性問題,歷史監(jiān)控?cái)?shù)據(jù)不能像民用系統(tǒng)一樣進(jìn)行分享和傳播,因此在初期可能無法擁有足夠多的訓(xùn)練樣本。此外,就狀態(tài)監(jiān)控問題本身而言,其正常狀態(tài)的樣本數(shù)量肯定大于異常狀態(tài)的樣本數(shù)量,這種樣本類別間的不平衡將有可能導(dǎo)致漏警率偏高的情況出現(xiàn),這些都對指揮信息系統(tǒng)的狀態(tài)監(jiān)控造成了困難。從技術(shù)手段上看,系統(tǒng)狀態(tài)監(jiān)控本質(zhì)上是一種分類問題,即通過各類指標(biāo)數(shù)據(jù)將當(dāng)前狀態(tài)分為正?;蚴钱惓?。常見的方法有:基于貝葉斯后驗(yàn)概率的統(tǒng)計(jì)分析方法[4-5];基于最近鄰的分類方法[9-10]、基于支持向量機(jī)(support vector machine, SVM)的分類方法[11-12]、基于深度學(xué)習(xí)的分類方法等[13-14]。考慮到SVM在解決分類問題中的小樣本、非線性和高維數(shù)據(jù)特征上具備良好的性能[15],本文基于SVM提出了一種面向不平衡數(shù)據(jù)的SVM增量學(xué)習(xí)方法(incremental learning method for unbalanced data based on SVM, ILMUDSVM),該方法利用過采樣的思想對樣本集合進(jìn)行補(bǔ)充以平衡各類樣本間的數(shù)量關(guān)系;以KKT(Karush-Kuhn-Tucker)條件為基礎(chǔ),放松了模型更新觸發(fā)的條件,盡可能減少了模型更新的次數(shù);通過定義重要度對每次模型更新后的樣本集合進(jìn)行優(yōu)化篩選保留;并在學(xué)習(xí)過程中引入遺忘率以降低模型更新的時(shí)間開銷,從而有針對性地解決了指揮信息系統(tǒng)的狀態(tài)監(jiān)控問題。
指揮信息系統(tǒng)的狀態(tài)監(jiān)控本質(zhì)上是一個(gè)分類問題,即根據(jù)數(shù)據(jù)采集系統(tǒng)得到的各類參數(shù)對系統(tǒng)當(dāng)前狀態(tài)做出判斷。假設(shè)當(dāng)前系統(tǒng)的各項(xiàng)參數(shù)為z∈Rn×1,系統(tǒng)狀態(tài)可以表示為Sys=f(z),若Sys=-1時(shí)表示系統(tǒng)正常運(yùn)行,若Sys=1則表示系統(tǒng)運(yùn)行出現(xiàn)異常。因此,本文要解決的問題就是尋找一個(gè)映射函數(shù)f(·),使得系統(tǒng)狀態(tài)能夠被準(zhǔn)確地判斷??紤]到指揮信息系統(tǒng)的狀態(tài)監(jiān)控問題具有初始樣本少、實(shí)時(shí)性要求高和數(shù)據(jù)不平衡等特點(diǎn),本文以SVM為基礎(chǔ)設(shè)計(jì)了一種系統(tǒng)狀態(tài)監(jiān)控方法。下面首先對SVM過程進(jìn)行簡單介紹。
SVM的核心思想就是在樣本空間中找到一個(gè)最優(yōu)的分類超平面,根據(jù)樣本點(diǎn)相對于分類超平面的位置將樣本集分為不同的類別。假設(shè)給定的樣本集為{(xi,yi)|xi∈Rn×1,yi∈{-1,+1},i=1,2,…,m}。其中,xi為樣本的屬性向量;n為屬性的個(gè)數(shù);yi為樣本的標(biāo)簽,若yi=yj,則說明樣本i和樣本j屬于同一個(gè)類別;m為樣本集中所有樣本的個(gè)數(shù)。在給定樣本集后,需要對SVM進(jìn)行訓(xùn)練以得到針對該樣本集的分類模型,從而對后續(xù)未知類別的樣本進(jìn)行分類。
利用樣本集對SVM進(jìn)行訓(xùn)練就是尋找最優(yōu)分類超平面的過程,如圖1所示??梢钥吹?兩類樣本分別位于分類超平面的兩側(cè)。兩類樣本點(diǎn)中距離分類超平面最近的樣本點(diǎn)被稱為支持向量,支持向量到超平面的距離為d,該距離直接決定了兩個(gè)類別間的間隔邊緣。分類超平面的最優(yōu)性體現(xiàn)在間隔邊緣上,即認(rèn)為間隔越大分類效果也就越好。圖1(a)和圖1(b)分別顯示了同一個(gè)樣本集下的兩個(gè)分類超平面,根據(jù)上述定義,可以發(fā)現(xiàn)圖1(b)中的分類超平面明顯優(yōu)于圖1(a)中的分類超平面。因此,SVM本質(zhì)上就是尋找一個(gè)令間隔邊緣最大的分類超平面。
圖1 SVM原理示意圖Fig.1 SVM principle diagram
在給定樣本集后S,分類超平面可以用以下線性方程來描述:
ωTx+b=0
(1)
式中:ω∈Rn×1和b分別為最優(yōu)分類超平面的法向量和截距,可通過求解以下優(yōu)化問題得到。
優(yōu)化問題1:
(2)
ωTx+b=0,
(3)
需要注意的是,在計(jì)算b時(shí)可以選取任意在最大間隔邊界上的支持向量進(jìn)行計(jì)算。
針對樣本數(shù)據(jù)的不平衡性,現(xiàn)有的工作一般通過減少或增加相應(yīng)樣本的方式來處理,即欠采樣[16]和過采樣[17]。欠采樣方法會(huì)導(dǎo)致一些樣本信息的丟失,從而造成模型分類效果的下降。而經(jīng)典的過采樣方法在過采樣時(shí)具有一定的盲目性[18],容易導(dǎo)致合成的新樣本質(zhì)量較差。因此,需要有針對性地生成高質(zhì)量的新樣本以進(jìn)一步提升模型訓(xùn)練效果?;谏鲜龇治?本文首先利用樣本集進(jìn)行SVM預(yù)訓(xùn)練,然后利用支持向量在預(yù)分類面附近產(chǎn)生有潛力的新樣本,同時(shí)借鑒文獻(xiàn)[19]中分帶過采樣的思想,根據(jù)距離進(jìn)行分帶,然后逐帶生成均勻分布在當(dāng)前帶內(nèi)的新樣本以保持各類樣本數(shù)量的平衡。
2.1.1 基于支持向量的新樣本生成
在進(jìn)行預(yù)分類得到預(yù)分類超平面ω′Tx+b′=0和支持向量集合SV′={sv′+,sv′-}后,根據(jù)每個(gè)類中支持向量的數(shù)量來確定需要生成的新樣本數(shù)量。假設(shè)正類為樣本數(shù)量少的一類,其樣本數(shù)量為m+,負(fù)類樣本數(shù)量為m-(m++m-=m),則利用支持向量生成的新樣本數(shù)量為
(4)
(5)
圖2 基于支持向量的新樣本生成過程示意圖Fig.2 Schematic diagram of new sample generation process based on support vector
本文提出的基于支持向量的新樣本生成算法如算法1所示。
算法 1 基于支持向量的新樣本生成算法輸入 樣本集合{(xi,yi)},利用支持向量生成新樣本的比率α,參與新樣本生成的支持向量個(gè)數(shù)m+sv步驟 1 利用樣本集合{(xi,yi)}進(jìn)行SVM預(yù)訓(xùn)練,得到支持向量集合SV'={sv'+,sv'-};步驟 2 根據(jù)α和樣本集合中正類樣本和負(fù)類樣本的個(gè)數(shù)確定需要生成的新樣本個(gè)數(shù)msvnew;步驟 3 計(jì)算正類支持向量到其類中心的距離csn'+,對其進(jìn)行降序排列,并選取前m+sv個(gè)作為生成新樣本的支持向量;步驟 4 計(jì)算每個(gè)支持向量應(yīng)該生成的新樣本數(shù)m+svi,初始化集合Ssv;步驟 5 對于每個(gè)被選中的支持向量利用式(5)生成新樣本,并加入到Ssv。輸出 由支持向量產(chǎn)生的新樣本集合Ssv
在第2.1.1節(jié)的基礎(chǔ)上,為了使新產(chǎn)生的樣本更加均勻的散布在當(dāng)前帶內(nèi),本文提出了一種基于分帶的過采樣方法。該方法利用分帶的思想對樣本空間進(jìn)行劃分,并根據(jù)樣本所處的分布選擇相應(yīng)的樣本以在樣本分布稀疏的區(qū)域生成新樣本。
2.1.2 樣本空間的分帶過程
(6)
圖3 樣本空間分帶示意圖Fig.3 Schematic diagram of sample space zoning
2.1.3 基于分帶的新樣本生成
(7)
圖4 帶內(nèi)新樣本生成過程示意圖Fig.4 Schematic diagram of in-band new sample generation process
在圖4中可以看到,θmax表示相鄰向量間的最大角度,意味著在該帶內(nèi)樣本4和樣本5間的角度間隔最大,為了使新樣本分布均勻,可以利用樣本4和樣本5生成一個(gè)介于上述樣本間的新樣本sn1。
在得到樣本對(si,sj)后,新樣本可以表示為
(8)
snk=ν(si-C)+(νsj-C)+C=νsi+νsj-(2ν-1)C
(9)
(10)
(11)
圖5 樣本向量長度計(jì)算過程示意圖Fig.5 Schematic diagram of sample vector length calculation process
圖6 樣本向量的反向過程示意圖Fig.6 Schematic diagram of reverse process of sample vector
綜上,基于分帶思想的過采樣算法如算法2所示。
算法 2 基于分帶思想的過采樣算法輸入 樣本集合{(xi,yi)},支持向量集合SV'={sv'+,sv'-},利用支持向量生成新樣本的比率α,分帶數(shù)q步驟 1 利用式(6)對非支持向量集合{(xi,yi)}/SV'中的樣本進(jìn)行分帶;步驟 2 利用式(7)計(jì)算每個(gè)帶內(nèi)需要產(chǎn)生的新樣本個(gè)數(shù)mfd;步驟 3 令新樣本集合Snsv=?,對于每個(gè)帶內(nèi)的樣本進(jìn)行如下步驟:步驟 3.1 令mfcd=0;步驟 3.2 計(jì)算帶內(nèi)樣本集合Setd中最大相鄰?qiáng)A角θmax,確定被選中的向量si和sj;步驟 3.3 利用式(11)計(jì)算得到新樣本sn;步驟 3.4 將新樣本sn加入到當(dāng)前帶內(nèi)樣本集合中,Setd←Setd∪sn,并在新樣本集合中保存該新樣本Snsv←Snsv∪sn;步驟 3.5 令mfcd=mfcd+1,若mfcd=mfd,則當(dāng)前帶內(nèi)新樣本生成結(jié)束;否則,轉(zhuǎn)步驟2)。輸出 由非支持向量產(chǎn)生的新樣本集合Snsv
考慮指揮信息系統(tǒng)的特殊性,其系統(tǒng)狀態(tài)監(jiān)測數(shù)據(jù)在初期可能不會(huì)非常全面,需要在其運(yùn)行過程中不斷地積累,這就對SVM的增量過程提出了需求。對于增量學(xué)習(xí)過程的研究大多集中于KKT條件[20-21]。在此基礎(chǔ)上,許多工作得以進(jìn)行展開[22-24],并出現(xiàn)了大量的增量SVM方法。這些方法大多是基于以下流程:首先判斷新樣本集中是否存在違反KKT條件的樣本,在此基礎(chǔ)上分析有可能成為新支持向量的樣本并組成待訓(xùn)練樣本集St,然后利用St進(jìn)行訓(xùn)練,從而得到新的SVM模型。
2.2.1 模型更新的觸發(fā)機(jī)制
對于優(yōu)化問題1,樣本集中的每個(gè)樣本都應(yīng)該滿足以下KKT條件:
(12)
當(dāng)新樣本xnew到來時(shí),可以假設(shè)其對應(yīng)的拉格朗日系數(shù)anew=0,計(jì)算判定式y(tǒng)if(xi)-1,若其大于0,則認(rèn)為該樣本滿足KKT條件,模型無需進(jìn)行更新;否則,需要考慮對SVM進(jìn)行重新訓(xùn)練。這里,為了減少在線學(xué)習(xí)時(shí)模型的頻繁更新的情況,可以考慮將判定式放寬松為yif(xi)+μ-1。其中μ為模型更新觸發(fā)的松弛系數(shù)。從圖7中可以看到,新樣本A(μ∈[2,+∞)),B(μ∈[1,2))和D(μ∈[0,1))均違反了KKT條件,這說明此時(shí)的分類超平面理論上不是最優(yōu)的,需要進(jìn)行模型的更新。但如果只從分類結(jié)果上看,樣本D的分類結(jié)果還是正確的,因而這里可以考慮不對模型進(jìn)行更新。當(dāng)然,由于樣本D的特殊性,其距離當(dāng)前分類超平面很近,后續(xù)成為支持向量的可能性非常大,樣本D應(yīng)當(dāng)被加入到保留集中,待下次模型更新時(shí)再做考慮。需要注意的是,若出現(xiàn)了類似樣本A和B情況的樣本,則當(dāng)前模型必須進(jìn)行更新。綜上,μ的值應(yīng)當(dāng)介于0到1之間,其值越大則觸發(fā)機(jī)制越為寬容,從而減小模型更新的頻率。
圖7 新樣本違背KKT條件的3種情況Fig.7 Three cases where the new sample violates the KKT condition
2.2.2 保留集的選取
對于樣本i,其重要度反應(yīng)了其后續(xù)可能成為支持向量的可能性。這里給出一個(gè)假設(shè),即距離分類面越近,同時(shí)距離類中心越遠(yuǎn)的樣本更有成為支持向量的潛力?;谶@個(gè)假設(shè),可以將樣本i的重要度定義為
(13)
在得到排序的樣本集后,保留集SR由重要度高的前γ%樣本組成,而對于重要度低的樣本,則可以通過設(shè)定以遺忘率p∈[0,0.5]對重要度較低的樣本進(jìn)行遺忘以減少后續(xù)保留集更新的計(jì)算量。
這里需要注意的是,該遺忘策略的執(zhí)行是有前提條件的,即當(dāng)前樣本數(shù)量足夠多并且已經(jīng)能夠基本體現(xiàn)出總體樣本的分布情況。在這個(gè)前提下,后續(xù)新樣本的加入對于分類面的影響將會(huì)比較小,分類超平面也不會(huì)出現(xiàn)太大的偏移和旋轉(zhuǎn),被遺忘的樣本成為支持向量的可能性也就將維持在一個(gè)很低的水平。
圖8 正負(fù)樣本的重要度排序示意圖Fig.8 Schematic diagram of importance ranking of positive and negative samples
2.2.3 增量過程中不平衡數(shù)據(jù)的處理
在SVM的增量過程中,可能成為新支持向量的樣本集St本身已經(jīng)在原有樣本集上進(jìn)行了篩選,如果采用欠采樣的方式繼續(xù)對該集合中的樣本進(jìn)行舍去,將很有可能損失一些有價(jià)值的訓(xùn)練樣本,從而導(dǎo)致SVM模型的性能下降?;谏鲜龇治?這里仍然使用過采樣的方式補(bǔ)充相應(yīng)樣本。借鑒第2.1.3節(jié)中新樣本的生成,這里對于St中的樣本采用式(5)和式(11)產(chǎn)生新的樣本并加入到St中,以在增量過程中適應(yīng)系統(tǒng)監(jiān)控?cái)?shù)據(jù)樣本不平衡的特點(diǎn)。
綜上所述,本文提出的基于SVM增量學(xué)習(xí)的C4ISR(command, control, communication, and computer, intelligence, surveillance and reconnaissance)系統(tǒng)狀態(tài)監(jiān)測算法總體流程如算法3所示。
算法3 基于SVM增量學(xué)習(xí)的C4ISR系統(tǒng)狀態(tài)監(jiān)測算法輸入 初始樣本集合S0,增量樣本集合Si(i=1,2,…,T)離線階段:步驟 1 設(shè)定參數(shù):利用支持向量生成新樣本的比率α,分帶數(shù)q,保留比例γ,遺忘率p,模型更新觸發(fā)的松弛系數(shù)μ;步驟 2 利用算法1生成由支持向量產(chǎn)生的新樣本集合Ssv;步驟 3 利用算法2生成由支持向量產(chǎn)生的新樣本集合Snsv;步驟 4 對Sz=S0∪Ssv∪Snsv進(jìn)行SVM訓(xùn)練,得到并輸出初始分類模型M0;步驟 5 利用式(13)計(jì)算Sz中的樣本重要度,并根據(jù)保留比例γ生成保留集SR,令i=1;在線階段:步驟 6 若i≤T,接受新樣本集Si,否則轉(zhuǎn)步驟12;步驟 7 利用判定式y(tǒng)if(xi)-1篩選出Si中需要參與訓(xùn)練的樣本,形成集合S'i,并令Sz←SR∪S'i;步驟 8 利用判定式y(tǒng)if(xi)+μ-1判斷新加入樣本是否觸發(fā)模型更新條件,若存在滿足更新條件的樣本則執(zhí)行步驟9,否則,執(zhí)行步驟11;步驟 9 將Sz作為輸入,利用算法1和算法2生成新樣本集合S'sv;步驟 10 對Sz=Sz∪S'sv進(jìn)行SVM訓(xùn)練,得到并輸出初始分類模型Mi;步驟 11 利用式(15)計(jì)算Sz中的樣本重要度,并根據(jù)保留比例γ生成保留集SR,根據(jù)遺忘率p對Sz中的樣本進(jìn)行遺忘,轉(zhuǎn)步驟6;步驟 12 算法結(jié)束輸出 實(shí)時(shí)輸出SVM分類模型
其中,步驟1~步驟5屬于離線階段,利用已有樣本進(jìn)行訓(xùn)練以得到一個(gè)初始的分類模型。步驟6~步驟11屬于在線階段,根據(jù)新樣本集對分類模型不斷更新以改善分類效果。由于SVM在小樣本情況下也能夠表現(xiàn)出良好的性能,因此算法3能在初始樣本集中樣本數(shù)量較少的情況下獲得不錯(cuò)的分類效果。此外,該算法在離線和在線兩個(gè)階段都存在著樣本的過采樣操作,能夠在線處理系統(tǒng)監(jiān)控過程中樣本集的不平衡問題。
本文利用真實(shí)系統(tǒng)中的數(shù)據(jù)對算法進(jìn)行測試以驗(yàn)證本文所提算法的有效性和優(yōu)越性。Bookstore系統(tǒng)是具有B/S架構(gòu)的分布式系統(tǒng),主要功能包括:用戶注冊和登錄,商品搜索和顯示,廣告推薦以及線上支付等功能。Bookstore結(jié)構(gòu)邏輯較為復(fù)雜,且運(yùn)行環(huán)境動(dòng)態(tài),需要為數(shù)量龐大的用戶群提供服務(wù),因此其容易出現(xiàn)異常,方便收集到相應(yīng)的異常狀態(tài)信息,適合作為監(jiān)控的對象。
在本實(shí)驗(yàn)中,主要對Bookstore系統(tǒng)的5項(xiàng)參數(shù)進(jìn)行監(jiān)控,即響應(yīng)時(shí)間、錯(cuò)誤率、中央處理器利用率、內(nèi)存利用率以及存儲(chǔ)負(fù)載,并通過這些參數(shù)對系統(tǒng)的狀態(tài)進(jìn)行判斷。在此基礎(chǔ)上,樣本集合可以表示為
{(xi,yi)|xi∈Rn×1,yi∈{-1,+1},i=1,2,…,m},
xi={ResponseTime,ErrorRate,CPU,RAM,Load}
式中:ResponseTime為系統(tǒng)響應(yīng)時(shí)間;ErrorRate為錯(cuò)誤率;CPU為中央處理器的利用率;RAM為內(nèi)存利用率;Load為系統(tǒng)負(fù)載。
通過運(yùn)行和收集Bookstore系統(tǒng)運(yùn)行過程中的相關(guān)參數(shù),本文得到了500個(gè)帶標(biāo)簽的樣本,其中系統(tǒng)狀態(tài)正常的樣本320個(gè),系統(tǒng)異常的樣本180個(gè)。為了充分體現(xiàn)算法的持續(xù)學(xué)習(xí)能力,這里選取200個(gè)樣本作為初始學(xué)習(xí)樣本集合,100個(gè)作為測試樣本,其他200個(gè)樣本則平均分為10組,用于驗(yàn)證算法的學(xué)習(xí)過程。需要注意的是,為了反映算法應(yīng)對不平衡數(shù)據(jù)的能力,初始學(xué)習(xí)樣本中,正常狀態(tài)樣本數(shù)量設(shè)定為150,異常狀態(tài)樣本數(shù)量設(shè)定為50。為了更好地對分類算法的性能進(jìn)行評(píng)估,采用G-means[25]和F-measure[26]兩種指標(biāo)對本文所提算法進(jìn)行評(píng)價(jià)。當(dāng)TP=0時(shí),召回率和精確率都將歸零從而造成F-measure無法計(jì)算。為了處理這種情況,當(dāng)分類器將測試集中的所有正類樣本都預(yù)測為負(fù)類時(shí),認(rèn)為本次分類失敗,分類器的F-measure記為零,并對失敗的次數(shù)進(jìn)行統(tǒng)計(jì)為后續(xù)計(jì)算分類的成功率提供依據(jù)。
由于訓(xùn)練集、測試集以及學(xué)習(xí)集中的樣本是隨機(jī)選取的,本文通過蒙特卡羅模擬的方式進(jìn)行1 000次隨機(jī)實(shí)驗(yàn)以測試算法的性能。同時(shí),為了體現(xiàn)本文所提算法在增量學(xué)習(xí)和處理不平衡數(shù)據(jù)上的優(yōu)越性,實(shí)驗(yàn)將本文所提出的算法與SVM、SVM+INV(incremental variation)、SVM+UB(unbalanced)算法進(jìn)行了比較。其中,SVM即為不帶學(xué)習(xí)策略的經(jīng)典SVM算法;SVM+INV為帶有學(xué)習(xí)機(jī)制的SVM算法;SVM+UB為帶有不平衡數(shù)據(jù)的處理過程的SVM算法。SVM和SVM+UB算法由于沒有學(xué)習(xí)機(jī)制,在每次新增樣本集到來時(shí)直接與已有樣本集合并進(jìn)行重新訓(xùn)練,實(shí)驗(yàn)結(jié)果如下所示。
圖9顯示了SVM、SVM+INV、SVM+UB和本文算法的G-means指標(biāo)、F-measure指標(biāo)和分類準(zhǔn)確率??梢钥吹?SVM和SVM+INV算法由于不具備不平衡數(shù)據(jù)的處理機(jī)制,在G-means、F-measure和分類準(zhǔn)確率3個(gè)指標(biāo)上的表現(xiàn)較差;SVM+UB和本文算法則通過對不平衡數(shù)據(jù)的處理機(jī)制,在各個(gè)指標(biāo)上均獲得了更好的效果。此外,可以看到具備學(xué)習(xí)機(jī)制的算法(SVM+INV和本文算法)的G-means、F-measure和分類準(zhǔn)確率3個(gè)指標(biāo)相比于每次都使用全部樣本進(jìn)行訓(xùn)練的算法(SVM和SVM+UB)將略有下降,這是由學(xué)習(xí)機(jī)制中保留率和遺忘率的存在使得每次參與訓(xùn)練的樣本個(gè)數(shù)減少所造成的,但這同時(shí)也降低了單次訓(xùn)練的復(fù)雜程度。在表1中可以發(fā)現(xiàn),具有學(xué)習(xí)機(jī)制的算法在訓(xùn)練樣本個(gè)數(shù)上要明顯少于對應(yīng)的非學(xué)習(xí)算法。表2顯示了各算法的平均訓(xùn)練時(shí)間,具備不平衡數(shù)據(jù)處理機(jī)制的算法運(yùn)行時(shí)間要高于不具備不平衡數(shù)據(jù)的處理機(jī)制的算法。需要注意的是,從理論上看,算法的運(yùn)行時(shí)間應(yīng)當(dāng)與參與訓(xùn)練的樣本個(gè)數(shù)成正比關(guān)系。由于具有學(xué)習(xí)機(jī)制的算法需要每次對保留集進(jìn)行選取,這部分時(shí)間也將被計(jì)算在總訓(xùn)練時(shí)間內(nèi),因此在表1中SVM+INV的訓(xùn)練樣本個(gè)數(shù)雖然小于SVM算法,而在表2中其訓(xùn)練時(shí)間卻高于SVM算法。但隨著樣本這數(shù)量的上升樣本總數(shù)量的上升,在SVM訓(xùn)練過程中節(jié)約下來的時(shí)間將會(huì)彌補(bǔ)這一額外的時(shí)間開銷,以SVM+UB與本文算法的時(shí)間開銷為例,在初始階段本文算法的時(shí)間開銷略高于SVM+UB,但隨著學(xué)習(xí)過程的進(jìn)行,到第10次學(xué)習(xí)階段時(shí)本文算法的時(shí)間開銷明顯低于了SVM+UB算法。
圖9 各算法的3種指標(biāo)比較Fig.9 Comparison of three indicators of each algorithm
表1 各算法訓(xùn)練樣本數(shù)量比較Table 1 Comparison of training sample number of each algorithm
表2 各算法訓(xùn)練時(shí)間比較Table 2 Comparison result of training time of each algorithm ms
為了進(jìn)一步體現(xiàn)本文算法與現(xiàn)有增量學(xué)習(xí)算法在不同數(shù)據(jù)集上的分類效果,這里在UCI-machine learning repository機(jī)器學(xué)習(xí)數(shù)據(jù)庫[27-30]中選取了3類6種不同的數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),各數(shù)據(jù)集的相關(guān)參數(shù)如表3所示。本組實(shí)驗(yàn)對比了經(jīng)典增量SVM(simple incremental SVM, Simple-ISVM)、基于KKT條件的SVM(KKT-ISVM)、基于組合保留集的SVM(combined reserved set incremental SVM,CRS-ISVM)和本文算法在上述6個(gè)數(shù)據(jù)集中的分類效果。為了避免訓(xùn)練集和測試集劃分不同所產(chǎn)生的差異,這里同樣采用了1 000次蒙特卡羅模擬并對各指標(biāo)進(jìn)行了平均計(jì)算??紤]到部分?jǐn)?shù)據(jù)集不平衡比較高可能導(dǎo)致分類器無法區(qū)分正類的情況,該次實(shí)驗(yàn)對TP=0的情況進(jìn)行了統(tǒng)計(jì),并計(jì)算了每種算法的分類成功率。實(shí)驗(yàn)結(jié)果如圖10所示。
表3 不同數(shù)據(jù)集參數(shù)Table 3 Parameters of different data set
圖10 不同數(shù)據(jù)集下各算法的對比實(shí)驗(yàn)結(jié)果Fig.10 Comparative experimental results of each algorithm under different data sets
從圖10可以發(fā)現(xiàn),本文算法相較于Simple-ISVM、KKT-ISVM和CRS-ISVM算法在6個(gè)數(shù)據(jù)集上均體現(xiàn)出了優(yōu)勢。但數(shù)據(jù)集的不平衡比較低時(shí),如yeast1和ecoli1,算法間的差距較小,且成功率均接近于1;而當(dāng)數(shù)據(jù)集的不平衡比較高時(shí),本文算法的優(yōu)越性逐漸凸顯,在G-means和F-measure指標(biāo)上明顯由于其他算法。同時(shí),其成功率也能始終保持在較高的水平,從而減少“漏警”的情況出現(xiàn)。
表4和表5分別為各算法在不同數(shù)據(jù)集上的訓(xùn)練樣本數(shù)量和時(shí)間開銷的平均值。由于對不平衡數(shù)據(jù)的處理機(jī)制采用的過采樣方式增加了每次訓(xùn)練的樣本數(shù)量,本文算法的時(shí)間開銷要高于其他算法。當(dāng)數(shù)據(jù)集的不平衡比較高時(shí)(poker-8-9vs6和poker-8-9vs5樣本集),上述情況要尤為明顯。但本文算法的時(shí)間開銷還處于毫秒級(jí),考慮到實(shí)驗(yàn)平臺(tái)的計(jì)算性能限制,本文算法的時(shí)間開銷是在可接受的時(shí)間范圍內(nèi)的。
表4 各算法訓(xùn)練樣本平均數(shù)量比較Table 4 Comparison result of average training sample size of each algorithm
表5 各算法訓(xùn)練平均時(shí)間比較Table 5 Comparison result of average training time of each algorithm ms
圖11和圖12分別為各算法在學(xué)習(xí)過程中訓(xùn)練樣本數(shù)量和時(shí)間開銷的增長率??梢钥闯?本文算法由于采用了保留策略和遺忘策略,在訓(xùn)練樣本增長率上相比于KKT-SVM和CRS-SVM算法具有一定優(yōu)勢。而在訓(xùn)練時(shí)間增長率上,本文算法的表現(xiàn)將會(huì)受數(shù)據(jù)集不平衡比的影響。當(dāng)不平衡比較小時(shí)(yeast1,yeast3和ecoli1),本文算法的訓(xùn)練時(shí)間增長率與Sample-SVM算法基本持平,明顯優(yōu)于KKT-SVM和CRS-SVM算法;而當(dāng)不平衡比較大時(shí)(ecoli4,poker-8-9vs6和poker-8-9vs5),本文算法的訓(xùn)練時(shí)間增長率與CRS-SVM算法基本持平??傮w來看,本文所提出的學(xué)習(xí)策略能夠有效減少增量學(xué)習(xí)過程中的樣本訓(xùn)練數(shù)量,降低增量學(xué)習(xí)過程的時(shí)間開銷。
圖11 不同數(shù)據(jù)集下各算法增量學(xué)習(xí)過程中訓(xùn)練樣本數(shù)量增長率Fig.11 Growth rate of training samples number in incremental learning process of each algorithm under different data sets
圖12 不同數(shù)據(jù)集下各算法增量學(xué)習(xí)過程中訓(xùn)練時(shí)間增長率Fig.12 Growth rate of training time in incremental learning process of each algorithm under different data sets
針對指揮信息系統(tǒng)的狀態(tài)監(jiān)控問題的特點(diǎn),本文設(shè)計(jì)了一種面向不平衡數(shù)據(jù)的SVM增量學(xué)習(xí)方法。該方法通過對歷史監(jiān)控樣本的過采樣處理,消除正/異常狀態(tài)樣本數(shù)量不平衡造成的影響;通過修正模型更新的觸發(fā)條件并引入樣本的保留和遺忘機(jī)制,減少增量學(xué)習(xí)過程中樣本的訓(xùn)練數(shù)量以降低時(shí)間開銷。實(shí)驗(yàn)結(jié)果證明了本文算法的有效性,顯示了其在真實(shí)系統(tǒng)狀態(tài)樣本集中的分類效果,并在不同不平衡數(shù)據(jù)集中對比現(xiàn)有算法,充分表現(xiàn)出了在增量學(xué)習(xí)過程中應(yīng)對不平衡數(shù)據(jù)的能力。值得注意的是,隨著系統(tǒng)運(yùn)行時(shí)間的增加,系統(tǒng)狀態(tài)樣本數(shù)量也將不斷上升。對于樣本數(shù)量較多的分類問題,深度學(xué)習(xí)方法將表現(xiàn)出更加優(yōu)異的性能。因此,在后續(xù)工作中可以對深度學(xué)習(xí)在指揮信息系統(tǒng)狀態(tài)監(jiān)控問題中的應(yīng)用展開進(jìn)一步的研究。