吳林慧,何毅斌,b,陳宇晨,杜 偉,汪 強(qiáng)
(武漢工程大學(xué)a.機(jī)電工程學(xué)院;b.化工裝備強(qiáng)化與本質(zhì)安全湖北省重點(diǎn)實(shí)驗(yàn)室,武漢 430205)
異常檢測(cè)是一種特殊的二元分類問題,在不同的應(yīng)用領(lǐng)域中又被稱為:?jiǎn)晤悓W(xué)習(xí)、孤立點(diǎn)檢測(cè)等。異常檢測(cè)主要用于解決現(xiàn)實(shí)中廣泛存在的諸如故障檢測(cè)、欺詐檢測(cè)、異常行為識(shí)別或者入侵檢測(cè)等異常樣本獲取困難甚至根本無法獲取的問題[1]。一般二元分類的方法要求正負(fù)樣本均勻分布,但如上述中某一類的樣本很少或不存在的不平衡類別問題,導(dǎo)致預(yù)測(cè)偏向樣本數(shù)較多的分類,因而對(duì)這種分類問題需要提出一些符合實(shí)際的解決方法[2]。
目前,為了解決異常檢測(cè)的問題已經(jīng)提出了許多的方法,根據(jù)其原理可以分為4種,分別是基于密度估計(jì)的方法,即利用采集的數(shù)據(jù)估計(jì)訓(xùn)練樣本的密度模型,并設(shè)置一個(gè)密度閾值,低于此閾值為異常數(shù)據(jù),王康等[3]利用高斯核密度估計(jì)的方法,檢測(cè)運(yùn)動(dòng)手環(huán)健康數(shù)據(jù)的異常值;BREUNING等[4]利用K-最近鄰方法進(jìn)行無監(jiān)督的異常檢測(cè),基于重建的方法,即估計(jì)模型及其參數(shù),將偏離該模型的樣本判定為異常;薛晨杰等[5]基于K-平均算法對(duì)離群點(diǎn)進(jìn)行檢測(cè);HOFFMANN[6]利用基于核主分量分析實(shí)現(xiàn)異常檢測(cè),基于支撐域的方法,即構(gòu)建一個(gè)圍繞目標(biāo)的支撐域,并最小化支持域的體積;ROA等[7]提出單類支持向量機(jī)用于異常檢測(cè),取得了不錯(cuò)的效果,基于深度學(xué)習(xí)的方法;SKILTON等[8]提出自編碼器提取信號(hào)特征的層次模型,結(jié)合生成對(duì)抗性網(wǎng)絡(luò)與目標(biāo)檢測(cè)對(duì)數(shù)據(jù)的統(tǒng)計(jì)分布建模實(shí)現(xiàn)異常檢測(cè)。
對(duì)實(shí)際的零件尺寸特征維度不高,正負(fù)樣本分布不均衡的情況進(jìn)行了研究,在分析了監(jiān)督學(xué)習(xí)下密度估計(jì)方法的異常檢測(cè)且多元高斯模型能夠快速的訓(xùn)練好模型并準(zhǔn)確的檢測(cè)出異常數(shù)據(jù),提出了構(gòu)建多元高斯分布模型用于零件尺寸異常檢測(cè)方法。
采集的樣本應(yīng)滿足以下兩個(gè)基本條件:
(1)各樣本獨(dú)立同分布,即從同一個(gè)總體中采集樣本,每個(gè)樣本被采集到的概率不會(huì)隨著采集的次數(shù)發(fā)生變化,則由中心極限定理可知,樣本特征近似服從高斯分布[9];
(2)樣本特征線性不相關(guān),如將方體零件的長(zhǎng)、寬、高、體積作為特征,由于體積等于長(zhǎng)、寬、高的乘積,所以這些特征不滿足線性無關(guān)。
樣本對(duì)應(yīng)的標(biāo)記Y為:Y=(y1y2…yj),若樣本為廢品,則標(biāo)記為0,稱為反例;反之標(biāo)記為1,稱為正例;0、1均稱為樣本標(biāo)簽。
采用留出法將樣本劃分為3個(gè)互斥的集合[10]:訓(xùn)練集、驗(yàn)證集以及測(cè)試集,假設(shè)樣本中正、反例的數(shù)目為m、n,劃分規(guī)則如表1所示。
表1 樣本劃分
合理的對(duì)采集樣本進(jìn)行劃分,是統(tǒng)計(jì)學(xué)習(xí)方法的重要一環(huán),對(duì)分類的結(jié)果有重要影響。
高斯分布是自然界中最重要的分布之一,它能描述許多隨機(jī)現(xiàn)象[11]。由中心極限定理可知,高斯分布具有普適性的建模能力,即獨(dú)立同分布的隨機(jī)變量均值在做適當(dāng)標(biāo)準(zhǔn)化之后會(huì)依分布收斂于高斯分布。
若某組樣本服從多元高斯分布,其特征的個(gè)數(shù)為i個(gè),記為向量X=(x1x2…xi),多元高斯分布密度函數(shù)為:
(1)
式中,μ為期望;Σ為協(xié)方差矩陣。
當(dāng)i=1,μ=0,Σ=1時(shí)為標(biāo)準(zhǔn)一元高斯分布,其分布函數(shù)圖像如圖1所示。
圖1 標(biāo)準(zhǔn)一元高斯分布
將樣本特征帶入多元高斯分布密度函數(shù),若滿足:
f(X|μ、Σ)>ε
(2)
式中,ε為閾值。
則認(rèn)為此樣本為正例,反之認(rèn)為此樣本為反例,在此模型中一共需要求解3個(gè)參數(shù):期望μ、協(xié)方差矩陣Σ以及閾值ε。使用訓(xùn)練集數(shù)據(jù)計(jì)算μ和Σ,驗(yàn)證集數(shù)據(jù)計(jì)算ε。
利用極大似然估計(jì)法構(gòu)造似然函數(shù)L:
(3)
式中,m為樣本總數(shù)。
將式(3)兩邊同時(shí)取對(duì)數(shù)得到:
(4)
此時(shí)的對(duì)數(shù)函數(shù)是個(gè)嚴(yán)格的單調(diào)增函數(shù),令:
(5)
得到期望μ的估計(jì)量為:
(6)
協(xié)方差矩陣Σ的估計(jì)量為:
(7)
(8)
(9)
式中,G為上三角矩陣。
多元高斯分布密度函數(shù)可以被簡(jiǎn)化為:
(10)
式(10)一定程度上簡(jiǎn)化了模型,將模型的結(jié)果固定到[0,1],優(yōu)化了特征個(gè)數(shù)過多時(shí)的計(jì)算速度。
對(duì)于一個(gè)二分類問題,分類的結(jié)果可以表示為混淆矩陣,如表2所示。
表2 混淆矩陣
定義準(zhǔn)確率為P、召回率為R,其計(jì)算公式分別為:
(11)
認(rèn)為召回率與準(zhǔn)確率同樣重要,F(xiàn)1分?jǐn)?shù)表示召回率與準(zhǔn)確率的加權(quán)平局[5],定義為:
(12)
式中,m為樣本總數(shù)。
F1分?jǐn)?shù)越大,表示分類正確的數(shù)量越多,當(dāng)F1分?jǐn)?shù)為1時(shí),表示分類完全正確。
定義n個(gè)閾值ε,將m組已知標(biāo)簽的樣本,即驗(yàn)證集的數(shù)據(jù)帶入多元高斯分布模型f(X),若滿足:
f(Xj|μ、Σ)>εii=1…nj=1…m
(13)
則預(yù)測(cè)擁有此組特征的樣本為正例,反之為反例,m組樣本預(yù)測(cè)完成后與真實(shí)情況比較并計(jì)算F1分?jǐn)?shù),完成后得到n個(gè)F1分?jǐn)?shù),使取得F1分?jǐn)?shù)達(dá)到最大的ε稱為最優(yōu)ε。
計(jì)算最優(yōu)ε的方法主要有遍歷法以及一些迭代更新算法。本文采用并行計(jì)算的方式,即利用粒子群優(yōu)化算法迭代ε,直到求解出最優(yōu)結(jié)果,步驟如下:
步驟1:確定粒子種群數(shù)目。將粒子群的種群數(shù)目設(shè)為10,在[0,1]之間隨機(jī)生成10個(gè)數(shù),作為第一代粒子,也稱為初始閾值;
步驟2:設(shè)置粒子群迭代的次數(shù)為t次;
步驟4:更新速度和變化率;
(14)
式中,v為速度;rand:C1為粒子的個(gè)體學(xué)習(xí)因子;C2為粒子的社會(huì)學(xué)習(xí)因子。
步驟6:重復(fù)步驟4和步驟5,t次后,輸出最后的gbest為最優(yōu)的閾值ε。
粒子群優(yōu)化算法的流程圖如圖2所示。
圖2 粒子群優(yōu)化算法過程
由于粒子群算法采用了并行計(jì)算的策略,并利用每次的個(gè)體最優(yōu)解及種群最優(yōu)解協(xié)同更新粒子值,所以對(duì)比遍歷法,計(jì)算速度有較大提升。
實(shí)驗(yàn)發(fā)現(xiàn),生成的初始粒子不好時(shí),算法會(huì)收斂到錯(cuò)誤結(jié)果,將求解最優(yōu)閾值轉(zhuǎn)化為求解最優(yōu)閾值變化率的問題,轉(zhuǎn)化步驟如下:
步驟1:令初始閾值ε0=1并確定一個(gè)初始變化率α∈(0,1)和兩個(gè)迭代次數(shù)t1和t2;
步驟2:用ε0與變化率α相乘,更新后的閾值為εi,計(jì)算此時(shí)的F1分?jǐn)?shù),再次更新閾值并計(jì)算F1分?jǐn)?shù),更新t1次,一共得到t1個(gè)F1分?jǐn)?shù),保存t1個(gè)F1分?jǐn)?shù)中的最大值,和對(duì)應(yīng)的變化率α;
步驟3:改變變化率α的值,重復(fù)步驟2,找到新的F1分?jǐn)?shù)中的最大值和對(duì)應(yīng)的變化率α,比較前一次的F1分?jǐn)?shù),若大于前一次,則覆蓋保存所有數(shù)據(jù),否則不進(jìn)行任何操作;
步驟4:重復(fù)步驟3t2次,最后得到的變化率α稱為最優(yōu)變化率。
通過粒子群算法改變變化率α的值,求出最優(yōu)變化率,再利用最優(yōu)變化率再求解出最優(yōu)閾值。問題轉(zhuǎn)化后的改進(jìn)粒子群算法在同樣參數(shù)下求解收斂的更快,穩(wěn)定性也更強(qiáng)。
測(cè)量一批激光腔體零件,將零件的長(zhǎng)、寬,大小和位置不同的兩個(gè)圓的直徑作為特征。根據(jù)零件的尺寸是否超差,可以將零件分為:合格品記為標(biāo)簽1,廢品記為標(biāo)簽0。
采樣得到了120組合格品與30組廢品,將其分為:訓(xùn)練集72組合格品,驗(yàn)證集與測(cè)試集各24組合格品,15組廢品。統(tǒng)計(jì)4個(gè)特征的值出現(xiàn)頻率,如圖3所示。
(a) 長(zhǎng)度特征出現(xiàn)頻率 (b) 寬度特征出現(xiàn)頻率
(c) 大圓直徑特征出現(xiàn)頻率 (d) 小圓直徑特征出現(xiàn)頻率
圖3中在對(duì)零件特征的出現(xiàn)頻率進(jìn)行統(tǒng)計(jì)后發(fā)現(xiàn),零件的4個(gè)特征均近似為高斯分布。
本文基于MATLAB進(jìn)行尺寸超差異常檢測(cè),利用訓(xùn)練集和驗(yàn)證集數(shù)據(jù)訓(xùn)練模型參數(shù),測(cè)試集數(shù)據(jù)測(cè)試模型的誤差,在求解最優(yōu)閾值時(shí),分別使用遍歷法、相同參數(shù)的粒子群法使和轉(zhuǎn)化問題后的改進(jìn)粒子群算法,對(duì)測(cè)試集識(shí)別的正確率如表3所示。
表3 算法準(zhǔn)確率對(duì)比
表3表明這3種算法的結(jié)果相同,都可以取得很高的準(zhǔn)確率。
各算法從模型參數(shù)訓(xùn)練到完成識(shí)別所需要的時(shí)間如表4所示。
表4 算法時(shí)間對(duì)比
表4表明對(duì)比于遍歷法,其他兩種方法所需要的時(shí)間明顯縮短。
對(duì)粒子群法和轉(zhuǎn)化問題后的改進(jìn)粒子群法達(dá)到收斂所需要的迭代次數(shù)進(jìn)行了統(tǒng)計(jì),結(jié)果如圖4所示。
圖4 迭代次數(shù)與最小F1圖
圖4表明將問題轉(zhuǎn)化后的改進(jìn)粒子群算法對(duì)比直接使用粒子群算法,能更快的收斂到最優(yōu)解,因而算法耗時(shí)更短。
再通過將兩種算法在同一測(cè)試集上運(yùn)行20次,得到兩種方法的計(jì)算次數(shù)與準(zhǔn)確率圖,如圖5所示。
圖5 計(jì)算次數(shù)與穩(wěn)定性圖
圖5表明直接使用粒子群算法會(huì)因生成的初始值不滿足條件,導(dǎo)致多次試驗(yàn)中結(jié)果波動(dòng)較大,滿足條件的初始值可以得到準(zhǔn)確的閾值從而達(dá)到很高的準(zhǔn)確率,不滿足條件的初始值會(huì)收斂到錯(cuò)誤的閾值導(dǎo)致得到很低的準(zhǔn)確率,而轉(zhuǎn)化問題后的改進(jìn)粒子群算法得到的結(jié)果穩(wěn)定,初始值好壞對(duì)求解最優(yōu)閾值影響不明顯。
研究多元高斯模型用于解決正反例樣本分布不均勻的情況下尺寸超差異常檢測(cè),為了提升模型訓(xùn)練的速度以及避免粒子群算法錯(cuò)誤收斂,提出了轉(zhuǎn)化問題后的改進(jìn)粒子群算法。通過使用遍歷法、相同參數(shù)的粒子群法和轉(zhuǎn)化問題后的改進(jìn)粒子群算法,在求解最優(yōu)閾值時(shí),識(shí)別到測(cè)試集的正確率高達(dá)97.5%。對(duì)比于遍歷法,改進(jìn)后的粒子群法所需耗時(shí)從14.496 s縮短到2.433 s,性能顯著提升。對(duì)粒子群法和轉(zhuǎn)化問題后的改進(jìn)粒子群法達(dá)到收斂所需要的迭代次數(shù)進(jìn)行統(tǒng)計(jì),得出改進(jìn)的粒子群能更快的收斂到最優(yōu)解,結(jié)果更穩(wěn)定。實(shí)驗(yàn)表明,本文算法具有需要訓(xùn)練的參數(shù)少,計(jì)算速度快,分類準(zhǔn)確率高,穩(wěn)定性高等特點(diǎn),對(duì)解決零件尺寸的超差異常檢測(cè)的問題具有重要的參考價(jià)值。