宋玉生, 劉光宇, 朱 凌, 王 堅
(1.杭州電子科技大學 自動化學院,浙江 杭州 310018;2.浙江財經大學 信息管理與人工智能學院,浙江 杭州 310018)
支持向量機(support vector machine,SVM)是一種專門針對小樣本而提出的有監督機器學習方法,該方法具有結構簡單、泛化能力強和易于實現等優點。目前,SVM已經廣泛應用于機器學習的各種領域,如人臉圖像識別[1]、語音情感識別[2]及故障診斷[3]等。SVM的性能受模型內部參數影響較大[4],選擇合適的SVM參數可獲得較好的SVM分類效果。為此,許多學者提出多種SVM的參數選擇方法,如網格搜索、雙線性搜索、遺傳算法等。其中網格搜索方法非常耗時,而且只能找到給定的格點上的值,有一定局限性。許多學者利用蟻群優化算法[5]、粒子群優化算法[6]等方法對SVM的參數進行尋優,但這些算法在存在易陷入局部最優和求解精度低等問題,無法獲得較理想的SVM模型參數。
2014年,Seyedali M等人[7]提出灰狼優化(gray wolf optimization,GWO)算法,該算法具有結構簡單、全局性好等優點,更適合SVM的參數尋優。但GWO算法仍然存在易陷入局部最優、開發能力不足等問題。
本文在原GWO基礎上使用控制參數非線性遞減和隨機權重的位置更新策略來改進GWO。在標準的測試函數上進行仿真實驗,結果表明,改進的灰狼優化(improved gray wolf optimization,IGWO)算法性能優于GWO。隨后將IGWO應用于光伏陣列故障診斷的SVM參數尋優過程中。實驗結果表明,IGWO-SVM模型在光伏陣列故障診斷中有很好的表現。
對于非線性近似可分樣本的SVM優化問題可描述為[8]
(1)
s.t.yi(ωTφ(xi)+b)≥1-εi,i=1,…,n
(2)
式中ω為超平面法向量,εi(εi≥0)為松弛變量,C為懲罰因子,用來對錯誤分類進行懲罰。n為訓練樣本個數,yi∈{+1,-1}為類別標簽,φ(·)為低維空間到高維空間的映射函數。
在式(1)和式(2)的基礎上引入拉格朗日函數、對偶原理及核函數,獲得SVM的決策函數,其具體表達式為
(3)
K(xi,x)=exp{-g‖xi-x‖2}
(4)
式中ai為拉格朗日因子,K(xi,x)為高斯核函數,g為核函數參數。

(5)
A=2a·r1-a
(6)
C=2·r2
(7)
a=2-2t/tmax
(8)

然而,在獵捕過程中獵物的實際位置是未知的,由于α,β,δ狼更接近獵物,將α,β,δ狼的位置近似視為獵物的位置,通過式(5)~式(8)來更新各灰狼的位置,最后對位置求平均得到灰狼ω的最終位置。灰狼位置更新的具體過程如式(9)~式(10)所示
(9)
(10)
式中Xα,Xβ,Xδ分別為本次迭代適應度為前三的灰狼的位置。A1,A2,A3和C1,C2,C3為每次迭代時產生的系數。
2.2.1 控制因子非線性遞減策略
群體智能算法前期注重算法的全局搜索,后期注重算法的局部開發[9]。較強的全局搜索能力能避免算法的早熟收斂,較強的局部開發能力可提高算法后期的收斂速度。GWO作為群體智能算法的一種,其全局搜索和局部開發能力的協調為算法較快獲得全局最優的關鍵。
在GWO算法中,當A≤1時,灰狼攻擊獵物,進行局部搜索,當A>1時,灰狼散去,進行全局搜索。由式(8)可知,參數A隨著控制因子a的變化而不斷的變化。因此,整個圍捕獵物過程主要通過參數a的線性變化來完成。控制參數a在迭代過程中的變化方式影響算法的開發和搜索能力的平衡。標準的GWO算法的參數a是線性遞減的,然而,在算法搜索過程并非線性變化的,因此,參數a的線性變化無法適應實際的搜索情況。尤其在解決多峰函數問題時,GWO容易陷入局部最優[7]。為此,本文提出一種非線性控制因子策略
(11)
在迭代初期a的衰減速度較小,式(6)中A的值波動較大,算法更容易跳出局部最優,從而提升了算法的全局搜索能力。迭代后期a的衰減速度較大,算法在局部更快找到最優解。因此,改進的控制策略較好地平衡算法的全局搜索和局開發的能力。
2.2.2 隨機權重的位置更新策略
由式(9)和式(10)可知,標準的GWO算法以三個最佳灰狼的位置平均值作為下次迭代的灰狼的位置,該方法并未考慮實際灰狼種群的等級差異。在實際的尋優過程中,起引導作用的α,β,δ狼的適應度依次降低,α狼的位置更可能接近實際最優解。為突出最優狼對種群的全局帶領能力,在位置更新過程中增加α狼的位置權重,同時減小δ狼的權重。同時為進一步避免算法的陷入局部最優,在保證α狼權重系數大于δ狼權重系數的情況下,采用隨機權重更新下一代種群的方式。本文引入隨機權重的位置更新策略
(12)
式中r3為[0,1]之間的隨機數。
SVM模型懲罰因子C表示用最優超平面對樣本進行分類時對錯分的容忍程度,其權衡了SVM分類正確率與模型復雜度的關系[10]。C越大,訓練數據集的分類正確率越高,但分類間隔減小,容易出現過擬合問題,分類器對推廣泛化能力降低。反之,訓練數據集被錯分的幾率增大,分類間隔增大,但容易出現欠擬合問題,分類器的泛化能力也會降低。
高斯核函數中g確定原始數據特征空間和高維數據特征空間的映射關系[11]。g較大時,高斯核函數的數值將趨近于0,SVM會對所有的訓練樣本正確分類,但分類超平面會變復雜,模型的泛化能力降低。g較小時,SVM判別函數將趨近于1,模型會把所有的測試樣本判斷為訓練樣本較多的一類,模型的推廣能力依舊不好。找到合適的懲罰因子C和核函數σ對SVM在樣本的泛化能力推廣有重要意義。本文利用改進的GWO算法對SVM參數進行優化。
IGWO優化SVM參數的流程如下:
1)輸入實驗數據,為消除量綱對分類的影響,對原始數據集進行歸一化處理,具體處理方式如下
(13)
式中x為原始的數據特征;xmin和xmax分別為每組特征的最小值和最大值,y為歸一化處理后得到的數據。
2)將整個數據集按著比例隨機分成訓練集和驗證集兩部分,其中訓練集用于訓練SVM模型,驗證集用來對SVM模型評價和選擇。
3)將灰狼將參數C和參數g作為灰狼的位置參數,對灰狼的種群規模、個體維度、參數尋優范圍和算法最大迭代次數進行初始化。
4)利用參數C和參數g在訓練集上得到SVM模型,將得到的模型在驗證集上進行分類,將分類正確率作為每匹狼的適應度值。
5)根據適應度值將灰狼種群劃分為α,β,γ和ω共4個等級。
6)根據式(5)~式(7)、式(9)、式(11)和式(12)對種群中每個灰狼位置進行更新。
7)判斷是否達到最大迭代次數,若達到則參數尋優結束,否則轉向步驟(4),利用灰狼更新后的位置參數繼續進行迭代尋優。
8)迭代結束時輸出最優狼位置,即C和g的值,并且利用C和g建立SVM分類模型。
為測試IGWO算法的尋優能力,使用IGWO算法和標準的GWO算法在10個標準測函數上進行仿真實驗,統計并分析兩種算法在不同測度下的仿真結果如表1。仿真函數分別為Sphere (f1),Sum of Different Powers (f2),Schwefel1.2(f3),Schwefel2.21(f4),Rosenbrock(f5),Step(f6),Quartic Function with noise(f7),Schwefel 2.26(f8),Rastrigin(f9),Penalized(f10),其中,f1-f5為單峰函數,f6-f10為多峰函數。10個測試函數的維度設置為30,測試函數的理論最優值都為0。算法的參數設置:種群規模N=30,最大迭代次數tmax=500。

表1 IGWO和GWO對10個測試函數的尋優結果
利用IGWO和GWO分別進行30次迭代實驗,用30次實驗結果的最優值(Best)、最差值(Worst)和平均值(Mean)評價算法的尋優精度,用30次實驗結果的標準差(St.dev)來評價算法的穩定性。
由表1的實驗結果可知,IGWO在單峰和多峰測試函數上表現都優于GWO。相比GWO,IGWO得到的均值、最優值和最差值更接近理論最優值,說明改進策略提升IGWO的尋優精度。同時IGWO獲得的結果的標準差更小,說明改進算法的穩定性更高。IGWO在函數f7,f8和f9上獲了全局最優的結果,而GWO只在函數f7上獲得理論最優值,表明改進策略有效提升GWO算法克服陷入局部最優的能力。
為更直觀反映IGWO在參數尋優方面的優勢,圖1給出IGWO算法和GWO算法在3個標準測試函數f1,f3和f6尋優收斂曲線。從圖1可清晰地看出,IGWO較快的收斂速度和收斂精度。

圖1 IGWO和GWO在函數f1,f3,f6上的尋優迭代曲線
本次實驗數據來源于本團隊自主研發的微型光伏電站系統。該系統利用傳感器采集光伏陣列的工作狀態信息,包括系統內部的電流、電壓等電氣信息和系統工作的溫度、光照強度等環境信息。系統包含8塊光伏組件,在采集實驗數據時,設置4種常見的光伏故障類型來模擬實際的光伏故障,其中包括斷路、短路、全部遮擋和部分遮擋,同時設置正常的工作狀態作為一種特殊的故障類型。各種故障的具體的實現方式如表2所示。

表2 光伏陣列故障狀態類型
采用微型光伏電站系統在中國浙江某地的2020年8月14日上午9:00~下午3:00的室外環境下的6908組實驗數據。本次實驗在一個微電站上進行實驗,每隔一定時間切換一種故障狀態,分別記錄不同故障狀態下的故障樣本數據。每個樣本包含輸出電壓、總輸出電流、外界光照強度和外界溫度4個特征值。整個實驗過程光照強度和光伏整列輸出隨時間變化曲線如圖2所示。

圖2 光照強度和光伏整列輸出隨時間變化曲線
本次實驗采用簡單的交叉驗證方法,將整個實驗數據分為訓練集和驗證集,測試集和驗證集各占總數據量的70 %和30 %。用驗證集的分類正確率作為優化算法的適應度,利用訓練集對SVM模型進行訓練。同時將灰狼種群設置為10,最大迭代次數設置為30。此參數尋優的范圍設置為C∈[0.1,100],g∈[0.1,100]。在MATLAB平臺上利用LIBSVM[12]進行實驗。
IGWO-SVM和GWO-SVM在整個迭代過程中適應度變化如圖3所示。由圖可知,IGWO-SVM在第6代左右即達到最大的適應度值,而GWO-SVM在第10代左右才達到其最大的適應度值。IGWO-SVM比GWO-SVM更快達到更大的適應度值,說明IGWO-SVM在真實的光伏故障數據集上有更快的收斂速度。同時IGWO-SVM模型的最大適應度值大于GWO-SVM的最大適應度值,說明IGWO-SVM有更高的收斂精度,同時IGWO-SVM模型在一定程度上克服了GWO-SVM陷入局部最優的問題。

圖3 尋找最佳參數適應度曲線
IGWO算法在獲得最大適應度時對應的C為13.7,g為0.34,同時GWO算法在獲得最大適應度時對應的C為2.1,g為1.3。利用所得的參數在訓練集上建立SVM分類器模型進行訓練,之后利用該模型對光伏陣列故障驗證集進行分類。
由表3可知,IGWO-SVM模型相比GWO-SVM模型在C3,C4三種故障類型的識別正確率均有提升,尤其對C4故障判斷的準確率提升幅度較大。短路故障(C4)是微電站系統中非常嚴重的故障,該故障容易引起微電站系統性故障,對系統安全平穩運行極為不利。本文提出的IGWO-SVM模型極大地提升了短路故障的識別率,對光伏陣列的故障診斷有很高的實用價值。

表3 光伏陣列故障分類的實驗結果
本文針對SVM參數C和參數g的選擇困難問題,提出一種IGWO優化SVM參數的方法。在GWO算法的基礎上,引入非線性控制因子和新的位置更新策略,利用標準測試函數對GWO算法性能進行驗證,結果表明:改進策略提高算法的全局搜索能力和局部開發的能力。隨后建立IGWO-SVM模型,利用IGWO對SVM的參數進行優化,并將該模型應用到光伏陣列故障診斷。最后實驗驗證了IGWO-SVM模型的優越性。