徐靜安 吳 芳
2014年11月上海化工研究院化機(jī)所組織學(xué)術(shù)報告會,在彭東輝副總征集的論文集初稿中讀到“難過濾物料過濾過程的理論研究與實踐”。在實驗數(shù)據(jù)處理部分采用比較前沿的數(shù)據(jù)驅(qū)動算法之一的支持向量機(jī)(SVM)算法對實驗數(shù)據(jù)進(jìn)行非線性求解,預(yù)測一定過濾條件下的濾餅過濾性能。
筆者曾帶教2009級學(xué)術(shù)碩士陳玉巖,該同學(xué)學(xué)習(xí)能力較強(qiáng),探索應(yīng)用人工神經(jīng)網(wǎng)絡(luò)及遺傳算法技術(shù),“倒逼”導(dǎo)師學(xué)習(xí),教學(xué)相長。由此我惡補(bǔ)了幾本書,其中人工神經(jīng)網(wǎng)絡(luò)著作的部分內(nèi)容涉及SVM算法,所以看到上?;ぱ芯吭喉椖繎?yīng)用SVM的信息,盡管“小荷才露尖尖角”,也是倍感興奮的。
兩年前吳芳碩士從天津大學(xué)畢業(yè)來上海化工研究院工作,我曾調(diào)閱她的碩士論文《橡膠混煉過程在線質(zhì)量監(jiān)控技術(shù)的應(yīng)用研究》,了解到她有應(yīng)用數(shù)學(xué)基礎(chǔ)。我就主動聯(lián)系,希望我們把SVM算法靜下來再學(xué)習(xí),加深理解,以利于推廣應(yīng)用,以免“以其昏昏,使人昭昭”。
為此,她先后幫我下載了兩本專著:鄧乃揚(yáng)、田英杰著《數(shù)據(jù)挖掘中的新方法——支持向量機(jī)》(科學(xué)出版社,2004年出版);李國正、王猛、曾華軍譯《支持向量機(jī)導(dǎo)論》(電子工業(yè)出版社,2004年出版)等。我推薦她閱讀《DPS數(shù)據(jù)處理系統(tǒng)——實驗設(shè)計、統(tǒng)計分析及數(shù)據(jù)挖掘》第43章“神經(jīng)網(wǎng)絡(luò)和支持向量機(jī)”,以及周春光、梁艷春編著的《計算智能——人工神經(jīng)網(wǎng)絡(luò)、模糊系統(tǒng)、進(jìn)化計算》(吉林大學(xué)出版社,2009年)等。我們還多次討論了SVM算法原理、應(yīng)用案例、不同計算方法的比較分析。
自2014年12月至今,在我工作摘記中有記載的討論共有13次,所以我們共同完成本講座的講義編寫。
計算智能(Computational Intelligence,CI)通俗來講是指:不依賴于專業(yè)知識或經(jīng)驗,不需要事先知曉系統(tǒng)或過程的精確數(shù)學(xué)模型,而是從數(shù)據(jù)的角度出發(fā)對系統(tǒng)或過程進(jìn)行分析的技術(shù)。
SVM(Support Vector Machine)是計算智能范疇中一種較常用的算法,由Corinna Cortes和Vapnik等在20世紀(jì)90年代提出。SVM基于統(tǒng)計學(xué)習(xí)理論,其基本思想是利用有限的數(shù)據(jù),在模型的復(fù)雜性(回歸問題中指方程的顯著性)和預(yù)測能力(回歸問題中指方程的預(yù)測精度)之間尋求最佳折衷,目的是使模型具有最好的泛化推廣能力。實現(xiàn)方法是尋找一個滿足分類要求的最優(yōu)分類超平面,使得該超平面在保證分類精度的同時,能夠使其兩側(cè)的空白區(qū)域最大化。SVM在解決小樣本、多因素、非線性問題中表現(xiàn)出特有的優(yōu)勢,是一種數(shù)據(jù)驅(qū)動算法。SVM常用于模式分類(支持向量分類Support Vector Classification,SVC)和非線性回歸(支持向量回歸Support Vector Regression,SVR),本文重點討論SVM用于SVR。
SVM是從線性可分情況下的最優(yōu)分類面(在二分類問題中即為分類線)發(fā)展而來的,基本思想見圖1。以二分類為例,要求分類線不但能將兩類正確分開(分類錯誤率為0),而且保證兩類之間的分類間隔最大,該分類方法稱為最大間隔分類法。其中H為分類線,H1,H2分別為過各類中離分類線最近的樣本且平行于分類線的線,同時要保證分類線H離H1,H2是等距的,它們之間的距離叫做分類間隔(margin)。推廣到多類分類問題中,就是尋找最優(yōu)分類面或分類超平面。
圖1 SVM算法的最優(yōu)分類平面
設(shè)訓(xùn)練集{xi,yi},xi是特征變量,yi是樣本對應(yīng)的類別標(biāo)簽:當(dāng)樣本xi屬于第一類時,yi為+1;當(dāng)xi屬于第二類時,yi為-1。將最優(yōu)分類面方程定義為w·x+b=0,其中w是法向量(亦可稱為權(quán)重向量),b是截距(亦可稱為偏置),則有:
分類面H滿足其到H1和H2之間的間隔相等且最大的條件,根據(jù)距離公式得到分類間隔H1與H2之間的距離為2/||w||,將目標(biāo)函數(shù)定為:求2/||w||的最大值,即等價于求min||w||2的最小值,那么分類問題可以表達(dá)成:
其中||w||為二階范數(shù),表示向量w的長度。
采用拉格朗日方法求解上述不等式,由于直接處理不等式約束比較困難,通常將拉格朗日原始問題進(jìn)行對偶處理(對偶方法可以減少未知量個數(shù),保證數(shù)據(jù)總以成對的內(nèi)積形式出現(xiàn),為后面核函數(shù)的引入提供可能),并求解得到:
可以看出w,b(分類平面)僅僅依賴于拉格朗日乘子αi不為零的輸入點,因此將αi≠0對應(yīng)的輸入xi稱作支持向量。由圖1可以直觀地看出,在輸入樣本中,僅有部分輸入xi為支持向量(加黑的點)對算法作出貢獻(xiàn),具有稀疏性。支持向量這個特性的物理意義就是遠(yuǎn)離分類平面的數(shù)據(jù)點將不影響分類結(jié)果,所以可用于小樣本問題。至此分類平面已求出,即建立了二分類的線性分類器,三類及以上分類問題的求解同上述方法一致。
實際上,大多數(shù)據(jù)之間都存在非線性關(guān)系,如圖2(a)所示,二維空間中的兩類非線性相關(guān)的數(shù)據(jù)無法用任意方向的一條直線區(qū)分開來。這種情況下,采用支持向量機(jī)進(jìn)行分類需要引入核函數(shù)。
Φ為非線性映射函數(shù):x→Φ(x∈X為原始低維空間,Φ∈F為高維空間),如果輸入空間中的函數(shù)K(xi,xj)等于變換后的特征空間中的內(nèi)積,即滿足K(xi,xj)=〈Φ(xi),Φ(xj)〉,則為核函數(shù)。
也就是核函數(shù)K(xi,xj)可以實現(xiàn)將低維輸入空間中的非線性問題轉(zhuǎn)換為高維特征空間中的線性問題來求解,如圖2(b)所示,二維數(shù)據(jù)映射到三維空間后,可以通過一個分離超平面實現(xiàn)類別劃分。接下來只需要在高維特征空間中利用類似線性求解分類平面的方法進(jìn)行求解,即可以解決該非線性分類問題。
圖2 非線性問題到線性問題的轉(zhuǎn)換
核函數(shù)將高維空間的內(nèi)積運算轉(zhuǎn)化為低維輸入空間的核函數(shù)計算,那么計算時只需要確定核函數(shù)K(xi,xj),而不需要知道映射函數(shù)Φ(x),從而巧妙地避免了在高維特征空間中容易產(chǎn)生的“維數(shù)災(zāi)難”等問題。
常用核函數(shù)有以下幾種:
多項式核函數(shù)K(xi,xj)=[(xi,xj)+c]d,d=1為線性核函數(shù),d>1為多項式核函數(shù)
高斯核函數(shù)K(xi,xj)=exp[-(||xi,xj||2)/2σ2],又叫徑向基函數(shù)(Radial Basis Function,RBF)。
Sigmoid核函數(shù)K(xi,xj)=tanh(p<xi,xj>+c),S曲線函數(shù)。
σ,c都是核函數(shù)的參數(shù),簡稱核參數(shù),主要影響樣本數(shù)據(jù)在高維特征空間中分布的復(fù)雜程度,從而決定置信范圍,最終影響結(jié)構(gòu)風(fēng)險范圍。核參數(shù)的取值通常根據(jù)經(jīng)驗而定,對RBF核函數(shù),σ取值在0.5~2之間。
選擇一個恰當(dāng)?shù)膬?nèi)積核,SVM就可以自動計算所有重要的網(wǎng)絡(luò)參數(shù),如選RBF核函數(shù),那么SVM的體系結(jié)構(gòu)——網(wǎng)絡(luò)中RBF函數(shù)的數(shù)目和它們的中心、線性權(quán)值和偏置水平都自動計算生成。
為了直觀地理解SVM的體系結(jié)構(gòu),引用Simon Haykin著,葉世文、史忠植譯《神經(jīng)網(wǎng)絡(luò)原理》,體系結(jié)構(gòu)圖示見圖3。
圖3 支持向量機(jī)的體系結(jié)構(gòu)圖
對于近似線性可分的問題(包括線性問題或通過核函數(shù)將非線性問題映射到高維空間中的線性問題),由于各種原因,數(shù)據(jù)存在離群點或壞點,導(dǎo)致任何劃分超平面都不能達(dá)到正確分類。如圖4所示,框和圈是不同的兩類,在H1面右上方的一個框偏離了自己原本所應(yīng)該在的半個空間,如果直接忽略,H可以認(rèn)為是分類平面,那么該分類問題可以很容易地得到解決,但是由于該壞點的出現(xiàn)無法構(gòu)造分類超平面。而且在計算的時候,數(shù)學(xué)方法無法辨認(rèn)出壞點或離群點,此時分類問題容易受極少數(shù)點的干擾。解決方法是允許一些點到分類平面的距離不滿足原先的要求,在約束條件中引入容錯性,給閾值加一個松弛變量,即允許y[i(wx)i+b]≥1-ζi,ζi>0。松弛變量的值表示允許對應(yīng)的點離群有多遠(yuǎn),值越大,表示離群越遠(yuǎn)。同時松弛變量 ζ=(ζ1,ζ2,...,ζ)iT的引入體現(xiàn)了訓(xùn)練集允許被錯分的情況,放棄了對離群點的精確分類。采用 ξi作為度量,描述訓(xùn)練集被錯分的程度,那么錯分程度 ξi最小化也應(yīng)該是目標(biāo)函數(shù)之一,近似線性可分問題變?yōu)椋?/p>
圖4 近似線性可分問題
C為懲罰參數(shù),是用戶事先給定的值,它決定了離群點帶來的損失,是間隔的最大化與分類誤差之間的折衷,可以理解為權(quán)重。C值定得越大,表示越不想放棄離群點,最極端的情況是把C定為無限大,這樣只要有一個離群點,目標(biāo)函數(shù)的值馬上變成無窮大,問題就無解了,C值的選取在后面有介紹。
近似線性可分問題的優(yōu)化式與線性可分問題的形式相近,同樣采用拉格朗日法進(jìn)行求解。
回歸問題中訓(xùn)練集 {xi,yi},xi為輸入或影響因素,yi為輸出或指標(biāo),求解回歸問題就是尋找一個實值函數(shù)f(x)來表示x與y之間的對應(yīng)關(guān)系。實際上回歸問題是分類問題的延伸,不同的是,回歸問題中yi并不限定取1或者-1,而是實際測量或記錄的目標(biāo)函數(shù)值。
在SVM的回歸問題中,輸出是實值,輸出值與實測值之間的偏差不再是離散的,需要定義一個損失函數(shù),這個損失函數(shù)可以忽略真實值上下一定范圍內(nèi)的誤差。最常采用的是ε不敏感損失函數(shù),該函數(shù)認(rèn)為在ε不敏感區(qū)內(nèi)的訓(xùn)練點誤差為0,這個概念和經(jīng)典的基于最小二乘法的回歸處理是截然不同的。以一般線性回歸問題為例,如圖5所示,在ε不敏感帶內(nèi)的樣本點(xi,yi)不會影響決策函數(shù)f(x)。ε不敏感損失函數(shù)的范圍為|y-f(x)ε|=max{0,|y-f(x)|-ε}。
圖5 ε不敏感帶
由于最小二乘估計算法對離群點非常敏感,SVR求解非線性回歸的魯棒性——穩(wěn)健性算法是利用絕對誤差作為被最小化的量,構(gòu)成損失函數(shù)。
對于非線性回歸問題,同非線性分類問題一樣,采用核函數(shù)將低維輸入空間中的非線性問題映射到高維空間中,使之成為線性問題,再采用求解線性回歸問題的方法進(jìn)行求解即可。
相比其他統(tǒng)計學(xué)習(xí)方法,SVM有其獨特之處,具體表現(xiàn)如下:
(1)SVM建立在結(jié)構(gòu)風(fēng)險最小化原則的基礎(chǔ)上,其他統(tǒng)計學(xué)方法,如神經(jīng)網(wǎng)絡(luò)的優(yōu)化目標(biāo)是基于經(jīng)驗風(fēng)險(學(xué)習(xí)誤差)最小化,容易陷入局部最優(yōu),訓(xùn)練結(jié)果不穩(wěn)定,需要大量樣本才能得到較好的統(tǒng)計效果。結(jié)構(gòu)風(fēng)險最小化包括兩方面:一是經(jīng)驗風(fēng)險(學(xué)習(xí)誤差)最小化,SVM尋找最優(yōu)分類超平面滿足分類精度,使經(jīng)驗風(fēng)險最??;二是置信范圍最小化(學(xué)習(xí)機(jī)器的復(fù)雜性),采用支持向量作為分類的依
應(yīng)用處理線性可分問題的最大間隔法構(gòu)造回歸問題中的超平面,成為最大間隔回歸法,經(jīng)過推導(dǎo),求回歸問題轉(zhuǎn)化為如下最優(yōu)化問題:據(jù),滿足學(xué)習(xí)機(jī)器簡單。因此計算不會陷入局部極值,避免了過學(xué)習(xí)和欠學(xué)習(xí)問題,且推廣能力好。
(2)SVM適用于求解全局最優(yōu)化問題,算法求解的是一個凸優(yōu)化問題,局部最優(yōu)解一定是全局最優(yōu)解。
(3)核函數(shù)的引入,將低維空間中的非線性數(shù)據(jù)映射到高維空間,解決了非線性不可求解的問題,且不增加可調(diào)參數(shù)的個數(shù);同時只需要確定輸入空間的核函數(shù),計算速度不受維數(shù)大小的影響,避免了在高維特征空間中計算的“維數(shù)災(zāi)難”問題;根據(jù)選取核函數(shù)形式的不同,可以有效地解決線性和非線性回歸和分類問題。
(4)適用于求解小樣本問題:SVM基于結(jié)構(gòu)風(fēng)險最小化原則,泛化能力強(qiáng),算法具有全局最優(yōu)性,是針對小樣本統(tǒng)計的理論。
(5)SVM可用于解決缺失數(shù)據(jù)問題:在工程實際中,由于各因素的影響,如測量難度大、成本高、人為因素等都可能會導(dǎo)致數(shù)據(jù)缺失,一般的回歸算法都不能直接處理數(shù)據(jù)缺失問題,SVM可以用于缺失問題的求解。
(6)當(dāng)然,SVM算法也有其局限性,具體表現(xiàn)在兩方面:核函數(shù)和核參數(shù)的選取在更大程度上依賴于對計算結(jié)果的分析和經(jīng)驗;求解二次規(guī)劃涉及N階矩陣的計算(N為樣本個數(shù)),當(dāng)N數(shù)目很大時,N階矩陣的存儲和計算將耗費大量的機(jī)器內(nèi)存和運算時間。因此樣本量較大時,SVM算法計算速度較慢。
在DPS電子表格中,SVR分析數(shù)據(jù)的格式為數(shù)據(jù)按一行一個樣本、一列一個變量的格式依次輸入,最右邊一列為輸出指標(biāo)(因變量),并選中數(shù)據(jù),以便分析。對于待判別樣本,可按下Ctrl鍵的同時,選中第2個數(shù)據(jù)塊。然后在菜單下選擇“多元分析”-“支持向量機(jī)(SVM)”-“SVM回歸”,這時系統(tǒng)會出現(xiàn)圖6所示用戶界面。
SVM回歸常用ε-SVR回歸和ν-SVR回歸,兩種回歸算法的概念、原理相同,ν-SVR是ε-SVR的一種變形,差異是:在ε-SVR回歸中,通過設(shè)置ε-數(shù)據(jù)不敏感波動帶影響決策函數(shù);在ν-SVR回歸中,通過控制支持向量數(shù)量(支持向量個數(shù)占訓(xùn)練樣本的百分比)來影響決策函數(shù)。在DPS系統(tǒng)中默認(rèn)ε-SVR回歸。
引入核函數(shù)把低維空間中的非線性問題轉(zhuǎn)化為高維空間中的線性問題,不同的核函數(shù)就有不同的映射、不同的內(nèi)積,及最終不同的計算結(jié)果。DPS系統(tǒng)默認(rèn)的是RBF核函數(shù)。如果在RBF函數(shù)應(yīng)用效果不佳時,再試用Sigmoid核函數(shù)等。
(1)degree,只有選擇核函數(shù)為多項式時,此值起作用,設(shè)置默認(rèn)為3,表示多項式的階數(shù)或次方數(shù),即三次多項式的處理精度已經(jīng)足夠;(2)Gamma,核函數(shù)選為RBF時,本文高斯函數(shù)與DPS系統(tǒng)中的計算參數(shù)關(guān)系γ=,σ 取值 0.5~2,設(shè)置默認(rèn)為 γ=0.5;(3)coef0,核函數(shù)為多項式時,計算參數(shù)c=0為齊次多項式,c>0為非齊次多項式;核函數(shù)為 Sigmoid 時,c>0,默認(rèn)為 0.001;(4)cost,支持向量ε-SVR回歸和ν-SVR回歸中的懲罰系數(shù)C取值范圍為(0,100],取值大小決定離群點對決策函數(shù)的影響:對社會統(tǒng)計性數(shù)據(jù),通常取0.5~1,默認(rèn)為1;對誤差相對可控的實驗數(shù)據(jù)可取較大值,僅有限的小樣本,生成更多的支持向量,擬合預(yù)報更穩(wěn)定;(5)nu,ν-SVR回歸中的參數(shù),控制支持向量數(shù)量,取值范圍為(0,1],默認(rèn)為0.5,表示支持向量達(dá)到樣本量的50%。其它省缺值大都和計算內(nèi)存、計算迭代精度及輸出有關(guān),按DPS系統(tǒng)默認(rèn)值選用。其中shrinking指是否使用啟發(fā)式,即SVM有啟發(fā)式選擇算法,能提高優(yōu)化目標(biāo)函數(shù)時迭代的收斂速度,默認(rèn)為1,意為使用啟發(fā)式算法的功能。
案例數(shù)據(jù)選自吳芳(天津大學(xué))碩士學(xué)位論文“橡膠混煉過程在線質(zhì)量監(jiān)控技術(shù)的應(yīng)用研究(2013)”中的部分?jǐn)?shù)據(jù)。
門尼黏度是橡膠質(zhì)量檢測的關(guān)鍵參數(shù),它是衡量膠料黏度特性、可加工特性和壓延特性等多方面性能的綜合物性指標(biāo)。門尼黏度的測量十分復(fù)雜,且存在嚴(yán)重的測量滯后,不能有效地指導(dǎo)實際生產(chǎn)。流變參數(shù)作為混煉膠的另一個重要性能參數(shù)可以由在線流變儀測量得到(約2 min之內(nèi)準(zhǔn)確測得),用于制造半鋼子午線輪胎的橡膠流變參數(shù)主要包括5個,具體參數(shù)含義由表1所示。
表1 混煉膠流變參數(shù)含義表
考慮到門尼儀和流變儀工作原理的相似性,門尼黏度與流變參數(shù)之間必然存在著很強(qiáng)的相關(guān)性。因此可以采用數(shù)學(xué)方法建立門尼黏度和流變參數(shù)之間的回歸模型或方程,用可以在線獲得的參數(shù)對難測量參數(shù)進(jìn)行預(yù)測,減輕繁重的測試工作量、節(jié)約生產(chǎn)成本。
在化工科研、生產(chǎn)中存在難測量參數(shù)、測量周期長、結(jié)果滯后、破壞性檢測、測量成本高等現(xiàn)象,根據(jù)不同專業(yè)建立間接測量方法是共性的需求。
表2為混煉膠的20組實測數(shù)據(jù),其中5個流變參數(shù)作為因素,門尼黏度作為考核指標(biāo)。分別采用二次多項式逐步回歸算法和SVM對前16組數(shù)據(jù)進(jìn)行回歸模型建立,用后4組數(shù)據(jù)對模型精度進(jìn)行測試。
DPS數(shù)據(jù)處理系統(tǒng)中進(jìn)行二次多項式逐步回歸計算的步驟如下:
(1)打開DPS數(shù)據(jù)處理系統(tǒng)。
(2)將20組數(shù)據(jù)輸入工作窗口中的電子表格,鼠標(biāo)左鍵框選前16組數(shù)據(jù)。
(3)點擊菜單欄“多元分析”-“回歸分析”-“二次多項式逐步回歸”,出現(xiàn)如圖7中的子選擇窗口。
表2 混煉膠質(zhì)量參數(shù)數(shù)據(jù)表
(4)如果因子的p<0.05,則引入變量,選擇Yes,否則選No,直至選擇完畢,點OK。最終計算結(jié)果在新生成的一頁表格中顯示出來,如圖8所示。
圖7 因子選擇窗口
計算得到回歸方程:
Y=7.196 400 96+1.601 129 519 2×X4+
方差分析結(jié)果(見表3)。
回歸系數(shù)顯著性檢驗結(jié)果(見表4)。
回歸方程顯著性檢驗結(jié)果(見表5)。
回歸方程對17~20組數(shù)據(jù)的預(yù)測結(jié)果見表6。
表3 方差分析表
表4 回歸系數(shù)顯著性檢驗表
表5 回歸方程顯著性檢驗表
表6 回歸方程對17~20組數(shù)據(jù)的預(yù)測結(jié)果
DPS數(shù)據(jù)處理系統(tǒng)中進(jìn)行SVR計算步驟如下:
(1)打開DPS數(shù)據(jù)處理系統(tǒng)。
(2)選中訓(xùn)練和測試樣本:鼠標(biāo)左鍵選中前16組數(shù)據(jù)作為訓(xùn)練樣本,按Ctrl繼續(xù)選中后4組數(shù)據(jù)的輸入?yún)?shù)作為測試樣本。
(3)在菜單欄點擊“多元分析”-“支持向量機(jī)(SVM)”-“SVM回歸”,出現(xiàn)SVR參數(shù)設(shè)置窗口,如圖9所示。
SVM TYPE默認(rèn)ε-SVR回歸,核類型默認(rèn)RBF核函數(shù),此時需要設(shè)置的參數(shù)為Gamma和Cost,取Gamma=0.3(σ=1.3),Cost=20,點“確定”進(jìn)行計算,在新生成一頁電子表格中顯示SVR回歸計算結(jié)果。
相關(guān)系數(shù)R=0.980 2,決定系數(shù)R2=0.960 8。
(4)SVR對17~20組數(shù)據(jù)的預(yù)測結(jié)果見表7。
圖9 SVR參數(shù)設(shè)置窗口
表7 SVR對17~20組數(shù)據(jù)的預(yù)測結(jié)果
將上述二次多項式逐步回歸和SVR方法對17~20組橡膠混煉數(shù)據(jù)的門尼黏度預(yù)測結(jié)果進(jìn)行對比,結(jié)果如表8所示。
表8 17~20組橡膠混煉數(shù)據(jù)的門尼黏度預(yù)測結(jié)果對比
根據(jù)經(jīng)驗規(guī)則,對沒有試驗設(shè)計為基礎(chǔ)的隨機(jī)樣本進(jìn)行回歸統(tǒng)計建模時,要求樣本量N≥5 m(m為變量個數(shù))。本例中的橡膠混煉數(shù)據(jù)包含5個因素,訓(xùn)練樣本為16組數(shù)據(jù),因此可認(rèn)為是小樣本數(shù)據(jù)。從計算對比結(jié)果可以看出,針對這組數(shù)據(jù),用SVR算法的R值及預(yù)測結(jié)果驗證S值明顯優(yōu)于二次多項式逐步回歸算法。