周啟超,劉 劍,劉 麗,黃 德,鄧立軍,蔣清華
(1.遼寧工程技術大學 安全科學與工程學院,遼寧 葫蘆島 125105; 2.遼寧工程技術大學 礦山熱動力災害與防治教育部重點實驗室,遼寧 葫蘆島 125105)
近幾年,支持向量機作為經典的模式識別方法,在機器學習中占有重要的地位。文獻[1]運用支持向量機根據風量特征,建立了通風系統故障診斷模型,取得了一定成果;文獻[2]運用SVM方法預測礦井通風阻力系數,提高了阻力系數預測的準確率;文獻[3]采用SVM評價輸油管道的脆性程度;文獻[4]運用SVM建立了建筑工地安全預警模型,減少施工過程中事故發生的可能。由于c,g的取值范圍很大,僅憑人力窮舉耗費的時間和精力是巨大的,若隨機選取c,g的值可能會導致故障診斷準確率偏低,并且模型不同,SVM對應的最優c,g參數也不同,支持向量機的分類精度很大程度上取決于參數的選取,因此對參數進行優化對解決問題具有重要的意義。近些年,越來越多的方法被應用于支持向量機參數優化,如粒子群算法,網格尋優方法、花朵授粉算法、人工魚群算法等[5-11]。文獻[5]通過粒子群優化的SVM對瓦斯涌出量進行預測,但是粒子群算法收斂速度慢,容易陷入局部最優解;文獻[6]采用網格搜索的方法優化最小二乘SVM,雖然獲得較高的精度,但是網格尋優算法計算量大,需要的時間較長;文獻[7]選取人工魚群方法進行參數優化,具有較好的并行性,但是人工魚群方法會出現無法準確得到最優解的情況;文獻[8]提出的花朵授粉方法在尋優過程中容易陷入局部最優解,效率低。遺傳算法具有良好的全局搜索能力以及收斂速度快的優點,本文利用遺傳算法對SVM參數進行優化。
目前,對SVM進行參數尋優,利用優化后的SVM解決問題的研究有很多,但是解決通風系統故障的研究較少,本文利用遺傳算法對SVM的懲罰參數和核函數參數進行優化,利用優化后的SVM對通風系統進行故障診斷,提升了故障診斷的準確率,對提高礦井通風安全智能化管理以及通風系統安全保障能力有一定的指導意義和建設意義。
支持向量機在機器學習中占有重要地位,其相比于其他的分類預測算法,有著更高的準確率且具有較強的魯棒性。SVM的基本思想是在N維空間利用結構風險最小化(SRM)原則設計具有最大間隔的最優分類面,使樣本線性可分,分類平面如圖1所示。

圖1 分類平面示意Fig.1 Schematic diagram of the classification plane
圖1中黑色實線為分類決策面,最優超平面問題就是使分類間隔margin達到最大[12]。
分類決策函數表達式[13]為:
M(x)=sgn(w·φ(x)+b)
(1)
式中:sgn(·)為符號函數;w為N維權向量;b為分類閾值;φ(x)為將x映射后的特征向量。
根據結構風險最小化原則,分類面優化問題的目標函數進一步演化為[14]:
(2)
式中:c為懲罰系數;ξi為松弛系數。
SVM進行分類的過程中,是將原本線性不可分的問題映射到高維空間變為線性可分,樣本會存在噪聲,使整個模型無解。式(2)中ξi的意義就是允許噪聲的存在,將問題變為近似線性可分;c決定著ξi的大小,即c決定著模型對于這種誤差的容忍程度,c的取值過大,ξi就會非常小,不允許噪聲的存在,此時會出現過擬合的現象,降低模型的泛化能力,如圖2(a)所示;若c取值過小,模型對于誤差的容忍程度過大,會造成欠擬合,如圖2(b)所示。

圖2 過、欠擬合情況分類平面示意Fig.2 Schematic diagram of the classification of over-fitting
文獻[1]使用的高斯徑向基核函數運用最為廣泛,無論樣本大小都有較好的性能[15],對此核函數進行分析實驗,其中:
(3)
(4)
式中:δ為高斯核的帶寬;g為核函數參數。
根據式(3)、式(4)可以看到,g取值的大小會直接影響整個核函數的映射性能以及支持向量的個數,如果g設的太大,會造成徑向基函數(RBF)只作用于支持向量樣本附近,對于未知樣本分類效果很差;而如果設的過小,則會造成平滑效應太大,最終影響SVM進行故障診斷的準確率。
通常,c的取值范圍為(0,100],g的取值范圍為[0,1000],針對不同問題,c,g的取值范圍不同,本文c的取值在區間(0,1.5],g的取值在區間[0,5]。利用文獻[1]中的10分支通風網絡數據進行故障診斷驗證優化c,g取值的必要性,其中訓練樣本52個,測試樣本95個。
1.2.1c,g對故障診斷準確率的影響性分析
為了得到c,g變化對于準確率的具體影響,令c,g每隔0.01取值,兩兩組合得到75 000組準確率數據,c,g對準確率的影響具體如圖3所示,得到c,g對準確率影響的規律:c越大對誤差的容忍程度越小,得到的準確率越高,但是過大會出現過擬合;c過小,模型準確率降低,模型對誤差容忍程度較大,出現了欠擬合的現象。g的取值小,模型準確率高,但g過小也會導致模型出現過擬合的現象。上述窮舉方法耗費時間巨大,而且只能看出c,g最優取值的大致范圍,很難確定最優c,g的取值。

圖3 c,g取值范圍準確率Fig.3 c,g the optimal value range accuracy rate map
為了清楚的看到上述現象,將圖3進行局部放大,得到的結果如圖4所示。

圖4 局部放大圖Fig.4 Partially enlarged view
1.2.2c,g參數的普適性分析
通過更換100分支樣本,用前文的方法對此樣本的c,g對準確率的影響規律及取值區間進行探究,c,g的取值區間發生了變化,c的取值為(0,100],g的取值為[0,1.0],結果如圖5所示。

圖5 100分支c,g取值范圍準確率Fig.5 100 branch, optimal range accuracy rate map
通過和10分支通風網絡c,g最優取值區間以及對故障診斷準確率的影響分析得到c,g并不具有普適性。在進行礦井通風故障診斷時,若人工選取參數,每更換不同的樣本,都要進行c,g對于準確率影響規律分析及取值范圍確定,工作量巨大,并且即使依靠人工選取得出最優取值范圍,也無法得到最優的參數組合。
1.2.3 隨機選取c,g組合故障診斷準確率
在前文確定的取值范圍內,隨機選取c,g進行組合,故障診斷的準確率見表1。通過結果可以判斷,隨機選取參數得到的準確率并不高,結果如圖6所示。

表1 c,g組合數據Table 1 c, g combination data table

圖6 隨機c,g組合的準確率對比Fig.6 Comparison of the accuracy of random c and g combinations
1.2.4c,g取值變化對故障診斷準確率影響程度
為了驗證c,g對于準確率影響的程度,以c=1,g=1為基礎,進行微小的變化,數據見表2。

表2 準確率對比Table 2 Accuracy rate comparison table
數據說明c,g的取值發生很小的變化,就會引起準確率的大幅波動,人工選取參數很難精準的得到最優結果。
綜上所述,人工選取c,g的方法很難得到最優的參數組合,運用算法進行參數尋優是非常必要的。
遺傳算法求解優化問題的基本思想是:模仿生物進化的原理,使種群不斷地向目標進化。本文中個體為c,g的組合,以SVM故障診斷交叉驗證準確(CVaccuracy)作為適應值,用個體的適應值作為評判標準,通過選擇、交叉和變異操作,保留優秀的個體(適應值高的個體),不斷淘汰較差的個體(適應值低的個體),最終得到準確率最高時的c,g。
1)染色體編碼,初始種群的生成
運用遺傳算法解決問題時,首先對個體進行合適的編碼[16]。本文對懲罰系數c和核函數參數g采用實型編碼,初始種群為隨機生成。
2)適應度函數
以交叉驗證準確率(CVaccuracy)作為適應值,計算如下:

(5)
accuracy=mright/m
(6)
式中:accuracy為分類準確率;v為交叉驗證數;mright為測試樣本中分類正確的樣本個數;m為樣本個數。
3)選擇算子
本文采用輪盤賭法進行選擇操作。具體過程如下:
設共有n個個體,每個個體的適應值為f(xi)(i=1,…,n),被選擇的概率為p(xi),首先求得個體適應值的總和:
(7)
再計算每個個體適應值占種群總適應值的比例p(xi),最后根據p(xi)選擇個體。
p(xi)=f(xi)/SUM
(8)
4)交叉算子、變異算子
本文交叉方式為單點交叉。變異的方式有基本位變異和均勻變異[17]。本文采用基本位變異。
改進遺傳算法就是將每代個體適應值與種群的平均適應值進行比較,適應值比平均適應值高的個體交叉變異率不變,適應值低的,就按照一定的數學處理進行賦值。這樣可以保留較好的個體,優化適應值低的個體,使優化效果更加明顯[18]。算子計算如下:
交叉概率:
Pc=0.5(maxfit-fitn)/(maxfit-meanfit)
(9)
變異概率:
Pm=0.01(maxfit-fitn)/(maxfit-meanfit)
(10)
式中:maxfit為當代種群中的最大適應值;meanfit為平均適應值;fitn為第n個個體的適應值。
設置遺傳算法初種群規模為20。交叉概率初始為0.85,變異概率初始為0.05,以后根據個體的適應值進行自動調整。設置程序終止條件為準確率大于99%或進化代數達到50代。將改進遺傳算法尋得的最優參數帶入SVM進行計算,得到最終的預測準確率,經過50次迭代后,得到的適應值曲線如圖7所示。

圖7 改進遺傳算法適應值曲線Fig.7 Improved genetic algorithm fitness curve
通過圖7可以看出,GA篩選的最佳懲罰系數c為1.993 1,核函數參數g為0.056 018,此時得到的交叉驗證準確率(CVaccuracy)為82.692 3%。利用參數優化后的SVM進行故障位置診斷,得到的診斷準確率可以達到97.894 7%,擬合程度如圖8(a)所示,未進行參數尋優時的故障診斷結果如圖8(b)所示。
通過圖8可以直觀的看出優化后的SVM進行故障位置診斷,預測數據與真實數據幾乎完全擬合,相比較沒有優化的SVM進行故障位置診斷,診斷效果有明顯提升。
機器學習的過程中,都會出現過擬合的問題,為了進一步驗證優化后的模型不會出現過度擬合的現象,將樣本數據擴大,利用本文提出的優化模型對文獻[1]中100分支復雜通風網絡的4 752個訓練樣本,4 751個測試樣本進行故障位置診斷。未優化模型(c=1,g=2)得到的故障位置診斷準確率為76.678 6%;利用遺傳算法優化參數后的故障診斷準確率為78.658 2%。擴大樣本后,遺傳算法優化的通風故障診斷系統依舊能夠保證準確率有所提升,說明在優化的過程中,未出現過擬合現象。優化前后的散點圖如圖9所示。
從前文可以看出,本文采用的GA-SVM方法對于簡單通風網絡和復雜通風網絡的故障診斷都具有一定的優化效果。為了進一步驗證本文方法的有效性,更換了不同通風系統的樣本數據。GA算法各參數不變,通風系統網絡圖和得到的結果如圖10~12所示。未優化前的故障診斷準確率為73.325 1%,經過遺傳算法優化后的準確率為91.935 5%。由此可以看出更換樣本后,GA優化的通風系統故障診斷模型依舊可以提升診斷準確率,相比于人工選取參數的方法具有一定的優勢。同時可以看出不同的樣本最優的c,g參數也不同,這也證明了c,g參數不具有普適性,證明了本法的必要性。
故障診斷是對故障位置和故障量診斷,文獻[1]中未進行c,g優化時,故障量診斷效果如圖13所示,利用本文方法優化參數后故障量診斷效果如圖14所示,可以看到故障量診斷準確率有一定的提升。

圖11 驗證樣本遺傳算法適應度曲線Fig.11 Verification of the fitness curve of the sample genetic algorithm

圖12 驗證數據散點圖Fig.12 Verify data unoptimized scatter plot

圖13 未優化參數故障量診斷回歸效果Fig.13 Unoptimized parameter fault volume diagnosis regression effect

圖14 GA-SVM故障量診斷回歸效果Fig.14 GA-SVM fault diagnosis regression effect
1)本文將遺傳算法與SVM結合的方法應用于通風系統故障診斷,試驗結果表明,經遺傳算法優化的SVM通風系統故障診斷模型擁有更高的準確率。
2)優化后的懲罰系數(c)和核函數系數(g)未引起通風系統故障診斷系統的過擬合,有效的減少了擬合誤差并且增強泛化能力。
3)本文所提出的優化算法對SVM參數優化后,礦井通風系統故障量診斷準確率有所提升,證明了參數優化的有效性。