陳海洋,滕彥國,王金生
(北京師范大學(xué)水科學(xué)研究院,北京 100875)
地下水位預(yù)測可以看作是對地下水位及其影響因子間的復(fù)雜非線性函數(shù)關(guān)系的逼近分析,它是實(shí)現(xiàn)地下水資源動(dòng)態(tài)均衡管理的重要方法之一。當(dāng)前,發(fā)展較快、應(yīng)用較廣的地下水位預(yù)測方法主要有多元回歸分析法、灰色聚類分析法、模糊模式識別法、季節(jié)性指數(shù)平滑法、人工神經(jīng)網(wǎng)絡(luò)法等。這些不同的預(yù)測方法均力圖通過對地下水位動(dòng)態(tài)及其影響因素之間的非線性關(guān)系的分析,建立隨機(jī)性模型來實(shí)現(xiàn)地下水位的預(yù)報(bào)。支持向量機(jī)(support vector machine,簡稱SVM)是由統(tǒng)計(jì)學(xué)習(xí)理論發(fā)展起來的一種新型學(xué)習(xí)機(jī)器,它以結(jié)構(gòu)風(fēng)險(xiǎn)最小化原理為理論基礎(chǔ),具有以下優(yōu)點(diǎn):逼近復(fù)雜非線性系統(tǒng),較強(qiáng)的學(xué)習(xí)泛化能力和良好的分類性能,所需樣本少,建模方便,計(jì)算簡單,學(xué)習(xí)訓(xùn)練時(shí)間短,通用性強(qiáng),可以用于解決非線性系統(tǒng)的模式識別問題[1]。ε-SVR(εsupport vector regression machine)是將不敏感損失函數(shù)引入支持向量機(jī),用來解決非線性系統(tǒng)回歸擬合問題的一個(gè)算法,可以用之來解決地下水位預(yù)測問題。
應(yīng)用ε-SVR進(jìn)行地下水位預(yù)測,需要重點(diǎn)考慮模型參數(shù)的優(yōu)化選擇。然而,當(dāng)前對ε-SVR參數(shù)選擇缺乏實(shí)質(zhì)性的理論指導(dǎo),只能是通過反復(fù)試驗(yàn),人工選取參數(shù),這不僅要求技術(shù)人員有豐富的實(shí)際經(jīng)驗(yàn),而且需要付出較高的時(shí)間代價(jià)。筆者選擇徑向基核函數(shù)建立了地下水位ε-SVR預(yù)測模型,基于遺傳算法(genetic algorithm,簡稱GA)實(shí)現(xiàn)了懲罰因子C、核函數(shù)參數(shù) γ和不敏感損失函數(shù)參數(shù)ε的自適應(yīng)優(yōu)選,并運(yùn)用建立的模型對某地傍河試驗(yàn)井地下水位進(jìn)行了預(yù)測。
SVM是由Vapnik等在統(tǒng)計(jì)學(xué)習(xí)理論的基礎(chǔ)上提出并發(fā)展起來的一種新型通用學(xué)習(xí)方法,它基于結(jié)構(gòu)風(fēng)險(xiǎn)最小化原理,主要用于解決分類和回歸問題[2]。SVM避開了從歸納到演繹的傳統(tǒng)過程,實(shí)現(xiàn)了高效的從訓(xùn)練樣本到預(yù)報(bào)樣本的轉(zhuǎn)導(dǎo)推理,大大簡化了回歸問題的復(fù)雜性,具有較高的泛化能力。關(guān)于SVM的原理,有很多資料可以參閱,這里做簡要介紹。
根據(jù)結(jié)構(gòu)風(fēng)險(xiǎn)最小原理,回歸估計(jì)問題就是尋找使下面函數(shù)風(fēng)險(xiǎn)最小的f(x)
該問題是一個(gè)典型的凸二次優(yōu)化問題,引入拉格朗日函數(shù),可得對偶形式:
式中:α、α*是Lagrange乘子。估值函數(shù)為:
偏置量b可通過KKT條件計(jì)算:
對應(yīng)非線性回歸支持向量機(jī),可通過非線性映射把原始數(shù)據(jù)變換到高維特征空間,在特征空間設(shè)計(jì)線性回歸支持向量機(jī),運(yùn)用原空間的函數(shù)來實(shí)現(xiàn)內(nèi)積運(yùn)算,從而取得在原空間非線性回歸的效果。假設(shè)用非線性函數(shù) Φ(x)把樣本映射到高維空間,可得擬合樣本集的估計(jì)函數(shù)為:
根據(jù)泛函理論,只要一種核函數(shù)滿足Mercer條件,它就對應(yīng)某一空間中的內(nèi)積,因此只要設(shè)計(jì)相應(yīng)的核函數(shù),將原始不具備線性回歸的樣品數(shù)據(jù)映射到某一高維特征空間,在特征空間運(yùn)用內(nèi)積函數(shù)實(shí)現(xiàn)線性回歸。假設(shè)利用核函數(shù)K(xi,yi)=(Φ(xi)?Φ(yi))把原始數(shù)據(jù)映射到高維特征空間,那么特征空間的核函數(shù)線性回歸向量機(jī)的估計(jì)函數(shù)為:
很明顯,不同的核函數(shù)可以構(gòu)造實(shí)現(xiàn)輸入空間不同類型的非線性決策面,它類似于一個(gè)3層前饋神經(jīng)網(wǎng)絡(luò),其中隱節(jié)點(diǎn)對應(yīng)于輸入樣本與一個(gè)支持向量的內(nèi)積核函數(shù),而輸出節(jié)點(diǎn)對應(yīng)于隱層輸出的線性組合。常見的滿足Mercer條件的核函數(shù)有線性核函數(shù)、多項(xiàng)式核函數(shù)、徑向基核函數(shù)(簡稱RBF)、多層感知機(jī)核函數(shù)(Sigmoid)。
筆者選取徑向基函數(shù),構(gòu)建ε-SVR地下水位預(yù)測模型,基于遺傳算法,對其中的懲罰因子C、核函數(shù)參數(shù) γ和不敏感損失函數(shù)參數(shù)ε等3個(gè)重要參數(shù)進(jìn)行自適應(yīng)尋優(yōu)。
懲罰因子C主要用來調(diào)和學(xué)習(xí)機(jī)器置信范圍和經(jīng)驗(yàn)風(fēng)險(xiǎn)的比例,以使學(xué)習(xí)機(jī)器的推廣能力最好。由式(3)可知,懲罰因子C并沒有出現(xiàn)在式(2)的對偶形式中,而是改變了拉格朗日系數(shù)的取值范圍,因此,對于一個(gè)ε-SVR,如果無限制地增大懲罰因子C,當(dāng)ε-SVR中沒有邊界支持向量時(shí),C的改變不會(huì)再影響回歸性能。通常,在確定的數(shù)據(jù)子空間中,C的取值小表示對經(jīng)驗(yàn)誤差的懲罰小,學(xué)習(xí)機(jī)器的復(fù)雜度小而經(jīng)驗(yàn)風(fēng)險(xiǎn)值較大;反之亦然。前者被稱為“欠學(xué)習(xí)”現(xiàn)象,而后者則被稱為“過學(xué)習(xí)”現(xiàn)象。每個(gè)數(shù)據(jù)子空間至少存在一個(gè)合適的C使得SVM推廣能力最好。當(dāng)C超過一定值時(shí),SVM的復(fù)雜度達(dá)到了數(shù)據(jù)子空間允許的最大值,此時(shí)經(jīng)驗(yàn)風(fēng)險(xiǎn)和推廣能力幾乎不再變化。
核函數(shù)參數(shù)γ同樣對模型精度有著重要意義。核函數(shù)是原始非線性樣本在高維特征空間的映射函數(shù),核參數(shù)的改變實(shí)際上是隱含地改變映射函數(shù),從而改變決定最大 VC維的樣本數(shù)據(jù)子空間分布的復(fù)雜程度,也就決定了超優(yōu)分類面能達(dá)到的最小經(jīng)驗(yàn)誤差。從徑向基核函數(shù)的表現(xiàn)形式可以看出,參數(shù)γ相當(dāng)于對樣本間歐式距離的歸一化,判定了特征空間中向量間的距離。當(dāng) γ趨向于0時(shí)會(huì)發(fā)生嚴(yán)重的“過學(xué)習(xí)”現(xiàn)象,此時(shí)ε-SVR能實(shí)現(xiàn)允許精度下對訓(xùn)練樣本的回歸擬合,但對測試樣本的泛化能力變得極差;當(dāng) γ趨向于無窮大時(shí)會(huì)發(fā)生嚴(yán)重的“欠學(xué)習(xí)”現(xiàn)象,此時(shí)ε-SVR的訓(xùn)練回歸擬合能力變?nèi)鮗4]。
不敏感損失函數(shù)參數(shù) ε控制不敏感區(qū)域的寬度,它的值影響用于建立回歸估計(jì)函數(shù)支持向量的個(gè)數(shù),影響對偶變量的稀疏性[5]。合適的參數(shù)值能確保全局最小解和可靠泛化界的優(yōu)勢,但參數(shù) ε數(shù)值偏大將產(chǎn)生相對較少的支持向量,從而導(dǎo)致回歸估計(jì)函數(shù)比較簡單,性能降低。
GA是一種基于自然選擇和群體遺傳機(jī)理的新的全局優(yōu)化求解方法,它模擬了自然選擇和自然遺傳過程中發(fā)生的繁殖、雜交和突變現(xiàn)象,能把自然界有機(jī)體的優(yōu)勝劣汰的自然選擇、適者生存的進(jìn)化機(jī)制和在同一群體中個(gè)體之間的隨機(jī)信息交換機(jī)制相結(jié)合,用以解決復(fù)雜問題[6]。GA優(yōu)化參數(shù)步驟如下:
a.確定決策變量和約束條件。決策變量包括懲罰因子C、核函數(shù)參數(shù) γ和不敏感損失函數(shù)參數(shù)ε。其中,核函數(shù)參數(shù) γ的搜索區(qū)間為:;不敏感損失函數(shù)參數(shù)ε的搜索區(qū)間為:[0.01,0.20];懲罰因子 C的搜索區(qū)間采取如下方法確定[7-8]:選定某一足夠大的C值,用該值訓(xùn)練ε-SVR求解出一組 αi(i=1,2,…,k),令 C1=max(αi),若 C1<C,則以 C1作為 C 的搜索區(qū)間上界,若 C1≥C,表明 C仍對 αi起約束作用,需要選擇一個(gè)更大的C訓(xùn)練SVM,直至得到的C1遠(yuǎn)小于C為止,由此可以確定C的搜索區(qū)間(0,C1)。
b.染色體編碼。染色體r采用二進(jìn)制編碼。每個(gè)算子由3段編碼組成。即:r=A1,A2,A3,其中A1,A2,A3分別為懲罰因子C、核函數(shù)參數(shù)γ和損失函數(shù)參數(shù)ε的代碼表示段。
c.初始群體的生成。隨機(jī)產(chǎn)生 N個(gè)初始串結(jié)構(gòu)數(shù)據(jù),每個(gè)串結(jié)構(gòu)數(shù)據(jù)即為一個(gè)個(gè)體,N個(gè)個(gè)體構(gòu)成一個(gè)初始群體P(0)。遺傳算法以這N個(gè)串結(jié)構(gòu)作為初始點(diǎn)開始迭代。
d.適應(yīng)度值評價(jià)檢測。計(jì)算群體P(t)(t=0,1,2,…,n;n表示遺傳代數(shù))中各個(gè)個(gè)體的適應(yīng)度。遺傳算法按與個(gè)體適應(yīng)度成正比的概率來決定當(dāng)前群體中各個(gè)個(gè)體遺傳到下一代群體中的概率。適應(yīng)度函數(shù)定義如下[9]
式中:Ymin為某染色體rj所在世代的最小值;yi為樣品數(shù)據(jù)實(shí)際值;y*i為ε-SVR的計(jì)算結(jié)果。
e.選擇、交叉、變異算子。選擇合適的算法,對群體中的個(gè)體使用選擇、交叉、變異操作,使其產(chǎn)生經(jīng)過遺傳優(yōu)化的下一代群體。
f.終止條件判斷。群體P(t)經(jīng)過選擇、交叉、變異后形成下一代群體P(t+1)。若迭代次數(shù)大于某設(shè)定值或誤差精度達(dá)到預(yù)定值,則中止迭代。
利用ε-SVR進(jìn)行地下水位預(yù)測,首先要確定影響地下水位的主要影響因素,構(gòu)建地下水位ε-SVR預(yù)測模型;再通過調(diào)查或?qū)崪y,選擇包括影響因素在內(nèi)的觀測資料,建立訓(xùn)練樣本集、驗(yàn)證樣本集,利用ε-SVR模型進(jìn)行學(xué)習(xí)訓(xùn)練,并通過參數(shù)優(yōu)化確定懲罰因子及核函數(shù)參數(shù)。訓(xùn)練學(xué)習(xí)好的ε-SVR模型即可用于待測樣本的回歸擬合。
利用文獻(xiàn)[10]中某地傍河試驗(yàn)井24個(gè)月地下水位實(shí)測序列值作為ε-SVR分析的樣本數(shù)據(jù),選取河道流量、氣溫、飽和差、降水量、蒸發(fā)量5個(gè)因子作為影響該區(qū)域地下水位的潛在因素,通過相關(guān)性分析進(jìn)一步確定影響該區(qū)域地下水位的因素。利用SPSS V13對經(jīng)過歸一化后的樣本數(shù)據(jù)進(jìn)行相關(guān)分析,分析結(jié)果見表1。從表1可以看出,氣溫與地下水位埋深相關(guān)性較小,為此,選取河道流量X1、飽和差 X2、降水量X3和蒸發(fā)量X4作為ε-SVR模型的輸入向量的分量,并以預(yù)測地下水水位值Y作為該預(yù)測模型的輸出值,選取徑向基函數(shù)為核函數(shù),建立該區(qū)域的地下水位預(yù)測ε-SVR模型:
已知該區(qū)域地下水水位實(shí)際測試數(shù)據(jù)樣本點(diǎn){Xi,Yi}(i=1,2,…,k;其中:Xi∈R4為影響地下水水位預(yù)測因素構(gòu)成的向量,Yi∈R為相應(yīng)的地下水預(yù)測水位值。用ε-SVR對已知的樣本集進(jìn)行學(xué)習(xí)訓(xùn)練,得到對應(yīng)的地下水位預(yù)測模型:
表1 某地傍河試驗(yàn)井24個(gè)月地下水位因素相關(guān)分析
把24個(gè)樣本數(shù)據(jù)分為2類:①訓(xùn)練樣本20個(gè)(序號1~20);②驗(yàn)證樣本 4個(gè)(序號21~24)。首先對訓(xùn)練樣本和驗(yàn)證樣本進(jìn)行歸一化處理,以消除單位差異和異常數(shù)據(jù)的影響;再采用遺傳算法對懲罰因子C、模型參數(shù) γ和不敏感損失函數(shù)參數(shù)ε進(jìn)行尋優(yōu),以10類折疊交叉驗(yàn)證誤差最小作為適應(yīng)度函數(shù),通過matlab編程實(shí)現(xiàn)參數(shù)自適應(yīng)選取。實(shí)驗(yàn)結(jié)果為,懲罰因子C取值92.5695;模型參數(shù)γ取值0.3040;不敏感損失函數(shù)參數(shù) ε取值0.0100。最后用確定參數(shù)對模型進(jìn)行訓(xùn)練,并用驗(yàn)證樣本進(jìn)行擬合預(yù)測,回歸結(jié)果見表2。作為比較,表2還列出了文獻(xiàn)[10]中通過人工神經(jīng)網(wǎng)絡(luò)的訓(xùn)練擬合值。
從以上回歸擬合結(jié)果可以看出,經(jīng)過參數(shù)尋優(yōu)后的ε-SVR模型對訓(xùn)練樣本(序號1~20)的擬合程度相當(dāng)驚人,誤差平方和僅為0.0022,回歸系數(shù)達(dá)到0.9933。而利用訓(xùn)練好的模型對序號21~24的檢驗(yàn)樣本擬合結(jié)果也很好,絕對誤差分別為:-0.008、0.02、0.08、-0.013,相對誤差則分別為 :1.53%、0.31%、1.30%和 1.99%,平均相對誤差僅為1.28%。與人工神經(jīng)網(wǎng)絡(luò)相比,無論是對訓(xùn)練樣本的擬合能力,還是對檢驗(yàn)樣本的泛化能力均有較大程度的提高。
a.基于結(jié)構(gòu)風(fēng)險(xiǎn)最小化原理的支持向量機(jī)具有逼近復(fù)雜非線性系統(tǒng)、較強(qiáng)的學(xué)習(xí)泛化能力,可以很好的用來解決非線性系統(tǒng)分類和回歸問題。而基于遺傳算法對SVM模型參數(shù)的自適應(yīng)優(yōu)選可以提升大大模型的泛化能力。
表2 地下水位ε-SVR模型訓(xùn)練結(jié)果
b.選擇徑向基核函數(shù)建立了地下水位ε-SVR預(yù)測模型,基于GA實(shí)現(xiàn)了懲罰因子C、核函數(shù)參數(shù)γ和不敏感損失函數(shù)參數(shù)ε的自適應(yīng)優(yōu)選,并運(yùn)用建立的模型對某地傍河試驗(yàn)井地下水位進(jìn)行了預(yù)測。實(shí)驗(yàn)結(jié)果表明,基于GA參數(shù)優(yōu)選的ε-SVR模型可以很好地用于地下水位預(yù)測,其回歸擬合能力優(yōu)于人工神經(jīng)網(wǎng)絡(luò)。
c.需要說明的是,影響地下水埋深的因素較多,包括但不限于河道流量、飽和差、降水量、蒸發(fā)量等因素。筆者選取這4個(gè)變量作為模型輸入,主要目的是為了驗(yàn)證模型方法的可行性。實(shí)際應(yīng)用中,應(yīng)根據(jù)研究區(qū)域的具體水文地質(zhì)條件,充分考慮地下水埋深影響因素的時(shí)空分布特性,選取合適的影響因子進(jìn)行地下水位預(yù)測。
[1] 祁亨年.支持向量機(jī)及其應(yīng)用研究綜述[J].計(jì)算機(jī)工程,2004,30(10):6-8.
[2] 張學(xué)工.關(guān)于統(tǒng)計(jì)學(xué)習(xí)理論與支持向量機(jī)[J].自動(dòng)化學(xué)報(bào),2000,26(1):32-42.
[3] 王景雷,吳景社,孫景生,等.支持向量機(jī)在地下水位預(yù)報(bào)中的應(yīng)用研究[J].水利學(xué)報(bào),2003(5):122-127.
[4] 王睿.關(guān)于支持向量機(jī)參數(shù)選擇方法分析[J].重慶師范大學(xué)學(xué)報(bào):自然科學(xué)版,2007,24(2):36-38.
[5] 陳前平,徐斌.基于粒子群算法的支持向量機(jī)參數(shù)優(yōu)化方法的研究[J].中國水運(yùn):理論版,2006,4(1):97-99.
[6] 雷英杰.MATLAB遺傳算法工具箱及應(yīng)用[M].陜西:西安電子科技大學(xué)出版社,2005:78-90.
[7] 周兆永,汪西莉,曹艷龍.基于GA優(yōu)選參數(shù)的SVM水質(zhì)評價(jià)方法研究[J].計(jì)算機(jī)工程與應(yīng)用,2008,44(4):190-193.
[8] WANG W,XU Z,LU W.Determination of the spread parameter in the Ganssian kernel for classification and regression[J].Neurocomputing,2003,55(6):643-663.
[9] 于青,趙輝.基于GA的支持向量機(jī)參數(shù)優(yōu)化研究[J].計(jì)算機(jī)工程與應(yīng)用,2008,44(15):139-131.
[10] 鄭書彥,李占斌,李喜安.地下水位動(dòng)態(tài)預(yù)測的人工神經(jīng)網(wǎng)絡(luò)方法[J].西北水資源與水工程,2002,13(2):14-16.