錢曉山,陽(yáng)春華
(1.中南大學(xué)信息科學(xué)與工程學(xué)院,湖南長(zhǎng)沙 410083;2.宜春學(xué)院 物理科學(xué)與工程技術(shù)學(xué)院,江西 宜春 336000)
支持向量機(jī)(support vector machine,SVM)是Vapnik等[1-2]于1995年首先提出,它在解決小樣本、非線性和高維模式識(shí)別問(wèn)題中表現(xiàn)出許多優(yōu)越特性,已成為智能科學(xué)技術(shù)研究領(lǐng)域的熱點(diǎn)[3-4].最小二乘支持向量機(jī)(least squares support vector machine,LSSVM)[5-6]是標(biāo)準(zhǔn)支持向量機(jī)的一種擴(kuò)展,是支持向量機(jī)在二次損失下的一種特殊形式,它采用最小二乘線性系統(tǒng)作為損失函數(shù),將求解二次規(guī)劃問(wèn)題轉(zhuǎn)化為求解一組線性方程;因而該方法求解速度較快,并廣泛應(yīng)用于非線性函數(shù)估計(jì)和逼近中,取得了較好的效果.
實(shí)踐證明,最小二乘支持向量機(jī)的精度和泛化性能受核函數(shù)的參數(shù)以及懲罰系數(shù)的影響較大,因此,研究最小二乘支持向量機(jī)參數(shù)選擇的方法對(duì)其發(fā)展有重要的實(shí)際意義.目前已經(jīng)有一些最小二乘支持向量機(jī)參數(shù)優(yōu)選方法,文獻(xiàn)[7]針對(duì)LSSVM用交叉驗(yàn)證的方法進(jìn)行核參數(shù)選擇后應(yīng)用于PCA的軟測(cè)量建模;文獻(xiàn)[8]將遺傳算法用于核參數(shù)選擇后對(duì)直流電機(jī)進(jìn)行建模;文獻(xiàn)[9]用粒子群算法進(jìn)行核參數(shù)優(yōu)選后用于軟測(cè)量建模.以上算法進(jìn)行參數(shù)尋優(yōu)時(shí)易陷入局部最優(yōu),從而影響了整個(gè)模型的精度及泛化性能.文獻(xiàn)[10]利用GEP和交叉驗(yàn)證法優(yōu)選支持向量機(jī)的核參數(shù),算法性能得到了大大改善.基因表達(dá)式編程(gene expression programming,GEP)是由葡萄牙科學(xué)家C.Ferreira提出的一種基于基因型組(genome)和表現(xiàn)型組(phenome)的新型遺傳算法,它繼承和發(fā)展了遺傳算法GA和遺傳編程GP,集成了它們的優(yōu)點(diǎn),因此該方法具有更強(qiáng)的解決問(wèn)題的能力,在函數(shù)參數(shù)優(yōu)化、演化建模、神經(jīng)網(wǎng)絡(luò)、分類和 TSP問(wèn)題等領(lǐng)域得到了廣泛應(yīng)用[11-12].本文提出了基于基因表達(dá)式編程的最小二乘支持向量機(jī)的參數(shù)尋優(yōu)方法,在執(zhí)行變異操作時(shí),變異算子按照進(jìn)化代數(shù)和染色體所含基因數(shù)目的不同而動(dòng)態(tài)變化,這樣優(yōu)化了算法的收斂速度和精度.同時(shí)通過(guò)與粒子群算法和遺傳算法參數(shù)尋優(yōu)方法比較,并用標(biāo)準(zhǔn)測(cè)試函數(shù)和實(shí)際工業(yè)過(guò)程生產(chǎn)數(shù)據(jù)進(jìn)行驗(yàn)證,結(jié)果表明了該模型的預(yù)測(cè)精度較高.
GEP沿襲了GA和GP中的復(fù)制、變異、交叉等遺傳算子以及“物競(jìng)天擇,適者生存”的自然選擇思想,其解決問(wèn)題的能力更強(qiáng),比傳統(tǒng)的GA和GP等遺傳算法要快100~60 000倍[12].
在GEP中,個(gè)體采用固定長(zhǎng)度的線性編碼來(lái)表示.個(gè)體染色體由1個(gè)或多個(gè)基因組成,每個(gè)基因由基因頭h和基因尾t構(gòu)成,h中可以出現(xiàn)運(yùn)算符或終結(jié)點(diǎn),而 t中只能出現(xiàn)終結(jié)點(diǎn),并且 h和 t滿足L(t)=L(h)×(n-1)+1,其中,n為h中運(yùn)算符、函數(shù)的最大參數(shù)個(gè)數(shù).GEP算法在對(duì)個(gè)體染色體進(jìn)行適應(yīng)度評(píng)價(jià)時(shí),需要先將染色體按照自頂向下、自左至右的順序?qū)⑵渚幋a為表達(dá)式樹(expression tree,ET),再采用中根遍歷ET的方法進(jìn)行解碼操作,計(jì)算其適應(yīng)度[12].
基因表達(dá)式編程的實(shí)現(xiàn)技術(shù)主要包括編碼方式、遺傳算子、插串操作、重組算子、適應(yīng)度函數(shù)選擇、數(shù)值變量等[13],每個(gè)部分的具體實(shí)現(xiàn)可參考文獻(xiàn)[13],這里不作詳細(xì)敘述,變異算子動(dòng)態(tài)變化機(jī)制可參考文獻(xiàn)[14].
在支持向量機(jī)回歸法[15]中,設(shè)樣本為 n維向量,某區(qū)域的m個(gè)樣本及其值表示為
首先通過(guò)非線性變換z=φ(xi)將m維向量映射到l(l?m)維這個(gè)高維特征空間中,之后采用線性函數(shù)f(x)=wφ(x)+b來(lái)對(duì)其擬合,并容許出現(xiàn)擬合誤差,目標(biāo)是使回歸模型在模型推廣能力和經(jīng)驗(yàn)風(fēng)險(xiǎn)之間找到最佳平衡點(diǎn),即結(jié)構(gòu)風(fēng)險(xiǎn)最小.LSSVM回歸算法的優(yōu)化目標(biāo)為
式中:wTw為控制模型的復(fù)雜度,C為誤差懲罰參數(shù),J為誤差控制函數(shù).利用拉格朗日法求解式(1)的優(yōu)化問(wèn)題,定義拉格朗日函數(shù):
式中:αi(i=1,2,…,m)是拉格朗日乘子.
根據(jù)KKT優(yōu)化條件:
定義核函數(shù) K(xi,yi)= φ(xi)·φ(yi),根據(jù)式(2),將求解優(yōu)化問(wèn)題轉(zhuǎn)化為求解線性方程:
解上述線性方程組可得到拉格朗日乘子αi和參數(shù)b,由此確定LSSVM的輸出為
由于最小二乘支持向量機(jī)的參數(shù)選擇直接影響整個(gè)模型的收斂性、穩(wěn)定性和精度,而GEP與GA和GP相比,具有更強(qiáng)的全局搜索能力[16-17];因此,將GEP算法引入到以徑向基函數(shù)為核函數(shù)的LSS-VM模型的參數(shù)優(yōu)化中,形成基于GEP的LSSVM模型.與PSO和GA優(yōu)化算法比較,該算法可以得到更高的精度,其泛化性能和穩(wěn)定性也大大提高.
染色體編碼和適應(yīng)度函數(shù)選擇是進(jìn)行懲罰系數(shù)C和核函數(shù)寬度σ參數(shù)優(yōu)化的2個(gè)重要方面.在GEP中,多基因結(jié)構(gòu)可以用來(lái)進(jìn)行有效的搜索以解決函數(shù)優(yōu)化的問(wèn)題,且最佳參數(shù)是在不停變化的隨機(jī)數(shù)值常數(shù)上的數(shù)學(xué)運(yùn)算中發(fā)現(xiàn)的.為此,在染色體編碼中采用處理隨機(jī)數(shù)值常數(shù)的染色體組織結(jié)構(gòu).隨機(jī)數(shù)值常數(shù)集的選取十分容易,通??梢赃x擇由10 個(gè)隨機(jī)常數(shù)構(gòu)成的集合,如 R={0,1,2,3,4,5,6,7,8,9},這對(duì)大部分問(wèn)題就能夠達(dá)到很好的效果.適應(yīng)度函數(shù)選擇如式(3):
式中:yi為實(shí)際值,y'i為支持向量機(jī)的輸出,n為樣本數(shù).利用GEP算法對(duì)懲罰系數(shù)C和核函數(shù)寬度σ進(jìn)行尋優(yōu),具體算法步驟如下:
1)針對(duì)參數(shù)C、σ初始化種群,隨機(jī)產(chǎn)生60組初始染色體,每個(gè)染色體由5個(gè)基因構(gòu)成,每個(gè)基因頭長(zhǎng)度為15(或更多),初始化時(shí)采用KARVA編碼;
2)讀取樣本數(shù)據(jù),根據(jù)當(dāng)前參數(shù)C、σ訓(xùn)練LSSVM,得到支持向量機(jī)的輸出y'i;
3)按式(3)計(jì)算適應(yīng)值,并將適應(yīng)值排序,保存適應(yīng)值最高的個(gè)體;
4)執(zhí)行變異,按照染色體所含基因的多少?zèng)Q定變異的基因位個(gè)數(shù),本文選擇每個(gè)基因變異1個(gè)基因位的方法;
5)執(zhí)行IS插串、RIS插串和Gene插串;
6)執(zhí)行單點(diǎn)重組、兩點(diǎn)重組和基因重組;
7)若運(yùn)行到預(yù)先設(shè)定的最大代數(shù)或者適應(yīng)度函數(shù)值收斂到設(shè)定精度,則執(zhí)行8),否則執(zhí)行2);
8)選擇出最優(yōu)染色體并保存記錄;
9)對(duì)染色體解碼,構(gòu)建LSSVM模型.
為了驗(yàn)證上述方法的有效性,選用標(biāo)準(zhǔn)測(cè)試函數(shù)進(jìn)行仿真.實(shí)驗(yàn)平臺(tái)配置為2.8 GHz主頻率,1 GB內(nèi)存,采用Matlab 7.0進(jìn)行仿真實(shí)驗(yàn).
1)取一維sinc函數(shù):
式中:φ是均值為0、方差為0.1的高斯噪聲.輸入變量取150個(gè)[-4,4]之間的數(shù)據(jù)構(gòu)成LSSVM的訓(xùn)練樣本,以最小均方誤差為目標(biāo),利用GEP算法對(duì)懲罰系數(shù)C和徑向基核函數(shù)參數(shù)σ進(jìn)行優(yōu)選,其中LSSVM采用ξ=0.15的一次不敏感損失函數(shù).GEP算法中選60組為初始染色體,最大迭代次數(shù)為500.為便于比較,采用同樣大小的初始群體和最大迭代次數(shù)的PSO和GA(交叉概率為0.5,變異概率為0.047)進(jìn)行多次實(shí)驗(yàn).圖1顯示了3種算法的尋優(yōu)過(guò)程對(duì)比結(jié)果,從中可以看出,GEP和PSO的下降速度較快,而GA速度較慢,經(jīng)過(guò)多次實(shí)驗(yàn)發(fā)現(xiàn)GA和PSO尋優(yōu)的成功率低于GEP,并且有時(shí)陷入局部最優(yōu),總的看來(lái),GEP算法的尋優(yōu)能力和收斂速度都比PSO和GA算法好.由圖2可見,使用3種算法各自尋優(yōu)的參數(shù)對(duì)sinc函數(shù)進(jìn)行測(cè)試,發(fā)現(xiàn)GEP算法的擬合效果最好,且偏離實(shí)際值的幅度較小.測(cè)試統(tǒng)計(jì)結(jié)果如表1所示,從中看出新方法的測(cè)試誤差最小.取1 000組數(shù)據(jù)樣本按4∶1的比例隨機(jī)分組,訓(xùn)練樣本數(shù)量為800,測(cè)試樣本為200,其他設(shè)置如同sinc函數(shù)測(cè)試實(shí)驗(yàn),得到的測(cè)試結(jié)果如表2所示.在二維函數(shù)的測(cè)試中,經(jīng)過(guò)多次實(shí)驗(yàn)可以發(fā)現(xiàn),與一維函數(shù)相比,二維函數(shù)的測(cè)試結(jié)果更能體現(xiàn)GEP的優(yōu)越性,且相比于其他2個(gè)算法,基于GEP算法的LSSVM模型的擬合誤差大大降低,進(jìn)一步說(shuō)明了該方法的有效性.
圖1 尋優(yōu)過(guò)程比較Fig.1 Comparison of optimization process
圖2 模型仿真結(jié)果比較Fig.2 Comparison of model simulation results
表1 Sinc函數(shù)測(cè)試結(jié)果比較Table 1 Comparison of sinc function test results
2)取二維Rosenbrock函數(shù):
表2 Rosenbrock函數(shù)測(cè)試結(jié)果比較Table 2 Comparison of Rosenbrock function test results
氧化鋁蒸發(fā)過(guò)程是一類具有非線性、大滯后、多變量等特征的能量交換的復(fù)雜工業(yè)過(guò)程,在蒸發(fā)器內(nèi)加熱蒸汽,釋放潛熱,轉(zhuǎn)移到料液中,使溶劑發(fā)生相變,溶液濃度得以提高.出料濃度是衡量產(chǎn)品質(zhì)量的重要指標(biāo),由于技術(shù)、成本的限制難以實(shí)現(xiàn)在線檢測(cè),目前質(zhì)量檢測(cè)多以人工現(xiàn)場(chǎng)采集和實(shí)驗(yàn)室化驗(yàn)為主,檢測(cè)結(jié)果嚴(yán)重滯后,不利于該過(guò)程的穩(wěn)定控制.出液濃度的影響因素主要包括蒸發(fā)器的真空度、進(jìn)料的流量、溫度和濃度、加熱蒸汽的流量和壓力、蒸發(fā)器的料液位、不凝性氣體和冷凝水的排除等[18].通過(guò)理論分析和生產(chǎn)經(jīng)驗(yàn)選取影響較大的5個(gè)變量:進(jìn)料溫度T1、進(jìn)料流量F1、進(jìn)料濃度Lin、新蒸汽溫度T2、新蒸汽流量F2.以某氧化鋁廠帶閃蒸和強(qiáng)制循環(huán)的七效逆流降膜蒸發(fā)的蒸發(fā)過(guò)程為例,該廠實(shí)際生產(chǎn)1個(gè)月的數(shù)據(jù)作為訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù),建立基于GEP算法的LSSVM的蒸發(fā)過(guò)程出料濃度預(yù)測(cè)模型為
式中:Lout為預(yù)測(cè)模型輸出,即出口料液濃度;GEPLSSVM 為模型標(biāo)示;T1、F1、Lin、T2、F2為已知樣本的輸入.選用經(jīng)過(guò)糾錯(cuò)、剔除和歸一化處理后的400組工業(yè)數(shù)據(jù)中的300組用于建模,100組用于模型驗(yàn)證,選取ξ=0.02的一次不敏感損失函數(shù)和徑向基核函數(shù),通過(guò)GEP算法對(duì)最小二乘支持向量機(jī)建模參數(shù)進(jìn)行優(yōu)化,得到最優(yōu)參數(shù)集 ξ=0.02、C=428.56、σ =0.072.再用得到的最優(yōu)參數(shù)訓(xùn)練 LSSVM,最終的出料濃度預(yù)測(cè)結(jié)果如圖3所示.
圖3 模型泛化比較結(jié)果Fig.3 Comparison of model generalization results
圖4 GEP-LSSVM模型預(yù)測(cè)相對(duì)誤差Fig.4 Relative error of GEP-LSSVM model predict
圖3顯示了 GEP-LSSVM、PSO-LSSVM和 GALSSVM預(yù)測(cè)模型的泛化能力,從圖中可知,GEPLSSVM模型的預(yù)測(cè)效果最好.通過(guò)進(jìn)一步的數(shù)據(jù)分析,GEP-LSSVM模型預(yù)測(cè)結(jié)果中相對(duì)誤差(如圖4所示)小于8%的樣本達(dá)到92%,其最大相對(duì)誤差小于 12%,均方差 MSE(mean square error)為6.082 7 ×10-5,具有較高的精度;另外,該模型相比于PSO-LSSVM的預(yù)測(cè)能力(MSE為8.95 9×10-5)和 GA-LSSVM的預(yù)測(cè)能力(MSE為1.618 5×10-4),有了較大的提高.
最小二乘支持向量機(jī)的參數(shù)選擇是支持向量機(jī)應(yīng)用推廣的一個(gè)重要方面,如何將各種算法應(yīng)用于其中,一直以來(lái)是一個(gè)既有實(shí)際價(jià)值又有理論意義的研究課題.本文將GEP算法用于最小二乘支持向量機(jī)的參數(shù)優(yōu)化,其中變異算子按照進(jìn)化代數(shù)和染色體所含基因數(shù)目動(dòng)態(tài)變化的機(jī)制進(jìn)行變異操作,通過(guò)多個(gè)實(shí)驗(yàn)驗(yàn)證了該方法的有效性.然后將其應(yīng)用于氧化鋁蒸發(fā)過(guò)程出料濃度的預(yù)測(cè)模型的建立,仿真結(jié)果表明了該預(yù)測(cè)模型預(yù)測(cè)精度高,完全滿足實(shí)際工業(yè)生產(chǎn)的需要,同時(shí)也對(duì)其應(yīng)用到其他生產(chǎn)過(guò)程有著一定的指導(dǎo)意義.另外,GEP算法本身的改進(jìn)及其對(duì)支持向量機(jī)核參數(shù)的編碼和解碼方法也有待進(jìn)一步研究.
[1]VAPNIK V N.The nature of statistical learning theory[M].New York,USA:Springer-Verlag,1995.
[2]VAPNIK V,LEVIN E,CUN Y L.Measuring the VC-dimension of a learning machine[J].Neural Computation,1994,6(5):851-876.
[3]SMOLA A J,SCHOLKOPF B.A tutorial on support vector regression[J].Statistic and Computing,2004,14(3):199-222.
[4]SANCHEZ A D.Advanced support vector machines and kernel methods[J].Neurocomputing,2003,55(1):5-20.
[5]SUYKENS J A K,VANDEWALL J.Least squares support vector machine classifiers[J].Neural Processing Letters,1999,9(3):293-300.
[6]PELCKMANS K,SUYKENS J A K,DE MOOR B.Building sparse representations and structure determination on LSSVM substrates[J].Neurocomputing,2005,64:137-159.
[7]鄭小霞,錢鋒.基于PCA和最小二乘支持向量機(jī)的軟測(cè)量建模[J].系統(tǒng)仿真學(xué)報(bào),2006,18(3):739-741.
ZHENG Xiaoxia,QIAN Feng.Soft sensor modeling based on PCA and support vector machines[J].Journal of System Simulation,2006,18(3):739-741.
[8]趙吉文,劉永斌,孔凡讓,等.核參數(shù)遺傳選優(yōu)的SVM在直線電機(jī)建模中的應(yīng)用[J].系統(tǒng)仿真學(xué)報(bào),2006,18(12):3547-3549.
ZHAO Jiwen,LIU Yongbin,KONG Fanrang,et al.Application of SVM with genetic algorithms optimizing kernel parameters in linear motor model[J].Journal of System Simulation,2006,18(12):3547-3549.
[9]劉瑞蘭,牟盛靜,蘇宏業(yè),等.基于支持向量機(jī)和粒子群算法的軟測(cè)量建模[J].控制理論與應(yīng)用,2006,23(6):895-899,906.
LIU Ruilan,MOU Shengjing,SU Hongye,et al.Modeling soft sensor based on support vector machine and particle swarm optimization algorithms[J].Control Theory and Applications,2006,23(6):895-899,906.
[10]THADANI K,JAYARAMAN V K,SUNDARARAJAN V.Evolutionary selection of kernels in support vector machines[C]//International Conference on Advanced Computing and Communications.Mangalore,India,2006:19-24.
[11]FERREIRA C.Gene expression programming in problem solving[C/OL].[2010-12-10].http://www.gene-expression-programming.com/webpapers/GEPtutorial.pdf.
[12]FERREIRA C.Gene expression programming:a new adaptive algorithm for solving problems[J].Complex Systems,2001,13(2):87-129.
[13]MITCHELL M.An introduction to genetic algorithms[M].Cambridge,UK:The MIT Press,1996:143-164.
[14]錢曉山,陽(yáng)春華.改進(jìn)基因表達(dá)式編程在股票中的研究與應(yīng)用[J].智能系統(tǒng)學(xué)報(bào),2010,5(4):303-307.
QIAN Xiaoshan,YANG Chunhua.Improved gene expression programming algorithm-tested by predicting stock indexes[J].CAAI Transactions on Intelligent Systems,2010,5(4):303-307.
[15]張春曉,張濤.基于最小二乘支持向量機(jī)和粒子群算法的兩相流含油率軟測(cè)量方法[J].中國(guó)電機(jī)工程學(xué)報(bào),2010,30(2):86-91.
ZHANG Chunxiao,ZHANG Tao.Soft measurement method for oil holdup of two phase flow based on least squares support vector machine and particle swarm optimization[J].Proceedings of the CSEE,2010,30(2):86-91.
[16]RIVERO D,DORADO J,RABUNAL J,et al.Using genetic programming for artificial neural network development and simplification[C]//Proceedings of the 5th WSEAS International Conference on Computational Intelligence,Man-Machine Systems and Cybernetics.Venice,Italy,2006:65-71.
[17]XU Kaikuo,LIU Yintian,RONG Tang,et al.A novel method for real parameter optimization based on gene expression programming[J]. Applied Soft Computing,2009,9(2):725-737.
[18]徐文熙,穆文俊.化工原理(上)[M].北京:中國(guó)石化出版社,1992.