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