孟 滔
(四川大學錦城學院智能制造學院,四川 成都 611731)
飲水安全越來越受到人們的關注。目前,我國農村在飲水安全上存在著眾多的問題[1],隨著越來越多的工廠建在農村,嚴重污染了農村的自然水源,導致大多數(shù)水源都受到了不同程度的污染。并且農村大多數(shù)自來水廠規(guī)模小,處理原水能力弱。目前農村自來水廠大多采用在線水質監(jiān)測預警系統(tǒng)對原水和出廠水進行監(jiān)測,但僅僅監(jiān)測是不夠的,需要對原水水質進行預測,提前知道原水水質情況,做好相應的應對措施,以降低自來水廠出廠水不達標的情況。
對于水質預測的方法,目前國內外采用主要有人工神經網絡算法[2-4]、貝葉斯網絡算法[5,6]、支持向量回歸SVR算法[7]等。其中,SVR算法比人工神經網絡算法、貝葉斯網絡算法更適用于小樣本數(shù)據(jù),并且具有更好的泛化性,特別適用于規(guī)模較小的自來水廠進行原水水質預測。使用SVR進行原水水質預測時,需要先建立原水水質預測模型,其中核參數(shù)g和懲罰參數(shù)C是影響原水水質預測模型預測精度的關鍵。針對這2個參數(shù),傳統(tǒng)方法是使用網格搜索法進行參數(shù)尋優(yōu),但是其尋優(yōu)時間特別長。針對這個問題,薛同來、趙冬暉等人[8]提出基于GA優(yōu)化的SVR水質預測模型,該方法利用遺傳算法對SVR的參數(shù)進行尋優(yōu),減少了參數(shù)尋優(yōu)的時間;但由于SVR的最佳參數(shù)范圍不定,當參數(shù)的尋優(yōu)范圍設置過大時,存在訓練時間過長,當參數(shù)的尋優(yōu)范圍設置過小時,存在預測精度不高的情況。對于SVR參數(shù)尋優(yōu),柯聲明[9]提出使用粒子群搜索方法優(yōu)化SVR參數(shù)對CODMn進行預測,同樣的由于SVR最佳參數(shù)范圍不定,導致訓練時間過長或者預測精度不高。
本文優(yōu)化現(xiàn)有的粒子群搜索算法對SVR的核參數(shù)g和懲罰參數(shù)C的尋優(yōu)范圍。在一個較大的范圍內通過網格搜索算法迅速得到一組最佳參數(shù)的粗值,根據(jù)得到的粗值減小粒子群搜索算法的尋優(yōu)范圍。實驗表明,該改進算法比網格搜索算法、遺傳算法、粒子群算法具有更短的訓練時間,而且預測精度和網格搜索算法、遺傳算法、粒子群算法相當。
支持向量回歸SVR是支持向量機SVM中一個重要分支,用于解決預測問題。SVM是由Corters、Vapnik等人[10]在1995年提出的一種監(jiān)督學習,適用于解決分類問題,后衍生用于解決數(shù)據(jù)回歸預測問題。其核心思想是基于誤差的結構風險最小化原則,在高維空間找出一條曲線來表示輸入數(shù)據(jù)與輸出數(shù)據(jù)之間的關系,通過該曲線的函數(shù)式就可以得到想要的預測值。該曲線函數(shù)可表示:
f(x)=wT·φ(x)+b
(1)
式中,w表示高維空間中的特征向量;φ(x)表示低維數(shù)據(jù)到高維空間的非線性映射。
對于公式(1)可構建公式(2)的代價函數(shù):
(2)
式中,C表示懲罰參數(shù),決定預測模型對數(shù)據(jù)的擬合程度。
對于公式(2)根據(jù)結構化風險最小原則和引入拉格朗日函數(shù)以及一些拉格朗日因子,得到最終水質預測的擬合函數(shù)表達式:
(3)
式中,K(xi,xj)是核函數(shù),本文采用徑向基核函數(shù)。
粒子群算法(PSO)是基于對鳥類捕食行為的研究發(fā)展而來的,其基本思想是利用群體中的個體對信息的共享從而使得整個群體的運動在問題求解空間中產生從無序到有序的演化過程,從而獲得問題的最優(yōu)解。將粒子群算法引入到SVR參數(shù)尋優(yōu)當中,比傳統(tǒng)的網格搜索算法具有更快的訓練速度,并且當參數(shù)的尋優(yōu)范圍設置恰當時,其預測精度和網格搜索法基本相當。
傳統(tǒng)的粒子群算法對SVR參數(shù)的尋優(yōu)范圍往往是基于自身經驗來進行設定的。如果參數(shù)的尋優(yōu)范圍設置過小,有可能會使得到的核參數(shù)g和懲罰參數(shù)C不是最佳的,影響預測精度。如果參數(shù)的尋優(yōu)范圍設置過大,那么就會存在尋優(yōu)時間過長的問題。如何解決這個參數(shù)的設置范圍是解決尋優(yōu)時間過長的關鍵。
通過傳統(tǒng)網格搜索算法對某水廠耗氧量數(shù)據(jù)進行回歸訓練,結果如圖1所示。
圖1 網格搜索法尋優(yōu)結果
從圖1中可以看出,只有在比較小的范圍內得到的均方誤差MSE才是比較小的,所以如果可以在設置參數(shù)尋優(yōu)時就得到此范圍,那么使用粒子群算法時可以極大地縮短訓練時間,并且得到的預測精度也不會降低。針對以上問題,可以使用傳統(tǒng)網格搜索法在大范圍內使用較大的步長對核參數(shù)g和懲罰參數(shù)C進行粗尋優(yōu),得到的一組最佳的粗值。然后通過適當放大和縮小該組粗值作為粒子群算法的參數(shù)尋優(yōu)范圍,該方法不僅可以減少建立SVR水質預測模型的時間而且不必對不同水質因子重新設置SVR參數(shù)的尋優(yōu)范圍,一樣可以得到最佳的核參數(shù)g和懲罰參數(shù)C。在使用該方法得到核參數(shù)g和懲罰參數(shù)C較小范圍內使用網格搜索算法進行回歸訓練,結果如圖2所示,可以看出在比較大的范圍內均方誤差MSE都比較小。
改進粒子群算法具體實現(xiàn)如下:對水質數(shù)據(jù)進行預處理,異常和缺失數(shù)據(jù)使用單一插值法;對水質數(shù)據(jù)劃分為訓練數(shù)據(jù)和預測數(shù)據(jù),并做歸一化處理。
(4)
式中,xmin表示該列中的最小值;xmax表示該列中的最大值;y表示歸一化后的數(shù)據(jù)。
設定懲罰參數(shù)C和核參數(shù)g在一個較大的范圍。利用網格搜索法,初步求出(C,g)的粗值。此值作為粒子群算法參數(shù)C和g的基準值。根據(jù)得到的基準值放大和縮小2倍作為粒子群算法參數(shù)C和g的尋優(yōu)范圍。利用其建立的水質預測模型,對水質進行預測。
圖2 優(yōu)化后網格搜索法尋優(yōu)結果
計算機平臺為windows 10(64位)系統(tǒng),處理器為i5-4210M,內存為16GB。使用軟件仿真平臺為matlab2010b,工具包采用使用較廣泛的LIBSVM進行測試。SVR中核函數(shù)選用徑向基核函數(shù)(RBF)。其中數(shù)據(jù)來自某自來水廠連續(xù)642組原水數(shù)據(jù),該數(shù)據(jù)每天采集1次,包含4種水質因子數(shù)據(jù):氨氮、耗氧量、渾濁度、總大腸菌群。其中,前635組數(shù)據(jù)作為訓練數(shù)據(jù),后7組數(shù)據(jù)作為預測數(shù)據(jù)。對這些數(shù)據(jù)分別采用網格搜索法、遺傳算法(GA-SVR)、粒子群算法(PSO-SVR)、改進粒子群算法(IPSO-SVR)進行對比實驗。
為保證全面對比各個算法的性能,實驗中采用3種評價指標來說明算法的性能。第1個評價指標為均方根誤差(Root Mean Squared Error,RMSE),定義為公式(5);第2個評價指標為平均相對誤差(Mean Relative Error,MRE),定義為公式(6);第3個評價指標為最大相對誤差(Biggest Relative Error,BRE),即相對誤差的最大值。
(5)
(6)
4種算法對4種水質因子訓練時間和預測性能如表1和表2所示。為保證實驗的有效性,表中GA-SVR、PSO-SVR、IPSO-SVR實驗結果取20次的平均值,網格搜索算法的實驗結果取8次的平均值。
表1 訓練時間
表2 4種方法預測性能
分析表1可知,對4種水質因子建立水質預測模型,網格搜索法建立水質預測模型花費的時間比其它3種算法都長,改進后的粒子群算法建立水質預測模型花費的時間最短。
這是因為網格搜索法需要對參數(shù)范圍內的所有點進行計算,導致其尋找最佳參數(shù)組耗時最長。改進后的粒子群算法因為事先通過網格搜索法進行粗尋優(yōu)后參數(shù)范圍大大減小了,所以其尋找最佳參數(shù)組耗時最短。比網格搜索法時間最大大約縮短16.5倍,比遺傳算法時間最大大約縮短6倍,比粒子群算法時間最大大約縮短1.4倍。
分析表2可知,對4種水質因子進行預測,4種方法的性能基本一致,這是因為在相同的參數(shù)尋優(yōu)范圍內,4種方法都能得到較好的參數(shù)組建立水質預測模型,這也說明了本文通過網格搜索法縮小參數(shù)尋優(yōu)范圍是可行的。
針對使用粒子群算法建立SVR水質預測模型,其參數(shù)范圍設置不確定,導致建立水質預測模型時間過長的問題。本文通過網格搜索算法縮小粒子群算法參數(shù)尋優(yōu)范圍,從而更快地建立水質預測模型。實驗表明,使用該改進算法不僅可以有效地減少建立水質預測模型的時間,并且其預測精度和網格搜索法、遺傳算法、粒子群算法相當。