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