涂光輝 蔣 華
(桂林電子科技大學(xué)計算機科學(xué)與工程學(xué)院,廣西 桂林 541004)
機器學(xué)習(xí)是人工智能的核心研究領(lǐng)域之一, 其最初的研究動機是為了讓計算機系統(tǒng)具有人的學(xué)習(xí)能力以便實現(xiàn)人工智能,因為眾所周知,沒有學(xué)習(xí)能力的系統(tǒng)很難被認為是具有智能的。目前被廣泛采用的機器學(xué)習(xí)的定義是:“機器學(xué)習(xí)是研究計算機算法,并通過經(jīng)驗提高其自動性“[1]?!被跀?shù)據(jù)的機器學(xué)習(xí)是現(xiàn)代智能技術(shù)中的重要方面,研究從觀測數(shù)據(jù)(樣本)出發(fā)尋找規(guī)律,利用這些規(guī)律對未來數(shù)據(jù)或無法觀測的數(shù)據(jù)進行預(yù)測[2]“(張學(xué)工)。包括模式識別、神經(jīng)網(wǎng)絡(luò)等在內(nèi),現(xiàn)有機器學(xué)習(xí)方法共同的重要理論基礎(chǔ)之一是統(tǒng)計學(xué)。
統(tǒng)計學(xué)習(xí)理論(Statistical Learning Theory或SLT)是一種專門研究小樣本情況下機器學(xué)習(xí)規(guī)律的理論。V.Vapnik等人從六、七十年代開始致力于此方面研究[3]。隨著其理論的不斷發(fā)展和成熟,在這一理論基礎(chǔ)上發(fā)展了一種新的通用學(xué)習(xí)方法——支持向量機(Support Vector Machine或SVM)。SVM為解決基于數(shù)據(jù)的非線性建模問題提供了一個新思路,是一種具有嚴密理論基礎(chǔ)的計算機學(xué)習(xí)的新方法,它已經(jīng)成為計算機學(xué)習(xí)、模式識別、計算智能、預(yù)測預(yù)報等領(lǐng)域的熱點技術(shù),受到國內(nèi)外的廣泛關(guān)注。
機器學(xué)習(xí)的目的是根據(jù)給定的訓(xùn)練樣本求對某系統(tǒng)輸入輸出之間依賴關(guān)系的估計,使它能夠?qū)ξ粗敵鲎鞒霰M可能準確的預(yù)測[2]。本文通過使用支持向量機算法,對上證指數(shù)進行預(yù)測。所得的預(yù)測結(jié)果對現(xiàn)實生活中的股票投資有一定的參考作用。
支持向量機建立在結(jié)構(gòu)風(fēng)險最小化原則(SRM)[4]基礎(chǔ)之上,是統(tǒng)計學(xué)習(xí)理論中最年輕的內(nèi)容,也是最實用的內(nèi)容。其核心內(nèi)容是在1992到1995年間提出的[5,6,7,8],目前仍處在不斷發(fā)展階段。具有很強的學(xué)習(xí)能力和泛化性能,能夠較好地解決小樣本、高維數(shù),非線性、局部極小等問題,可以有效地進行分類、回歸、密度估計等[9]。另外支持向量機在處理非線性問題時 首先將非線性問題轉(zhuǎn)化為高維空間中的線性問題然后用一個核函數(shù)來代替高維空間中的內(nèi)積運算從而巧妙地解決了復(fù)雜計算問題并且有效地克服了維數(shù)災(zāi)難及局部極小問題。由于有這些優(yōu)點,支持向量機已成為機器學(xué)習(xí)領(lǐng)域的研究熱點。目前,支持向量機已經(jīng)已經(jīng)廣泛用于解決分類和回歸問題[10,11]。
回歸問題[12]的數(shù)學(xué)提法是:已知訓(xùn)練集T ={(x1, y1),( x2, y2), …,( xl, yl)}∈(X *Y),其中 xi∈X=Rn是輸入指標(biāo)向量,或稱輸入,或稱模式,yi∈Y=R是輸出指標(biāo),或稱輸出,i = 1,2,… ,l。假定訓(xùn)練集是按X*Y上的某個概率分布P( x, y)選取的獨立同分布的樣本點,又設(shè)給定損失函數(shù)L( x, y, f)。試尋求一個函數(shù)f( x),使得期望風(fēng)險R( f ) =∫L( x, y, f) d P( x, y )達到極小。此處概率分布P( x, y)是未知的,已知的僅僅是訓(xùn)練集T。
設(shè)給定的訓(xùn)練樣本[13]為:首先用一個非線性映射φ把數(shù)據(jù)映射到一個高維特征空間,然后在高維特征空間中進行線性回歸設(shè)回歸函數(shù)為:f( x) =< w, φ(x) >+b 。優(yōu)化問題是最小化
式(1)中第一項使函數(shù)更為平坦,從而提高泛化能力,第二項則為減小誤差,常數(shù)C對兩者做出折中。ε為一正常數(shù),f( xi)與yi的差別小于ε時不計入誤差,大于ε時誤差計為|f( xi) -yi|-ε。
這是一個二次優(yōu)化問題, 其對偶問題為:
解這個二次優(yōu)化,可以得到a的值,ω的表達式為:
于是回歸函數(shù) f( x)的表達式為:
可以看到 在上面的優(yōu)化中需要計算高維特征空間中的內(nèi)積運算,如果找一個核函數(shù)k( x, y)代替高維空間中的內(nèi)積,就可以避免復(fù)雜的高維計算問題。已經(jīng)證明 <φ( x),φ(y)>,對稱函數(shù)k( x, y)只要滿足 Mercer 條件,即可滿足要求,這樣就避免了明確知道φ(x),從而巧妙地解決了在高維空間中的運算。按照Kuhn-Tucker 定理,可得b的計算式如下:
可以通過任意一個滿足條件的樣本計算出b的值。
核函數(shù)的選擇是支持向量機理論研究的一個核心問題。在實際的應(yīng)用中,最常用的核函數(shù)[14]有以下4種:
式中σ為核參數(shù),它隱式地定義了從原始空間到高維特征空間中的非線性映射。
(4)Sigmoid函數(shù)
在這四種核函數(shù)中,應(yīng)用最廣泛的是RBF核,無論是低維、高維、小樣本、大樣本等情況,RBF核函數(shù)均適用,具有較寬的收斂域,是較為理想的分類依據(jù)函數(shù)[15]。本論文使用的是RBF核函數(shù)。
最小二乘支持向量機是支持向量機的一種改進,它是將傳統(tǒng)支持向量機中的不等式約束改為等式約束,且將誤差平方和( Sum Squares Error)損失函數(shù)作為訓(xùn)練集的經(jīng)驗損失,這樣就把解二次規(guī)劃問題轉(zhuǎn)化為求解線性方程組問題,提高求解問題的速度和收斂精度。設(shè)樣本為n維向量, 某區(qū)域的l個樣本及其表示為:首先用一非線性映射ψ(·)把樣本從源空間 Rn映射到特征空間φ ( xi),在這個高維特征空間中構(gòu)造最優(yōu)決策函數(shù)∶
這樣非線性估計函數(shù)轉(zhuǎn)化為高維特征空間的線性估計函數(shù)。利用結(jié)構(gòu)風(fēng)險最小化原則,尋找ω,b就是最小化:
其中,‖ ω ‖2控制模型的復(fù)雜度,c是正規(guī)化參數(shù),控制對超出誤差樣本的懲罰程度。Remp為誤差控制函數(shù),也即ε不敏感損失函數(shù)。常用的損失函數(shù)有線性ε損失函數(shù),二次ε損失函數(shù),Huber損失函數(shù)。選取了不同的損失函數(shù),可構(gòu)造不同形式的支持向量機。最小二乘支持向量機在優(yōu)化目標(biāo)失函數(shù)為誤差ξi的二次項。故優(yōu)化問題為
式中,iξ為松弛因子。用拉格朗日法求解這個優(yōu)化問題∶
其中:αi( i =1,…, l )是拉格朗日乘子。
其中:αi=c ·ξi, ω · φ( xi) +b + ξi- yi=0。
定義核函數(shù) K( xi, yi) = φ( xi) ·φ( xj)是滿足條件的對稱函數(shù)。優(yōu)化問題可轉(zhuǎn)化為求解線性方程[18]:
最后用最小二乘法求出a與b,最小二乘支持向量機也由此得名,并且得到非線性預(yù)模型:
本論文使用的數(shù)據(jù)集是太陽黑子。太陽黑子(sunspot)是在太陽的光球?qū)由习l(fā)生的一種太陽活動,是太陽活動中最基本、最明顯的。黑子看上去像一些深暗色的斑點,很少單獨活動,常是成群出現(xiàn)。黑子的活動周期為11.2年,活躍時會對地球的磁場產(chǎn)生影響,主要是使地球南北極和赤道的大氣環(huán)流作經(jīng)向流動,從而造成惡劣天氣,使氣候轉(zhuǎn)冷。嚴重時會對各類電子產(chǎn)品和電器造成損害。
當(dāng)太陽上有大群黑子出現(xiàn)的時候,地球上的指南針會亂抖動,不能正確地指示方向;平時很善于識別方向的信鴿會迷路;無線電通訊也會受到嚴重阻礙,甚至?xí)蝗恢袛嘁欢螘r間,這些反常現(xiàn)象將會對飛機、輪船和人造衛(wèi)星的安全航行、還有電視傳真等方面造成很大的威脅。黑子還會引起地球上氣候的變化,從而對農(nóng)作物的生長和人的身體造成不可忽視的影響。
黑子的活動是有規(guī)律的,對人類活動有重要影響。我們很有必要對它進行必要的研究,掌握一些基本的規(guī)律以指導(dǎo)人類的活動。本文對1780~1979年的黑子活動進行了實驗。分別將1879~1958年和1780~1958年間的太陽黑子的數(shù)據(jù)作為訓(xùn)練集,相應(yīng)的年份作為 X,而太陽黑子數(shù)作為Y;1959-1979期間的數(shù)據(jù)作為測試集,其中的年份作為Xt,太陽黑子數(shù)作為tY。
最小二乘支持向量機(LSSVM)是標(biāo)準的支持向量機的改進形式。LSSVM與正規(guī)化網(wǎng)絡(luò)[16]和高斯函數(shù)緊密相關(guān),但它更加重視對偶問題的求解。它將經(jīng)典的模式識別算法,如核Fisher判別分析和擴展的無監(jiān)督學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)聯(lián)系到一起[17]。LSSVM是一類基于核的學(xué)習(xí)方法,它最基本的目標(biāo)是解決分類問題和回歸問題。
LS_SVM工具箱用于函數(shù)回歸主要用到 3個函數(shù),trainlssvm函數(shù)用來訓(xùn)練建立模型,simlssvm函數(shù)用于預(yù)估模型,plotlssvm函數(shù)是LS2SVMlab工具箱的專用繪圖函數(shù)。高版本的LS2SVMlab工具箱還有貝葉斯框架下的最小二乘支持向量機,固定大小的最小二乘支持向量機等。
本論文使用SVR算法,對太陽黑子的活動進行回歸預(yù)測。具體代碼如下:
%讀取數(shù)據(jù)
t=textread('E∶數(shù)據(jù)集.txt');
%提取訓(xùn)練集
X=t(1∶80,1);%(X=t(1∶180,1))
Y=t(1∶80,2);% (X=t(1∶180),1)
%提取測試集
Xt=t(81∶100,1);
Yt=t(81∶100,2);
%初始化參數(shù)
gam = 10;
sig2 = 0.5;
fold = 5;
type = 'function estimation';
costfun = 'rcrossvalidate';
costfun_args = {X,Y,fold};
optfun = 'gridsearch';
%生成最優(yōu)參數(shù)
[gam, sig2] = tunelssvm({X,Y,type,gam,sig2}, [],optfun, {}, costfun, costfun_args);
%交叉驗證
performance = rcrossvalidate({X,Y,type,gam,sig2},costfun_args);
%算法訓(xùn)練,建立模型
[alpha,b] = robustlssvm({X,Y,type,gam,sig2});
%進行模型的預(yù)測
Yt = simlssvm({X,Y,type,gam,sig2},{alpha,b},Xt);
%輸出曲線
plotlssvm({X,Y,type,gam,sig2},{alpha,b});
經(jīng)過調(diào)試程序,用1879-1958年的太陽黑子數(shù)訓(xùn)練后得到的測試結(jié)果如圖(1)示。用1780~1958年的太陽黑子數(shù)訓(xùn)練后得到的測試結(jié)果如圖(2)所示。其中實線表示預(yù)測的太陽黑子數(shù),點表示實際的太陽黑子數(shù)。
從圖(1)中容易觀察到黑字數(shù)的真實值與預(yù)測值的在頂點時有一定的誤差,但總體的擬合程度還是比較高。這說明用SVR算法來預(yù)估太陽黑子數(shù)能得到較好的預(yù)估效果。從圖(2)容易發(fā)現(xiàn)黑字數(shù)的真實值與預(yù)測值的在頂點時有比較大的誤差。從這兩個測試結(jié)果的比較中,我們可以得出這樣的結(jié)果:實驗所用的訓(xùn)練黑子數(shù)的時間越靠前,所得的測試結(jié)果越準確。
圖1
圖2
最小二乘支持向量機是用等式約束代替?zhèn)鹘y(tǒng)支持向量機中的不等式約束,求解過程從解QP問題編程一組等式方程,提高求解問題的速度和收斂精度。針對最小二乘支持向量機在回歸預(yù)測方面的應(yīng)用,使用SVR算法建立了太陽黑子數(shù)的預(yù)測模型。預(yù)測結(jié)果表明最小二乘支持向量機建立的非線性模型是可行有效的,具有很好的泛化能力,計算速度快。
[1] T. M. Mitchell. Machine Learning[M].New York: McGraw-Hill,1997.
[2] 張學(xué)工.關(guān)于統(tǒng)計學(xué)習(xí)理論與支持向量機[J].自動化學(xué)報,2000,26(1):32-42.
[3] Vapnik V N. Estimation of Dependencies Based on Empirical Data[M]. Berlin: Springer?Verlag, 1982.
[4] C.J.C Burges.A tutorial on support vector lIlachines for pattern recognition[J].Data Mining and Knowledge Discovery.1998,2(2):121-167.
[5] Vapnik V, Levin E, Le Cun Y. Measuring the VC?dimension of a learning machine[J].Neural Computation.1994(6):851-876.
[6] Burges C J C. A tutorial on support vector machines for pattern recognition[J]. Data Mining and Knowledge Discovery,1998,2(2):121-167.
[7] Burges C J C. A tutorial on support vector machines for patternrecognition[J].1998(02):121-167
[8] Boser B,Guyon I,Vapnik V. A training algorithm for optimal margin classifiers[J]. 1992,5(20):61-65.
[9] Olvi L. Mangasarian, David R. Musicant.Successive overrelaxation for support vector machines[J].IEEE Transactions on Neural Networks.1999,5(10):1032-1037.
[10] Brassil J T, Low S H, Maxemchuk N F. Copyright Protection for the Electronic Distribution of Text Documents [J]. Proc. IEEE.1999,7(87):1181-1196.
[11] Lu H, Shi X, Shi Y Q, Kot A C, Chen L. Watermark embedding in DC components of DCT for binary images[C].in proc. IEEE Int.Workshop on Multimedia Signal Processing, US Virgin Islands. 2002:300-303.
[12] 杜樹新,吳鐵軍.用于回歸估計的支持向量機方法[J].系統(tǒng)仿真學(xué)報,2003,15(11):1580-1633.
[13] 孫德山,吳今培,肖健華.SVR在混沌時間序列預(yù)測中的應(yīng)用[J].系統(tǒng)仿真報,2004,3(16):519-521.
[14] 蘇高利,鄧芳萍.關(guān)于支持向量回歸機的模型選擇[J].科技通報,2006,3(2):154-158..
[15] 李盼池,許少華.支持向量在模式識別中的核函數(shù)特性分析[J].計算機工程與設(shè)計,2005,26(2):302-304.
[16] Evgeniou T., Pontil M.,Poggio T. Regularization networks and support vector machines[J]. Advances in Computational Mathematics, 2000,13(1):1-50.
[17] Suykens J.A.K., Vandewalle J.Recurrent least squares support vector machines,IEEE Transactions on Circuits and Systems-I,2000,47(7),1109-1114.
[18] 閻威武,邵惠鶴.支持向量機和最小二乘支持向量機的比較及應(yīng)用研究[J].控制與決策,2003,18(3):358-360.