石 婷,陳素根
(安慶師范大學(xué)數(shù)理學(xué)院,安徽安慶246133)
支持向量機(SVM)是由Vapnik等[1]提出的一種有效的機器學(xué)習(xí)算法,支持向量回歸機(SVR)是基于SVM原理解決回歸問題的技術(shù),常用于處理分類和回歸問題。傳統(tǒng)的SVR模型需要求解一個較大的凸二次規(guī)劃問題,計算復(fù)雜度大、訓(xùn)練速度慢。為了解決SVR的學(xué)習(xí)速度與計算復(fù)雜度問題,Peng提出了孿生支持向量回歸機(TSVR),通過引入兩個非平行的ε-不敏感損失函數(shù)將問題轉(zhuǎn)化為求解2個較小規(guī)模的二次規(guī)劃問題,訓(xùn)練速度是SVR的4倍[2]。自此,孿生支持向量回歸機逐漸成為機器學(xué)習(xí)領(lǐng)域的研究熱點之一,涌現(xiàn)出了大量的相關(guān)研究成果,如非平行平面支持向量回歸機[3]、強健的支持向量回歸機[4]和Epsilon非平行平面支持向量回歸機[5-10]等。
受TSVR的啟發(fā),本文提出一種新型非平行平面支持向量回歸機(NNHSVR),目的是尋找2個非平行函數(shù),進而得到最終的回歸函數(shù)。從模型上來看,SVR求解1個較大規(guī)模的二次規(guī)劃問題且對所有訓(xùn)練樣本點有2組約束;NNHSVR求解2個較小規(guī)模的二次規(guī)劃問題且對所有訓(xùn)練樣本點只有1組約束,因此NNHSVR比SVR的訓(xùn)練速度要快。與TSVR不同的是,在NNHSVR目標函數(shù)中增加對上下邊界函數(shù)的約束項,通過調(diào)節(jié)u的大小使上下邊界函數(shù)盡量靠近大部分訓(xùn)練點,減弱離群點對上下邊界函數(shù)的影響,算法更加魯棒。
線性SVR的原始問題如下:
其中,c>0表示懲罰參數(shù),ε>0表示參數(shù),ξ、ξ*∈Rn表示松弛變量,e=(1,1,1,…,1)T∈Rn。SVR就是求解問題(1),得到一個線性回歸函數(shù)f(x)=ωTx+b,其中ω∈Rm表示法向量,b∈R表示偏置。為此,引入拉格朗日函數(shù),得到式(1)的對偶問題如下:
其中,α,β∈Rn是拉格朗日乘子。通過求解對偶問題,得到最終的回歸函數(shù)f(x)=ωTx+b。對于非線性SVR的相關(guān)內(nèi)容可參見文獻[11]。
本節(jié)討論線性TSVR,尋找兩個函數(shù)f1(x)=ω1Tx+b1和f2(x)=ω2Tx+b2,線性TSVR的原始問題如下:
其中,c1、c2>0為懲罰參數(shù),ε1、ε2≥0為參數(shù),ξ、η∈Rn為松弛變量,e=(1,1,1,…,1)T∈Rn。
引入拉格朗日函數(shù),式(3)的對偶問題如下:
其中,h=Y+eε2。分別求解對偶問題(5)和(6),可以得到函數(shù)f1(x)與f2(x),進而得到最終的回歸函數(shù)f(x)=(f1(x)+f2(x))/2。關(guān)于非線性TSVR的相關(guān)內(nèi)容可參見文獻[2]。
我們尋求2個非平行函數(shù):f1(x)=ω1Tx+b1,f2(x)=ω2Tx+b2,與TSVR不同,NNHSVR在目標函數(shù)中引入了1個調(diào)節(jié)參數(shù),對上下邊界函數(shù)進行約束,構(gòu)造線性NNHSVR的原始問題如下:
其中,c1,c2>0是懲罰參數(shù),u1,u2>0是調(diào)節(jié)參數(shù),ξ,η∈Rn是非負松弛變量,e=(1,1,1,…,1)T∈Rn。
圖1是對NNHSVR的幾何解釋。式(7)的目標函數(shù)的第1項表示最小化訓(xùn)練樣本點與下邊界函數(shù)f1(x)之間的距離,第2項表示最大化帶懲罰因子u1的第3項是最小化訓(xùn)練樣本點與下邊界函數(shù)之間的誤差。約束條件要求由f1(x)獲得的訓(xùn)練樣本點估計值要盡可能小于訓(xùn)練樣本點的響應(yīng)值。對于式(8),可類似解釋。
圖1 NNHSVR的幾何解釋
為了獲得NNHSVR的對偶問題,引入拉格朗日函數(shù)
求偏導(dǎo)數(shù)并令其等于0,結(jié)合KKT條件得:
由式(12)與式(13),易得:0≤α≤c1e。將式(10)與式(11)結(jié)合,可得:
為了避免GTG不可逆的情況發(fā)生,引入正則項δI,其中δ是一個很小的正數(shù),I是相應(yīng)維單位矩陣。令δ=10-7,式(15)可改寫為v1=(ω1b1)T=(GTG+δI)-1GT(f-α),將式(15)代入式(9),去掉所有常數(shù)項,得到式(7)的對偶問題為
為了驗證所提出的NNHSVR的有效性,分別在4個人工數(shù)據(jù)集和10個UCI數(shù)據(jù)集(Available:http://kdd.ics.uci.edu/)上進行實驗,并與SVR、TSVR做對比分析。所有實驗都是在macOSMojave硬件平臺,2.4 GHz處理器,8 GB內(nèi)存的MATLAB R2017b上進行。TSVR、NNHSVR中的二次規(guī)劃問題采用超松弛技術(shù)來求解。SVR直接調(diào)用Libsvm(Available:https://www.csie.ntu.edu.tw/~cjlin/libsvm/)工具箱中的函數(shù)來求解。本文只考慮高斯核函數(shù),通過十折交叉驗證與網(wǎng)格尋優(yōu)的方法尋找各算法的最優(yōu)參數(shù),所有參數(shù)都取自集合{ }2i|i=-8,-7,-6,…,8。實驗設(shè)置參數(shù)c1=c2,ε1=ε2,u1=u2,實驗在人工數(shù)據(jù)集與UCI數(shù)據(jù)集上重復(fù)進行10次,并記錄10次實驗結(jié)果的平均值。
回歸問題所用的評價指標有:SSE(誤差平方和)、SSR(回歸平方和)、SST(總離差平方和)、MSE(均方誤差)。通常,SSE的值越小擬合效果就越好;SSE/SST的值越小意味著預(yù)測值與真實值更接近,隨著SSE/SST的減少,SSR/SST值會相應(yīng)的變大且接近1;MSE值越小,擬合效果越好。
首先測試NNHSVR在Sinc函數(shù)上的性能,為了有效地評價算法性能,訓(xùn)練樣本是被一些噪聲污染的,包括零均值高斯噪聲和均勻分布噪聲。特別地,選取以下4種類型的人工數(shù)據(jù)集,分別給出252個帶有噪聲的訓(xùn)練點和500個不帶噪聲的測試點進行實驗,
其中,U[a,b]表示區(qū)間[a,b]內(nèi)的均勻隨機變量,N(c,σ2)表示服從均值為c、方差為σ2的高斯隨機變量。
每種類型做10次獨立實驗,取10次實驗結(jié)果的平均值與方差,實驗結(jié)果見表1,表1中黑體數(shù)字表示擬合效果最好的評價指標和最少的訓(xùn)練時間。這4個人工數(shù)據(jù)集在3種算法上運行一次的預(yù)測結(jié)果如圖2所示。
圖2 SVR、TSVR和NNHSVR在人工數(shù)據(jù)集上的實驗結(jié)果
表1 SVR,TSVR和NNHSVR在4種人工數(shù)據(jù)集上的結(jié)果比較
在TypeA、TypeB數(shù)據(jù)集中,NNHSVR的SSE、SSE/SST的值都比SVR、TSVR要小,同時SSR/SST更接近1,這表明NNHSVR比SVR、TSVR擬合效果更好。對于訓(xùn)練時間,雖然TSVR的訓(xùn)練時間最少,但是NNHSVR比SVR的訓(xùn)練時間少。在TypeC、TypeD數(shù)據(jù)集中NNHSVR的擬合效果和訓(xùn)練時間都比SVR、TSVR好。因此,從表1可看出NNHSVR不僅有較好的擬合效果,而且訓(xùn)練速度也快。
為進一步驗證NNHSVR的有效性,給出10個常用于回歸的數(shù)據(jù)集來進行實驗驗證。包括Motorcycle、Pyrim、Bodyfat、Diabetes、Auto-Mpg、Machine CPU、Serve、Boston housing、Wisconsin B.C、Auto Price數(shù)據(jù)集。其中,Motorcycle包含133個樣本,2個特征;Pyrim包含74個樣本,27個特征;Diabetes包含43個樣本,3個特征;Bodyfat包含252個樣本,15個特征;Auto-Mpg包含398個樣本,8個特征;Machine CPU包含209個樣本,7個特征;Servo包含167個樣本,5個特征;Boston housing包含506個樣本,14個特征;Wisconsin B.C包含194個樣本,33個特征;Auto Price包含159個樣本,16個特征。Motorcycle、Diabetes和Pyrim這3個數(shù)據(jù)集樣本較少,均采取留一法交叉驗證進行實驗,而其他7個數(shù)據(jù)集均采取十折交叉驗證進行實驗。每個數(shù)據(jù)集獨立重復(fù)實驗10次,并記錄實驗結(jié)果的平均值,實驗結(jié)果見表2。
表2中的SSE/SSTloo,SSR/SSTloo表示在留一法交叉驗證下進行實驗的結(jié)果。由表2可看出NNHSVR在Motorcycle、Diabetes和Pyrim數(shù)據(jù)集上的SSE/SST值比SVR更小,SSR/SST值更大更接近1且訓(xùn)練時間最少。在Motorcycle和Pyrim數(shù)據(jù)集上,NNHSVR比TSVR的SSE/SST值要小,SSR/SST值更大且訓(xùn)練時間最少。從表2的實驗結(jié)果還可看出,NNHSVR在大部分數(shù)據(jù)集上不僅有更好的泛化性能,而且有較少的訓(xùn)練時間。
表2 SVR、TSVR和NNHSVR在Motorcycle、Diabetes和Pyrim數(shù)據(jù)集上的結(jié)果比較
由表3可看出,在Wisconsin B.C數(shù)據(jù)集上,TSVR比SVR和NNHSVR有更小的SSE/SST值,SSR/SST值更接近1,且訓(xùn)練時間更少。在其他數(shù)據(jù)集中,NNHSVR比SVR和TSVR的SSE/SST值更小,SSR/SST值更接近1,且在除了Auto-Mpg數(shù)據(jù)集以外的數(shù)據(jù)集上訓(xùn)練時間都是最少的。由表3還可看出,NNHSVR在大部分數(shù)據(jù)集上的泛化性能與訓(xùn)練時間都要優(yōu)于SVR和TSVR。
表3 SVR、TSVR和NNHSVR在UCI數(shù)據(jù)集上的結(jié)果比較
為了進一步驗證NNHSVR在實際問題中的有效性,將NNHSVR應(yīng)用于新冠肺炎傳染病預(yù)測問題,并與傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)算法作對比分析。實驗數(shù)據(jù)取自中國國家衛(wèi)生健康委員會(Available:http://www.nhc.gov.cn)2020年發(fā)布的1月20日到3月23日之間的新冠肺炎傳染病累計確診人數(shù)。以2020年1月20日到3月12日累計確診人數(shù)作為訓(xùn)練數(shù)據(jù),2月23日到3月22日累計確診人數(shù)作為測試數(shù)據(jù)。
(續(xù)表4)
由表4可看出,NNHSVR比BP神經(jīng)網(wǎng)絡(luò)的相對誤差更小,且BP、SVR、TSVR和NNHSVR在上述傳染病預(yù)測問題中的均方誤差分別為4.83×10-6,6.68×10-6,2.91×10-6和2.96×10-6。圖3給出了BP、SVR、TSVR和NNHSVR這4種算法的預(yù)測值與真實值之間的擬合程度,結(jié)果顯示,NNHSVR比BP神經(jīng)網(wǎng)絡(luò)具有較好的擬合效果。
表4 BP,SVR,TSVR和NNHSVR的真實值、預(yù)測值、相對誤差比較
圖3 BP、SVR、TSVR和NNHSVR真實值與預(yù)測值比較
針對SVR預(yù)測精度和訓(xùn)練速度問題,本文在目標函數(shù)中引入了1個調(diào)節(jié)參數(shù)u來對上下邊界函數(shù)進行約束,提出了一種新型非平行平面支持向量回歸機(NNHSVR)。NNHSVR在求解含有1組約束條件的2個較小規(guī)模的二次規(guī)劃問題時比SVR訓(xùn)練速度快。在人工數(shù)據(jù)集、UCI數(shù)據(jù)集和新冠肺炎數(shù)據(jù)集上的實驗驗證了NNHSVR的有效性。但是NNHSVR也存在一些不足:在訓(xùn)練過程中,矩陣可能出現(xiàn)奇異的情況,導(dǎo)致解不穩(wěn)定,而且在訓(xùn)練大規(guī)模數(shù)據(jù)時速度較慢。在今后的工作中將進一步尋求快速算法來求解大規(guī)模數(shù)據(jù)問題。