王 珊,燕 飛
(北京林業(yè)大學(xué),北京100083)
隨著計(jì)算機(jī)技術(shù)的發(fā)展,虛擬樹木模型技術(shù)已經(jīng)比較成熟,在一定程度上取代了實(shí)際樹木在實(shí)驗(yàn)中的應(yīng)用。樹木模型易于操作,可以在短時(shí)間內(nèi)進(jìn)行多種實(shí)驗(yàn),在以后的研究中還會(huì)發(fā)揮更重要的作用[1]。樹木模型的開發(fā)和應(yīng)用可以促進(jìn)對(duì)樹木生育規(guī)律由定性描述向定量分析的轉(zhuǎn)化過程,為樹木生產(chǎn)決策系統(tǒng)的開發(fā)與應(yīng)用奠定了很好的基礎(chǔ)。筆者對(duì)生長因子的生長過程建模,生長因子包括樹木在生長過程中的高低粗細(xì)、光合作用、養(yǎng)分分配、葉片生長、干物質(zhì)積累等。由于樹木生長的年限較長,且短時(shí)間內(nèi)生長因子的生長量變化不明顯,很難實(shí)時(shí)記錄其整個(gè)生長過程。研究中通常以年為單位,定時(shí)測量樹木的各生長量,再對(duì)數(shù)據(jù)進(jìn)行數(shù)理分析,建立預(yù)測模型,以此來模擬樹木生命周期的整個(gè)生長過程。以樹高為例,對(duì)樹木生長過程中樹高的變化進(jìn)行建模。此建模方法可以推廣到樹木其它生長因子的建模應(yīng)用中。
在樹木的整個(gè)生長過程中,各生長因子總生長量隨年齡的生長變化規(guī)律表現(xiàn)為非線性關(guān)系,并呈現(xiàn)“S”型曲線。通常將這種關(guān)系用數(shù)學(xué)方式表達(dá)出來,便是生長方程[1]。常見的生長方程模型有Logistic模型、Gompertz模型、Richards模型以及Weibull模型等。具體到一組實(shí)測的調(diào)查因子生長量數(shù)據(jù),選擇合適的模型相當(dāng)重要。各種模型都具有一些共同的性質(zhì),比如單調(diào)性、漸近性和拐點(diǎn)性質(zhì)。但是由于各種模型表達(dá)式和參數(shù)的差異,模型曲線在具體表現(xiàn)形態(tài)上又有各自不同的特征。因此針對(duì)不同的生長過程,選擇合適的模型才能充分反映研究對(duì)象的真實(shí)狀況。
支持向量回歸機(jī)(SVR)就是通過用核函數(shù)定義的非線性變換將輸入空間變換到高維空間,并在該高維空間求取回歸函數(shù)的學(xué)習(xí)過程[3-4]。
給定訓(xùn)練集,其中 xi∈ x=Rn,yi∈y=R,i=1,…,m。ε-不敏感損失函數(shù)定義為:
其中ε為不敏感系數(shù),并且ε>0。
選擇適當(dāng)?shù)摩牛?支持向量回歸機(jī)的原始優(yōu)化問題為:
其中C為事先選定的懲罰參數(shù)。
在支持向量機(jī)中,需要將訓(xùn)練集從輸入空間映射到另外一個(gè)空間。選擇適當(dāng)?shù)暮撕瘮?shù),且滿足
建立Lagrange方程如下:
得到對(duì)偶優(yōu)化問題
另外,制備對(duì)照藥材標(biāo)準(zhǔn)品時(shí),因工作程序的原因,粉碎后的樣品距離分裝有一段時(shí)間。因此,要嚴(yán)格控制粉碎后對(duì)照藥材貯藏環(huán)境的濕度,確保粉碎后的樣品能保持在一個(gè)較低的濕度范圍,減少環(huán)境因素對(duì)其水分的影響,易于后續(xù)的分裝工作。
解上述問題可得最優(yōu)解
構(gòu)造決策函數(shù)為:
根據(jù)以上介紹,對(duì)樹木生長因子的生長過采用支持向量回歸的方法,建立優(yōu)化問題;用遺傳算法的方法對(duì)支持向量回歸模型的參數(shù)進(jìn)行尋優(yōu),找到最佳參數(shù);將最佳參數(shù)代入優(yōu)化問題,并求解,便得到樹木生長因子的模型。具體步驟如下:
由于樹木生長周期長且變化慢,生長數(shù)據(jù)的采集存在一定的困難,論文中選取樹高作為研究數(shù)據(jù)。經(jīng)查閱資料得某樹種1~140年平均樹高的變化[1]。將其進(jìn)行描點(diǎn)得如下曲線:
圖1 樹高生長曲線
圖中橫坐標(biāo)為年份,單位為a,縱坐標(biāo)為高度,單位是m。對(duì)此140組數(shù)據(jù)組成的訓(xùn)練集進(jìn)行分析,用支持向量回歸的方法進(jìn)行處理,建立其樹高生長的數(shù)學(xué)模型。
常用的4種核函數(shù)分別是線性核、多項(xiàng)式核、徑向基(RBF)核。通常低維、高維、小樣本、大樣本等情況的數(shù)據(jù)集核函數(shù)首選RBF核函數(shù)。RBF核將樣本數(shù)據(jù)非線性地映射到高維空間,并具有較寬的收斂域。其數(shù)學(xué)表達(dá)式為:
用支持向量機(jī)對(duì)數(shù)據(jù)集進(jìn)行回歸,需要對(duì)其參數(shù)(懲罰參數(shù) 、不敏感系數(shù) 、核參數(shù))進(jìn)行進(jìn)行初始設(shè)置。懲罰參數(shù)的取值過小,易出現(xiàn)欠學(xué)習(xí)現(xiàn)象,取值過大,又會(huì)出現(xiàn)過學(xué)習(xí)現(xiàn)象。不敏感系數(shù)取值較小時(shí),預(yù)報(bào)精度較高,但支持向量的數(shù)目較多;取的過大,支持向量數(shù)目急劇減少,但會(huì)出現(xiàn)欠學(xué)習(xí)現(xiàn)象。核參數(shù)的取值過小時(shí),易出現(xiàn)過學(xué)習(xí)現(xiàn)象,而的值過大,又會(huì)出現(xiàn)欠學(xué)習(xí)現(xiàn)象。因此,合理選擇設(shè)計(jì)參數(shù)的值,對(duì)于保證支持向量機(jī)的性能至關(guān)重要[5]。
最常用的方法是網(wǎng)格搜索法。依次將3個(gè)參數(shù)在設(shè)定的范圍內(nèi)以一定的步長進(jìn)行劃分,假設(shè)分別劃分為M、N、L個(gè),對(duì)它們的所有組合分別訓(xùn)練不同的支持向量機(jī),估計(jì)其精度,最終選出學(xué)習(xí)精度最高的一組作為支持向量回歸的參數(shù)。這種方法的缺點(diǎn)就是計(jì)算量大,尤其是訓(xùn)練大樣本數(shù)據(jù)時(shí)搜索工作量太大,費(fèi)時(shí)較多。
遺傳算法具有很好的全局搜索能力,為了解決支持向量機(jī)參數(shù)選擇的困難,論文中選用遺傳算法,將支持向量機(jī)的三個(gè)參數(shù)作為遺傳算法的個(gè)體,經(jīng)過繁殖、交叉、變異進(jìn)行搜索,找到最佳參數(shù)[6]。算法的步驟如下:(1)選取適應(yīng)度函數(shù)。將遺傳算法每一代的個(gè)體作為支持向量機(jī)的參數(shù)對(duì)訓(xùn)練集進(jìn)行訓(xùn)練并預(yù)測。對(duì)預(yù)測結(jié)果與原數(shù)據(jù)進(jìn)行比較,均方誤差為:
其中f(xi)為訓(xùn)練集的實(shí)際值,yi為預(yù)測值,m為訓(xùn)練集樣本個(gè)數(shù)。將此均方誤差作為適應(yīng)度函數(shù),MSE越小說明個(gè)體的適應(yīng)度越高,在遺傳過程中被保留的幾率更大。(2)創(chuàng)建初始種群。采用二進(jìn)編碼。變量數(shù)目為3,種群中的個(gè)體數(shù)目為100,最大遺傳代數(shù)為100。選定三個(gè)參數(shù)的取值范圍分別為:C∈[0,600],ε∈[0,4],y∈[0,0.02]。在此范圍之內(nèi)隨機(jī)建立個(gè)體數(shù)目為100的初始種群。(3)根據(jù)適應(yīng)度函數(shù)計(jì)算每個(gè)個(gè)體的適應(yīng)度值。(4)繁殖。設(shè)置父代與子代的代溝為0.9,交叉概率選為0.7,變異概率選為0.001。對(duì)種群依次進(jìn)行選擇、交叉、變異三個(gè)遺傳算法的基本操作后,生成新的種群。(5)對(duì)新的種群進(jìn)行搜索。重復(fù)第(3)、(4)步,計(jì)算新種群的個(gè)體適應(yīng)度,繁殖,直到遺傳代數(shù)等于最大遺傳代數(shù)100或者均方誤差小于設(shè)定值并結(jié)束計(jì)算。此時(shí)的結(jié)果即為最優(yōu)解。否則返回第(3)步。
將上述方法取得的最優(yōu)參數(shù)C、ε、γ設(shè)置支持向量回歸機(jī),對(duì)前面提到的訓(xùn)練集數(shù)據(jù)進(jìn)行訓(xùn)練,求解對(duì)偶優(yōu)化問題,根據(jù)決策方程建立樹木高度生長模型。
按照以上所列步驟,依次對(duì)支持向量回歸機(jī)參數(shù)進(jìn)行遺傳算法尋優(yōu),將最優(yōu)參數(shù)代入支持向量機(jī)的最優(yōu)化問題,求解該問題得到樹木高度生長的最佳模型。文中所用算法在MATLAB環(huán)境下實(shí)現(xiàn)。采用遺傳算法工具箱并編寫程序,對(duì)支持向量機(jī)的參數(shù)進(jìn)行遺傳操作,尋找最佳參數(shù)。支持向量機(jī)利用臺(tái)灣林智仁編寫的LIBSVM,在MATLAB環(huán)境下運(yùn)行,對(duì)其參數(shù)進(jìn)行初始化,執(zhí)行對(duì)訓(xùn)練集數(shù)據(jù)的非線性回歸操作[7-8],得到生長模型決策函數(shù),最后對(duì)預(yù)測數(shù)據(jù)集進(jìn)行預(yù)測。仿真結(jié)果如下:(1)采用遺傳算法對(duì)三個(gè)參數(shù)進(jìn)行搜索尋優(yōu),當(dāng)遺傳代數(shù)為100時(shí)結(jié)束循環(huán),采用最后的結(jié)果為最優(yōu)參數(shù),如下:C=511.627 522 46,ε=0.000 035 18,γ=1.402 523 79 。(2)首先選取訓(xùn)練集中奇數(shù)年份的數(shù)據(jù)作為訓(xùn)練數(shù)據(jù)。將上述三個(gè)參數(shù)代入支持向量回歸機(jī)中,對(duì)選取的訓(xùn)練集數(shù)據(jù)進(jìn)行訓(xùn)練。得:
并得到70個(gè)支持向量,由此便可得出最終的決策函數(shù)。
利用此數(shù)學(xué)模型對(duì)訓(xùn)練集中偶數(shù)年份的訓(xùn)練數(shù)據(jù)進(jìn)行預(yù)測,得到預(yù)測結(jié)果均方誤差和相關(guān)系數(shù)平方,如表1所示。
表1 預(yù)測結(jié)果與原始數(shù)據(jù)比較
表中列舉采用支持向量回歸和三種生長方程模型回歸四種不同方法對(duì)訓(xùn)練集數(shù)據(jù)進(jìn)行回歸預(yù)測的結(jié)果比較??梢钥闯霾捎弥С窒蛄繖C(jī)建立模型的預(yù)測結(jié)果誤差非常小,幾乎接近于零,預(yù)測結(jié)果與原始數(shù)據(jù)的相關(guān)系數(shù)平方約等于1,也說明預(yù)測結(jié)果與原始數(shù)據(jù)的相似程度非常高。而采用三種不同生長方程對(duì)生長的非線性過程進(jìn)行擬合,其結(jié)果各不相同,并且均方誤差相對(duì)于支持向量機(jī)來說大得多,相關(guān)系數(shù)平方與支持向量機(jī)相比也相差很大。通過對(duì)比發(fā)現(xiàn),用支持向量機(jī)來建立樹木生長模型是精確的。
針對(duì)樹木生長過程這一非線性過程,采用支持向量回歸對(duì)其高度生長過程建模,同時(shí)采用遺傳算法對(duì)該支持向量回歸機(jī)的初始參數(shù)進(jìn)行優(yōu)化選擇,最后對(duì)所得生長模型進(jìn)行預(yù)測與檢驗(yàn)。從實(shí)驗(yàn)結(jié)果可以看出,實(shí)驗(yàn)結(jié)果基本準(zhǔn)確地反映了樹木高度的生長動(dòng)態(tài)過程,并可以有效地預(yù)測未知年份的生長情況。利用支持向量回歸方法建立樹木生長的模型是可行并有效的。該生長過程建模方法可以應(yīng)用于樹木生長可視化模型的構(gòu)建、對(duì)樹木生理的研究等其它領(lǐng)域,在后續(xù)的研究中可以將樹木生長過程中的樹干直徑、陽光等因素添加到模型中。
[1] 孟憲宇.測樹學(xué)[M].北京:中國林業(yè)出版社,2006.171-201.
[2] 陳金鳳.支持向量機(jī)回歸算法的研究與應(yīng)用[D].無錫:江南大學(xué),2008.11-15.
[3] 李國正,王 猛.支持向量機(jī)導(dǎo)論[M].北京:電子工業(yè)出版社,2004.98-105.
[4] 鄧乃揚(yáng),田英杰.數(shù)據(jù)挖掘中的新方法—支持向量機(jī)[M].北京:科學(xué)出版社,2004.224-257.
[5] 李良敏,溫廣瑞,王生昌.基于遺傳算法的回歸型支持向量機(jī)參數(shù)選擇法[J].計(jì)算機(jī)工程與應(yīng)用,2008,44(7):23-26.
[6] 王小平,曹立明.遺傳算法 [M].西安:西安交通大學(xué)出版社,2002.
[7] Chih-Chung Chang and Chih-Jen Lin.LIBSVM:a Library for Support Vector Machines [EB/OL].http://www.csie.ntu.edu.tw/~cjlin/papers/libsvm.pdf,2009-05-27.
[8] Chih-Wei Hsu,Chih-Chung Chang,Chih-Jen Lin.A Practical Guide to Support Vector Classification [EB/OL]http://www.csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdf,2009-05-19.