(北方工業(yè)大學(xué) 機(jī)械與材料工程學(xué)院,北京 100144)
隨著水環(huán)境污染越來越嚴(yán)重,傳統(tǒng)的手動(dòng)實(shí)驗(yàn)檢測(cè)水環(huán)境質(zhì)量已不能滿足水質(zhì)監(jiān)測(cè)的實(shí)時(shí)性和準(zhǔn)確性的標(biāo)準(zhǔn)要求。近些年來,水質(zhì)在線監(jiān)測(cè)發(fā)展迅速,由于其能夠?qū)崟r(shí)檢測(cè)到水域污染的變化和較高的準(zhǔn)確率,被推廣并應(yīng)用于水質(zhì)監(jiān)測(cè)的各個(gè)領(lǐng)域[1]。在這些水質(zhì)監(jiān)測(cè)儀中關(guān)鍵器件是傳感器。水質(zhì)監(jiān)測(cè)傳感器在實(shí)際應(yīng)用中由于環(huán)境等諸多因素導(dǎo)致測(cè)量精度低、穩(wěn)定性差,而對(duì)水質(zhì)監(jiān)測(cè)傳感器的輸入輸出非線性關(guān)系的補(bǔ)償是提高系統(tǒng)測(cè)量精度的必要方法[2]。近年來智能算法在補(bǔ)償建模中發(fā)展迅速,其中有人工神經(jīng)網(wǎng)絡(luò)、支持向量機(jī)等各種算法。神經(jīng)網(wǎng)絡(luò)最嚴(yán)重的問題是沒能力來解釋自己推理的過程和依據(jù),而且數(shù)據(jù)不充分時(shí)就無法工作,同時(shí)神經(jīng)網(wǎng)絡(luò)的理論和學(xué)習(xí)算法還有待進(jìn)一步提高。支持向量機(jī)(SVM)是一種新穎的小樣本學(xué)習(xí)方法,它有著堅(jiān)實(shí)的理論基礎(chǔ),在實(shí)際應(yīng)用中,支持向量機(jī)能夠有效避免從歸納到演繹的傳統(tǒng)過程,能夠高效地從訓(xùn)練樣本中推導(dǎo)出預(yù)測(cè)樣本,在分類和回歸等問題上,能夠有效地簡(jiǎn)化步驟,提高了效率和準(zhǔn)確率。大量實(shí)驗(yàn)和研究表明,基于支持向量機(jī)建立的回歸模型,無論是在逼近能力,還是在泛化性上,都要優(yōu)于神經(jīng)網(wǎng)絡(luò)以及其他智能算法。
支持向量機(jī)以統(tǒng)計(jì)學(xué)為理論基礎(chǔ),從1995年提出后,在小樣本、非線性和模式識(shí)別等各個(gè)領(lǐng)域中迅速發(fā)展,并且具有很多優(yōu)勢(shì),并能夠推廣到函數(shù)擬合等其他實(shí)際問題中。支持向量機(jī)在與神經(jīng)網(wǎng)絡(luò)相比較,支持向量機(jī)的原理是結(jié)構(gòu)風(fēng)險(xiǎn)最小化,彌補(bǔ)了神經(jīng)網(wǎng)絡(luò)的缺點(diǎn),在數(shù)據(jù)量較少的情況下依然具有很好的推廣能力。但是在實(shí)際應(yīng)用中,支持向量機(jī)有兩個(gè)重要的參數(shù),即懲罰系數(shù)C和核參數(shù)γ,如果參數(shù)的選擇不當(dāng),則會(huì)直接影響整體的性能。到目前為止支持向量機(jī)的參數(shù)優(yōu)化并沒有標(biāo)準(zhǔn)化的方法,所以目前應(yīng)用在支持向量機(jī)的參數(shù)選擇的優(yōu)化方法各種各樣。針對(duì)研究問題,以水質(zhì)濁度參數(shù)檢測(cè)作為實(shí)驗(yàn)背景,提出一種改進(jìn)的網(wǎng)格搜索法優(yōu)化支持向量機(jī)參數(shù),來提高其準(zhǔn)確率和優(yōu)化速度,與其他優(yōu)化方法相比較,并在實(shí)際測(cè)量環(huán)境中取得了很好的結(jié)果。
傳統(tǒng)的傳感器輸入輸出特性為y=f(x),x∈(ζa,ζb),式中f(x)為非線性函數(shù),y表示測(cè)量參數(shù)后輸出的電壓值信號(hào),x表示測(cè)量參數(shù)輸入的溶液值,ζa,ζb為溶液真實(shí)值的范圍。在已知溶液值x的情況下,y電壓值信號(hào)可使用濁度傳感器測(cè)量溶液得到,其目的是根據(jù)輸出的電壓值y求得未知的輸入變量x,既表示為x=y-1(y)。
而在實(shí)際應(yīng)用中,由于環(huán)境或者傳感器自身硬件會(huì)導(dǎo)致的測(cè)量的值存在非線性誤差。為了校正這種非線性誤差,使其輸出的電壓值信號(hào)y通過一個(gè)校正環(huán)節(jié)[3],如圖1所示。校正模型的函數(shù)為u=g(y),式中u為校正系統(tǒng)非線性后的輸出,它與輸入的溶液值x呈線性關(guān)系,使得補(bǔ)償后的傳感器具有理想特性[4]。在實(shí)際中,g(*)的表達(dá)式難以確認(rèn),那么建立支持向量機(jī)回歸補(bǔ)償模型就成了解決此模型表達(dá)式的重要因素[5-6]。
圖1 非線性誤差校正模型
20世紀(jì)90年代,Vapnik等人基于小樣本統(tǒng)計(jì)學(xué)提出了支持向量機(jī)理論,其基本原理是以訓(xùn)練誤差作為要解決問題的約束條件,以最小置信區(qū)間作為優(yōu)化的最終目標(biāo)。其本質(zhì)就是解決一種凸規(guī)劃或者二次規(guī)劃問題[7]。支持向量機(jī)首先通過內(nèi)積核函數(shù)將非線性的變換問題映射到一個(gè)高維空間,變成一個(gè)線性問題來求廣義分類面或回歸問題。
對(duì)于給定的一組數(shù)據(jù)T={(x1,y1),…,(xi,yi)}?Rd×R,i=1,…,n,我們要解決的回歸問題簡(jiǎn)單來說就是找到xi與yi之間的映射關(guān)系:
y=f(x)=[ω,φ(x)]+b,
x∈Rd;y,b∈R
(1)
式中,[ω,φ(x)]對(duì)應(yīng)的是Rd空間的內(nèi)積。φ(x)為核函數(shù),把訓(xùn)練樣本數(shù)據(jù)映射到高維空間F上,因此它的思想就是把原空間的非線性問題映射到高維空間中轉(zhuǎn)變?yōu)楦呔S空間的線性問題,解決其對(duì)應(yīng)的線性回歸問題[8]。
支持向量機(jī)回歸理論對(duì)這一類問題的表述為在一組函數(shù){f(x,ω)}種,尋找最優(yōu)的一個(gè)函數(shù){f(x,ω*)},使預(yù)期的期望風(fēng)險(xiǎn)R(ω)達(dá)到最小化[9]。
(2)
式中,n為樣本容量,h為VC維。支持向量機(jī)把上式轉(zhuǎn)化為尋求下式的最優(yōu)解:
(3)
其中:ε根據(jù)不敏感損失函數(shù)L(y,f(x,a))來決定回歸曲線的平坦度,給定0<ε<1。當(dāng)x點(diǎn)處的實(shí)際結(jié)果值y與預(yù)測(cè)值f(x)之間的誤差值不超過預(yù)先給定的ε時(shí),那么就認(rèn)為該點(diǎn)的預(yù)測(cè)值f(x)是無損失的[10]。
L(y,f(x,a))=L(|y-f(x,a)|ε)
(4)
其中:
(5)
式(3)中,C為懲罰因子,表示對(duì)錯(cuò)分樣本的懲罰。
(6)
在支持向量機(jī)中,綜合考慮到RBF高斯徑向基函數(shù)所體現(xiàn)出的較好性能,選取式(4)中的RBF核函數(shù)作為支持向量機(jī)的核函數(shù)。在實(shí)際應(yīng)用中,傳統(tǒng)的參數(shù)選擇方法大多都是憑借大量經(jīng)驗(yàn)或者反復(fù)試算法,導(dǎo)致選擇不準(zhǔn)確使得補(bǔ)償精度達(dá)不到目標(biāo)精度的要求,且效率低。因此正確的方法來選擇核函數(shù)參數(shù)和懲罰系數(shù),對(duì)SVM的性能以及水質(zhì)監(jiān)測(cè)的補(bǔ)償精度至關(guān)重要。
(7)
對(duì)于支持向量機(jī)的性能,最重要的影響因素就是兩個(gè)參數(shù)值懲罰系數(shù)C和核參數(shù)γ的選取。懲罰系數(shù)C體現(xiàn)了對(duì)誤差的寬容度。C的取值越高,建立的回歸模型越不能容忍出現(xiàn)誤差,會(huì)造成過擬合現(xiàn)象。如果C的取值過小,則會(huì)出現(xiàn)欠擬合。如果C取值不當(dāng),過大或過小,泛化能力都會(huì)變差。核參數(shù)γ,是選取的高斯徑向基RBF核函數(shù)自帶的參數(shù),γ取值過大,其支持的向量會(huì)越少。γ取值過小,其支持的向量會(huì)越多[11]。
到目前為止,關(guān)于SVM的參數(shù)選擇優(yōu)化并沒有標(biāo)準(zhǔn)的結(jié)構(gòu)化方法。相關(guān)的優(yōu)化方法各有優(yōu)缺點(diǎn),常用的方法有:實(shí)驗(yàn)法、遺傳算法、粒子群算法和網(wǎng)格搜索算法等。實(shí)驗(yàn)法就是通過大量的實(shí)驗(yàn)比較結(jié)果精度來確定參數(shù),這種方法雖然能夠找到合適的參數(shù),但是效率低。遺傳算法思想來源于自然界的生物遺傳和進(jìn)化,是一種應(yīng)用較為廣泛的全局搜索功能的優(yōu)化算法[12]。遺傳算法依據(jù)適者生存的進(jìn)化原理,通過眾多的個(gè)體不斷地經(jīng)過選擇、遺傳、變異的過程,篩選出最優(yōu)的個(gè)體,即為最優(yōu)的參數(shù)解,遺傳算法對(duì)于問題本身可以不用知道,它只是對(duì)優(yōu)化過程中的每個(gè)個(gè)體進(jìn)行評(píng)估和篩選[13]。粒子群算法基本概念源于對(duì)鳥群覓食行為的研究,即自由個(gè)體組成的群體與周邊環(huán)境以及個(gè)體之間的互動(dòng)性為,是一種新穎的優(yōu)化算法。它的基本思想就是將問題所有可能的解都看作是一個(gè)微粒,每個(gè)微粒在其解空間中飛行,通過其適應(yīng)度函數(shù)的標(biāo)準(zhǔn)判別粒子的優(yōu)劣性,并根據(jù)解空間中其他微粒傳遞的飛行經(jīng)驗(yàn)進(jìn)行調(diào)整,想著最好的微粒位置飛行,以此來得到最優(yōu)解[14]。遺傳和粒子群算法屬于啟發(fā)式算法,他們不必遍歷所有參數(shù)集合也可以找到全局最優(yōu)解,但是這兩種算法操作比較復(fù)雜,并且容易陷入局部循環(huán),得到的解也只是局部最優(yōu)解[15]。
網(wǎng)格搜索法是一種窮舉遍歷算法,它將所有可能的參數(shù)組合在空間中劃分成若干網(wǎng)格,遍歷網(wǎng)格中所有交點(diǎn),對(duì)每個(gè)參數(shù)集合應(yīng)用交叉驗(yàn)證來計(jì)算誤差,得到誤差最小的為全局最優(yōu)解。網(wǎng)格搜索法可以從較多參數(shù)中獲得最優(yōu)解,但是效率低[16]。
針對(duì)上述網(wǎng)格搜索法的缺點(diǎn),選擇改進(jìn)的網(wǎng)格搜索法,即先在給定的參數(shù)范圍內(nèi)進(jìn)行大步距粗略搜索,確定一個(gè)結(jié)果較優(yōu)的參數(shù)組合存在的區(qū)間,在此區(qū)間附近內(nèi)再進(jìn)行小步距精確搜索,來改進(jìn)傳統(tǒng)網(wǎng)格搜索法的缺點(diǎn),提高其優(yōu)化精度和優(yōu)化速度。
網(wǎng)格搜索法本質(zhì)是讓懲罰系數(shù)C和核函數(shù)參數(shù)γ的集合在其范圍內(nèi)生成網(wǎng)格,并對(duì)網(wǎng)格內(nèi)所有點(diǎn)進(jìn)行評(píng)價(jià),最終取得整個(gè)模型訓(xùn)練集的平均驗(yàn)證均方根誤差(MSE)最小的那組為最優(yōu)參數(shù)組合[17]。計(jì)算得到的最優(yōu)參數(shù)為圖2所示,其中C的范圍在[2-10,220],γ設(shè)置的范圍是[2-10,210],步距為0.1。
由圖1可以看出,參數(shù)組合在一定的區(qū)間范圍內(nèi)準(zhǔn)確率很高,但是在整個(gè)范圍內(nèi)準(zhǔn)確率相對(duì)偏低,如果以0.1步距全部遍歷整個(gè)區(qū)間,將使得整個(gè)算法效率降低,因此先找到平均驗(yàn)證均方根誤差較小的參數(shù)區(qū)間再進(jìn)行精確搜索,將能減少大量的計(jì)算,節(jié)約時(shí)間提高效率。
針對(duì)上述傳統(tǒng)網(wǎng)格搜索法的問題,選擇改進(jìn)的網(wǎng)格搜索法作為參數(shù)優(yōu)化方法。首先在給定的參數(shù)組合范圍內(nèi)進(jìn)行大步距粗搜,選擇訓(xùn)練集的平均驗(yàn)證均方根誤差最小的一組參數(shù)組合。若參數(shù)選擇過程中搜索出多組達(dá)到最小平均驗(yàn)證均方根誤差的參數(shù)組合,則選擇C最小的那組,如果對(duì)應(yīng)C最小的有多組γ,那么就選擇搜索到的第一組作為最佳參數(shù)組合。因?yàn)閼土P系數(shù)C如果過高將導(dǎo)致過學(xué)習(xí)現(xiàn)象,尋得這組局部最優(yōu)參數(shù)組合之后,在此參數(shù)組合點(diǎn)附近選擇一個(gè)小區(qū)間,采用小步距進(jìn)行第二次精搜,找到的最優(yōu)參數(shù)即為全局最優(yōu)參數(shù)組合。
圖2 網(wǎng)格搜索法參數(shù)選擇結(jié)果
濁度是水體中一種重要的特征參數(shù),體現(xiàn)了水環(huán)境的清潔度和衛(wèi)生狀況,它是衡量水環(huán)境質(zhì)量的重要依據(jù),并且也作為影響其他參數(shù)的干擾因素,不管是民用還是環(huán)境監(jiān)測(cè)都是必須要測(cè)量的參數(shù)[18]。所以選取了濁度參數(shù)作為研究對(duì)象。
實(shí)驗(yàn)器材包括配置濁度溶液所需要的燒杯、玻璃棒、計(jì)量筒等準(zhǔn)備工具,以及濁度傳感器。所用到的標(biāo)準(zhǔn)試劑是中國(guó)計(jì)量院化學(xué)所購置的標(biāo)準(zhǔn)溶液。采用超純水作為零點(diǎn)校正液,主要用于稀釋溶液。
通過上述材料工具來對(duì)溶液進(jìn)行測(cè)量。選取數(shù)據(jù)時(shí),由于溫度對(duì)于濁度測(cè)量結(jié)果有著影響,分別選取5°、10°、15°、20°和25°的輸入電壓值。實(shí)驗(yàn)數(shù)據(jù)一共選取10組傳感器有效數(shù)據(jù)共70個(gè)樣本,隨機(jī)打亂順序選取60個(gè)樣本作為訓(xùn)練樣本,剩下10個(gè)作為測(cè)試樣本,實(shí)驗(yàn)數(shù)據(jù)如表1所示。
表1 實(shí)驗(yàn)數(shù)據(jù)
采用Matlab平臺(tái)結(jié)合開源的LIBSVM工具包,進(jìn)行網(wǎng)格搜索法優(yōu)化支持向量機(jī)參數(shù)仿真測(cè)試。實(shí)驗(yàn)過程如下:
1)確定網(wǎng)格搜索法的參數(shù)變量C和γ的取值范圍,C的初始范圍在[2-10,220],γ設(shè)置的初始范圍是[2-10,210]。傳統(tǒng)的網(wǎng)格搜索法的步距一般為0.1,改進(jìn)的方法將步距放大100倍,即步距為10。以2的冪次方沿著兩個(gè)區(qū)間范圍方向生成網(wǎng)格。將整個(gè)網(wǎng)格區(qū)間分別分為M、N等分,網(wǎng)格中的節(jié)點(diǎn)即為給定范圍內(nèi)所有可能的參數(shù)組合[19]。
2)針對(duì)所有的參數(shù)組合(Ci,γj)(i=1,...,M,j=1,...,N),對(duì)訓(xùn)練樣本集進(jìn)行訓(xùn)練,得到訓(xùn)練樣本集的平均驗(yàn)證均方根誤差最小的參數(shù)組合(Ci,γj),判斷是否達(dá)到精度標(biāo)準(zhǔn)要求,如果滿足轉(zhuǎn)到4),否則轉(zhuǎn)到3)。
3)在參數(shù)(Ci,γj)相鄰的兩個(gè)區(qū)間作為新的參數(shù)范圍C∈[Ci-1,Ci+1],γ∈[γj-1,γj+1],并分別減少搜索步距的兩倍,因?yàn)榫W(wǎng)格的范圍是以2的冪次方的。再次進(jìn)行最優(yōu)參數(shù)組合的搜索,判斷是否滿足平均驗(yàn)證均方根誤差要求,如果滿足則跳轉(zhuǎn)到4),否則繼續(xù)在 3)循環(huán)進(jìn)行直到找到最優(yōu)的參數(shù)組合。
4)儲(chǔ)存得到的最優(yōu)參數(shù)組合和選擇結(jié)果,參數(shù)優(yōu)化過程結(jié)束。
在采用改進(jìn)的網(wǎng)格搜索法進(jìn)行支持向量機(jī)的參數(shù)選擇后,預(yù)測(cè)結(jié)果精度如圖3所示。
圖3 網(wǎng)格搜索法預(yù)測(cè)精度
為了便于分析和比較,在本次實(shí)驗(yàn)中還分別采用了遺傳算法和粒子群算法進(jìn)行參數(shù)尋優(yōu),與改進(jìn)的網(wǎng)格搜索法進(jìn)行對(duì)比。
從表2看出,遺傳算法雖然也能夠得到較高的預(yù)測(cè)精度,但在實(shí)驗(yàn)中容易出現(xiàn)過早收斂,出現(xiàn)局部最優(yōu),搜索效果不穩(wěn)定。粒子群算法搜索性能較穩(wěn)定,但耗時(shí)較長(zhǎng)。相比較而言,改進(jìn)的網(wǎng)格搜索法是精度最高并且時(shí)間較短的優(yōu)化算法。
表2 不同優(yōu)化算法性能對(duì)比
應(yīng)用改進(jìn)的網(wǎng)格搜索法優(yōu)化支持向量機(jī)方法對(duì)濁度傳感器進(jìn)行了預(yù)測(cè)校正,并與粒子群算法、遺傳算法進(jìn)行了比
較。經(jīng)實(shí)驗(yàn)結(jié)果表明:改進(jìn)的網(wǎng)格搜索法優(yōu)化支持向量機(jī)方法更好地實(shí)現(xiàn)了對(duì)濁度傳感器的預(yù)測(cè)校正,顯著改善了傳統(tǒng)網(wǎng)格搜索法的性能,提高了準(zhǔn)確率,減少了優(yōu)化時(shí)間,相比較其他優(yōu)化方法具有更好的性能,對(duì)傳感器的非線性校正提供了一種可行有效的方法。