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