李清亮,蔡凱旋,耿慶田,劉光潔,孫明玉,張 崳,于繁華
(長春師范大學 計算機科學技術(shù)學院,吉林 長春 130032)
土壤溫度作為大氣和陸地表面水熱循環(huán)共同作用的結(jié)果,是地球科學多個領(lǐng)域的重要變量,如氣象學[1-2],農(nóng)業(yè)[3-4]和環(huán)境科學[5]等。目前土壤溫度的測量過程過于復雜[6-7],無法在大部分區(qū)域提供監(jiān)測點。因此,準確地土壤溫度預測具有顯著應用價值。然而土壤溫度的時空變化受多種環(huán)境因素影響[8],給土壤溫度的準確預測帶來巨大挑戰(zhàn),同時也使其成為具有深遠意義的科學問題。目前基于機器學習的數(shù)據(jù)驅(qū)動經(jīng)驗模型是土壤溫度預測一個重要的研究領(lǐng)域[2]。
近年來,隨著機器學習技術(shù)迅速發(fā)展,已在多種領(lǐng)域成功應用[9-11]。其中基于機器學習的數(shù)據(jù)驅(qū)動模型在土壤溫度預測中也取得了一定成果,最常見的有:人工智能神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network, ANN)[12-14]、支持向量回歸(Support Vector Regression, SVR)[15-16]、極限學習機(Extreme Learning Machine, ELM)[1-2]。ANN由于可以模擬人腦組織結(jié)構(gòu)進行推理的特點,已被廣泛應用于多種預測領(lǐng)域。在土壤溫度預測中,Mihalakakou等人[12]基于ANN模型取得了較好的預測性能。Kisi等人[13]指出土壤淺層預測時徑向基神經(jīng)網(wǎng)絡(luò)(Radial Basis Neural Network, RBNN)相比廣義回歸神經(jīng)網(wǎng)絡(luò)(Generalized Regression Neural Network, GRNN)、多層感知機(Multilayer Perceptron, MLP)和線性回歸(Linear Regression, LR)預測模型展示了更優(yōu)的預測性能。支持向量回歸(SVR)預測模型是由支持向量分類器(Support Vector Machines, SVM)發(fā)展而來,在土壤溫度預測中發(fā)揮了重要作用。Delbari等人[16]在伊朗地區(qū)的測試中,證明了SVR預測模型可以成功應用在土壤溫度的預測。Feng等人[1]在中國陜西省的測試中,通過比較GRNN、反向傳播神經(jīng)網(wǎng)絡(luò)(Back Propagation Neural Network, BPNN)、隨機森林(Random Forests, RF) 和ELM的預測模型,發(fā)現(xiàn)ELM預測模型的預測能力最高。
然而,在前人研究主要基于ANN,SVR和ELM等方法實現(xiàn)土壤溫度預測。缺少其他機器學習算法如極限梯度提升(XGBoost)和長短期記憶網(wǎng)絡(luò)(Long Short-Term Memory, LSTM)等研究。XGBoost是基于梯度下降方法,將多個弱分類器融合成一種強分類器,這種加強學習能力的模式,使XGBoost在多種領(lǐng)域的預測研究得到廣泛應用[17-19]。同時,具有記憶細胞的LSTM模型既可以學習其短期行為,也可以學習其長期行為。這種模式使LSTM在模擬自然系統(tǒng)時非常有用[20-22]。同時土壤溫度的影響因素很多,如太陽輻射、大氣溫度等,同時基于機器學習針對影響因素重要性的量化評價并結(jié)合預測模型的方式并未展開研究。事實上預測模型中不同影響因素的組合對預測能力有很大影響。
本文將在中國長白山和海北區(qū)域進行測試,首先基于XGBoost計算土壤溫度預測中每個影響因素的重要性,然后將影響因素依據(jù)重要性大小依次進行組合并作為預測模型的輸入,其中本文嘗試基于LSTM作為預測模型。最后根據(jù)不同組合的預測性能選擇最優(yōu)的影響因素。
本文在中國東北部吉林省長白山地區(qū)(41°41′N,127°42′E至42°51′N,128°16′E)和中國西北部青海省海北地區(qū)(31°36′N,86°35′E至39°19′N,103°104′E)進行了測試。 在FLUXNET(https://FLUXNET.fluxdata.org/)上下載了半小時尺度的三年數(shù)據(jù)(2003年1月1日至2005年12月31日),其影響因素分別為大氣溫度、相對濕度、太陽輻射、蒸汽壓、風速、降水量和風速,其中土壤溫度是在土壤深度為5 cm時觀測得到。長白山和海北都是我國重要的生態(tài)自然保護區(qū)。長白山地區(qū)以是種植業(yè)為主的農(nóng)業(yè)地域類型,發(fā)展商品谷物農(nóng)業(yè),主要種植大豆、玉米、冬小麥及谷子(小米)等。海北屬高原大陸性氣候,太陽輻射強度大,日照時間長,日夜溫差大,有利于油菜、青稞、馬鈴薯及蔬菜等種植業(yè)的發(fā)展。并且土壤溫度對這些資源的生長有很大影響,因此,土壤溫度預測對這些生態(tài)資源的保護和管理具有重要意義。
本研究主要考慮兩個問題:(1)對于土壤溫度預測時,不同影響因素起到不同作用,這些影響因素或其組合與土壤溫度間的關(guān)系如何?(2)土壤溫度預測是一種時間序列預測問題,哪一種機器學習算法最符合土壤溫度時間序列的機制?為了解決上述問題,本文提出XGBoost-LSTM融合模型, 如圖1所示。對于多個氣象數(shù)據(jù)來說,不同因素與土壤溫度之間的相關(guān)性不同。首先基于XGBoost對各個影響因素進行排序。對排序后的影響因素,本文按其重要性依次進行組合作為LSTM模型的輸入,找到效果最佳的輸入組合,進而基于LSTM模型挖掘土壤溫度與其影響因素間的關(guān)聯(lián),并實現(xiàn)預測。
圖1 XGBoost-LSTM模型的土壤溫度預測流程圖Fig.1 Framework of XGBoost-LSTM
XGBoost是一種新的梯度提升機器Boosting算法。Boosting分類器作為集成學習模型,具有將弱分類器轉(zhuǎn)化為強分類器的能力。其核心是將多個準確率較低的決策樹模型組合成一個準確率較高的模型,通過不斷迭代生成決策樹,擬合殘差優(yōu)化目標函數(shù),從而優(yōu)化預測效果。當XGBoost 模型完成訓練,本文針對影響因素在該模型的貢獻程度計算其重要性。具體方法如下:先計算特征j在單棵樹中的重要程度,即找到與特征j有關(guān)的結(jié)點,計算該結(jié)點分裂前后的平方損失值,損失值越大說明該特征越重要。單個樹中特征j的計算方法如下:
(1)
(2)
通過式(1)和式(2)量化每個特征的重要程度后,即可實現(xiàn)特征排序。
LSTM是一種重要的遞歸神經(jīng)網(wǎng)絡(luò)模型,具有記憶細胞的LSTM既可以學習土壤溫度與其環(huán)境因子之間的短期行為,也可以學習其長期行為。
圖2說明了LSTM的結(jié)構(gòu),其工作流程如下式所述:
圖2 LSTM流程圖Fig.2 Structure of LSTM
i(t)=σ(Wihh(t-1)+
Wixx(t)+Wicc(t-1)+bi),
(3)
f(t)=σ(Wfhh(t-1)+
Wfxx(t)+Wfcc(t-1)+bf),
(4)
c(t)=f(t)?c(t-1)+
i(t)?tanh(Wchh(t-1)+Wcxx(t)+bc,
(5)
o(t)=σ(Wohh(t-1)+
Woxx(t)+Wocc(t)+bo),
(6)
h(t)=o(t)?tanh(c(t)),
(7)
(8)
本文在Intel Core(TM)i7-5820K,3.30 GHz CPU和64 Gb內(nèi)存的服務器上進行實驗。在Pycharm 2018.2.8,tensorflow作為工具實現(xiàn)所有預測模型。整個數(shù)據(jù)集的前四分之三部分(長白山和海北區(qū)域,2003年1月1日 00:00至2005年12月31日23:30階段的數(shù)據(jù),共計52 608個)用于訓練(2003年1月1日00:00至2005年4月1日12:30階段的數(shù)據(jù),共計39 456個),其余四分之一部分用于測試(2005年4月1日12:30至2005年12月31日23:30階段的數(shù)據(jù),總共13 152個)。為了驗證本文方法的有效性,通過與五種數(shù)據(jù)驅(qū)動預測模型(LR,SVR,XGBoost,BPNN,ELM)作對比,并采用不同的統(tǒng)計評價標準評估模型性能,如均方根誤差(RMSE)、平均絕對誤差(MAE)、納什效率系數(shù)(NS)、LMI系數(shù)和威爾莫特一致性指數(shù)(WI),定義如下:
(9)
(10)
(11)
(12)
(13)
本章節(jié)主要對比了LR, SVR, XGBoost, BPNN, ELM 5種預測模型,并基于scikit-learn工具實現(xiàn)所有方法。XGBoost預測模型模型中,通過scikit-learn工具中提供的selection.GridSearchCV函數(shù)調(diào)整參數(shù),并優(yōu)化XGBoost模型。其以CART回歸樹作為XGBoost模型模型的二叉樹進行構(gòu)建、學習率為0.005,葉子上的最小樣本數(shù)為1,樹的個數(shù)為800,最大深度為5。BPNN預測模型模型中,定義三層結(jié)構(gòu)(輸入層、隱藏層、輸出層),以平方誤差作為損失函數(shù),采用Adam進行優(yōu)化,批處理數(shù)據(jù)量為200,迭代次數(shù)為300,學習率為1×10-5。ELM預測模型模型中,利用hpelm工具提供的elm函數(shù)對ELM進行建模,初始化三層神經(jīng)元網(wǎng)絡(luò)(輸入層、隱藏層、輸出層),定義隱藏層的sigmoid激活函數(shù),設(shè)置節(jié)點數(shù)為128。通過實驗對比,發(fā)現(xiàn)上述設(shè)置預測結(jié)果最好。
本文方法中,影響預測性能的主要超參數(shù)有:LSTM神經(jīng)單元個數(shù)、批量數(shù)據(jù)大小、迭代次數(shù)、學習率、影響因素的選取。因此,下面本文將通過預測性能定義最優(yōu)的超參數(shù)。本文方法中,影響預測性能的主要超參數(shù)有:LSTM神經(jīng)單元個數(shù)、批量數(shù)據(jù)大小、迭代次數(shù)、學習率、影響因素的選取。
在測試LSTM神經(jīng)單元個數(shù)時,首先定義迭代次數(shù)為200次,批量數(shù)據(jù)大小為200次,學習率為1×10-4,選取大氣溫度、相對濕度和蒸氣壓。在(30,50,100和150)中分別測試LSTM神經(jīng)單元個數(shù);同時選擇最優(yōu)的LSTM神經(jīng)單元個數(shù)后,再從(50,100,150,250,300,350,400,450,500)中選擇批量數(shù)據(jù)大小;其次從(100,200,300,400,500,600,800,1 000,1 100,1 200)中選擇迭代次數(shù);再從(1×10-3, 1×10-4, 1×10-5)中選擇學習率。最后等上述參數(shù)均選取最優(yōu)之后,本文LSTM預測模型的最優(yōu)結(jié)構(gòu)隨之確定。進而針對影響因素的選取進行測試,首先基于XGBoost算法計算所有影響因素(大氣溫度、相對濕度、太陽輻射、蒸汽壓、風速、降水量和風速)的特征重要性,并依據(jù)重要程度從高到低進行組合,依次輸入LSTM預測模型中,并測試哪些組合對土壤溫度的預測更有幫助。其中LSTM預測模型輸入特征中的輸入維度(input_size)為影響因素的個數(shù);歷史數(shù)據(jù)序列的長度(time_step)定義為7。本文首先以長白山區(qū)域進行實驗,不同LSTM神經(jīng)單元個數(shù)(LSTM_size)、批量數(shù)據(jù)大小(batch_size)、迭代次數(shù)(train_epoch)和學習率(e)的預測結(jié)果分別如表1~表5所示(表中加粗數(shù)值為最優(yōu)結(jié)果)。從表1可知,參數(shù)取值不同,預測模型的預測能力也不一樣。首先LSTM神經(jīng)單元個數(shù)過多,預測模型將過擬合,降低預測模型學習氣象數(shù)據(jù)的泛化能力,同時個數(shù)太少,預測模型將遺失重要信息并無法有效挖掘土壤溫度與其影響因素間的關(guān)聯(lián),因此LSTM_size=50時,預測性能最好(RMSE=2.413,MAE=1.893,NS=0.921,WI=0.980,LMI=0.740);從表2可知,若迭代次數(shù)太小,預測模型無法收斂于最優(yōu)值,而迭代次數(shù)太大,將明顯出現(xiàn)過擬合現(xiàn)象,預測性能將不會提升, 因此train_epoch=1 100時,預測性能最好(RMSE=2.234,MAE=1.756,NS=0.932,WI=0.983,LMI=0.759);同理,從表3可知批量數(shù)據(jù)主要控制著訓練過程一次處理樣本的信息,過小將導致預測模型難于收斂,過大將導致預測模型性能無法達到最優(yōu), 因此batch_size=400時,預測性能最好(RMSE=2.392,MAE=1.875,NS=0.922,WI=0.981,LMI=0.743);最后從表4可知學習率是控制訓練過程中每一次逼近最優(yōu)值的步長,過小容易選入局部最優(yōu),而過大將無法逼近最優(yōu)值并在最優(yōu)值附近不斷徘徊。因此當LSTM_size=50,batch_size=400,train_epoch=1 100,e=1×10-4時性能最佳,進而通過確定上述參數(shù),本文得到了最優(yōu)的LSTM預測模型結(jié)構(gòu)。
表1 不同LSTM神經(jīng)單元個數(shù)在長白山氣象站的預測結(jié)果
表2 不同批量數(shù)據(jù)大小在長白山氣象站的預測結(jié)果
表3 不同迭代次數(shù)在長白山氣象站的預測結(jié)果
表4 不同學習率在長白山氣象站的預測結(jié)果
得到最優(yōu)LSTM預測模型結(jié)構(gòu)后,然后分析影響因素的組合對預測能力的影響,XGBoost-LSTM預測模型的整體的數(shù)據(jù)處理流程如圖3所示。首先根據(jù)2.3節(jié)XGBoost部分計算所有影響因素的重要性,如圖4所示。同時在XGBoost模型計算影響因素重要性的過程中,分別對XGBoost模型訓練中學習率、樹的個數(shù)為800和樹的最大深度所對應的平方損失減少值進行分析,以選取最優(yōu)參數(shù),對比結(jié)果如表5所示。 當學習率為0.005,樹的個數(shù)為800,最大深度為5時,平方損失減少值最優(yōu)(-0.078 481)。
表5 不同參數(shù)的XGBoost模型性能對比
圖3 XGBoost-LSTM整體流程Fig.3 Framework of XGBoost-LSTM model
圖4 影響因素重要性得分Fig.4 Weight of the meteorological inputs
最終通過實驗可知,影響因素重要性由高低排序如下:大氣溫度、蒸汽壓、太陽輻射、相對濕度、風速、大氣壓和降水量。然后根據(jù)影響因素重要性,通過逐步組合生成7種預測模型輸入:大氣溫度(輸入1),大氣溫度+太陽輻射(輸入2),大氣溫度+太陽輻射+蒸汽壓(輸入3),大氣溫度+太陽輻射+蒸汽壓+相對濕度(輸入4),大氣溫度+太陽輻射+蒸汽壓+相對濕度+風速(輸入5),大氣溫度+太陽輻射+蒸汽壓+相對濕度+風速+大氣壓(輸入6),大氣溫度+太陽輻射+蒸汽壓+相對濕度+風速+大氣壓+降水量(輸入7)。
最后基于LSTM預測模型對對上述7組合進行測試,以找到最優(yōu)的影響因素組合,如表6所示。根據(jù)實驗可知,以大氣溫度、太陽輻射和蒸汽壓3種組合作為輸入,可以得到更好的預測結(jié)果。
表6 不同輸入組合的預測結(jié)果
圖5展示了在長白山區(qū)域,本文方法與目前常用的5種數(shù)據(jù)驅(qū)動模型的散點圖對比。從圖5可知,本文方法得到的土壤溫度預測值(y)和觀測值(x)之間的線性關(guān)系(y=0.980 6x+0.210 7)更接近理想線(y=x),同時相比其它數(shù)據(jù)驅(qū)動模型也得到了最高的R2(R2=0.934 2)。需要注意的是LR模型雖然具有最高R2,但其線性關(guān)系相較于其他數(shù)據(jù)驅(qū)動模型具有較大差距。因此表明本文方法在長白山區(qū)域預測效果最好。圖6展示了海北區(qū)域散點圖對比結(jié)果。其中,ELM預測模型預測結(jié)果相比本文模型更接近于線性關(guān)系,但由于其在長白山的表現(xiàn)一般,表現(xiàn)出其不穩(wěn)定性。綜合兩區(qū)域散點圖的線性關(guān)系可知,本文方法效果最佳。
圖5 長白山區(qū)域溫度預測值與真實值的數(shù)據(jù)驅(qū)動散點圖Fig.5 Scatterplots of the estimated and observed values of temperature(℃) using the data-driven models for Changbai Mountain metrological station
圖6 海北區(qū)域溫度預測值與真實值的數(shù)據(jù)驅(qū)動散點圖Fig.6 Scatterplots of the estimated and observed values of temperature (°C) using the data-driven models for Haibei Mountain metrological station
表7和表8指出了不同數(shù)據(jù)驅(qū)動模型在長白山和海北區(qū)域性能數(shù)據(jù)統(tǒng)計對比。可知,本文方法在長白山站點得到的RMSE,MAE,RAME都比其他數(shù)據(jù)驅(qū)動模型的值小,同時WI,LMI的值最高。在海北站區(qū)域中,ELM預測模型的RMSE值優(yōu)于本文方法,但NS,LMI出現(xiàn)異常結(jié)果。其原因可能是ELM是一種隨機選擇隱層權(quán)值的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),這種隨機性使預測模型訓練時產(chǎn)生非最優(yōu)解,從而影響預測結(jié)構(gòu)[1]。綜上所述,本文方法在不同站點的土壤溫度預測中都優(yōu)于其他數(shù)據(jù)驅(qū)動模型。
表7 長白山地區(qū)不同數(shù)據(jù)驅(qū)動模型的性能對
表8 海北地區(qū)不同數(shù)據(jù)驅(qū)動模型的性能對
然而,在前人研究主要基于ANN、SVR和ELM等方法實現(xiàn)土壤溫度預測。缺少其它機器學習算法如極限梯度提升(XGBoost)和長短期記憶網(wǎng)絡(luò)(LSTM)等研究。XGBoost是基于梯度下降方法,融合多個弱分類器成為一種強分類器,這種加強學習能力的模式,使XGBoost在多種領(lǐng)域的預測研究得到廣泛應用。同時,具有記憶細胞的LSTM模型既可以學習其短期行為,也可以學習其長期行為。這種模式使LSTM在模擬自然系統(tǒng)時非常有用。同時土壤溫度的影響因素很多,如太陽輻射、大氣溫度等。但基于機器學習針對影響因素重要性的量化評價,并結(jié)合預測模型的方式并未展開研究。事實上,預測模型中不同影響因素的組合對預測能力有很大影響。
本文將在中國長白山和海北區(qū)域進行測試,首先基于XGBoost計算土壤溫度預測中每個影響因素的重要性,然后將影響因素依據(jù)重要性大小依次進行組合并作為預測模型的輸入,其中本文將嘗試基于LSTM作為預測模型。最后根據(jù)不同組合的預測性能選擇最優(yōu)的影響因素。通過實驗結(jié)果表明本文提出的預測模型與目前土壤溫度中常用的數(shù)據(jù)驅(qū)動模型,在預測結(jié)果散點圖和準確度統(tǒng)計結(jié)果的對比中,均表現(xiàn)出更高的精確度。
然而由于FLUXNE采集數(shù)據(jù)限制,本文主要針對白山和海北區(qū)域中5 cm土壤深度進行實驗。不同的土壤深度和更多的觀測站點對預測模型性能的影響需要進一步研究。同時在實驗過程中發(fā)現(xiàn),不同損失函數(shù)的使用導致預測結(jié)果不同,因此針對損失函數(shù)改進對預測能力的影響是必要的。