唐 旺, 馬尚昌, 李 程
(1.成都信息工程大學(xué) 電子工程學(xué)院,成都 610025; 2.成都理工大學(xué) 地球科學(xué)學(xué)院,成都 610059)
近幾十年隨著工業(yè)的發(fā)展,由于自然釋放或人類活動排放,導(dǎo)致全球氣候以變暖為特征[1]。在全球變暖的大背景下,人們關(guān)注氣溫變化的同時,也在關(guān)注地溫的變化[2]。地溫即土壤溫度,能直接影響土壤微生物的活動和作物的生長發(fā)育[3],它對植物種子的萌發(fā)、生長發(fā)育、根系活動和產(chǎn)量等有極大的影響[4]。全球地表平均溫度在過去100年中增加了0.78℃。同時,在近50年里,中國的年平均地表溫度升高了1.1℃,增溫速率為0.022℃/a[5]。R.K.George[6]指出,對于土壤溫度、氣溫、風速、相對濕度、降雨量等的預(yù)測對于農(nóng)業(yè)是有用的,所有這些氣象參數(shù)都與農(nóng)業(yè)生產(chǎn)高度相關(guān);除了對農(nóng)業(yè)領(lǐng)域的影響以外,下墊面能量交換過程對大氣環(huán)流、天氣變化、人類生存環(huán)境和可持續(xù)發(fā)展同樣具有重要影響[7];劉均榮等[8]通過在高溫環(huán)境下對不同類型巖石的實驗研究,分析了巖石滲透率在高溫作用下發(fā)生變化的機理;盆地現(xiàn)今地溫場特征與油氣田分布具有良好的對應(yīng)關(guān)系,可為今后油氣勘探提供地熱學(xué)依據(jù)[9];地熱變異是沉積盆地形成和演化的動力學(xué)原因,也是沉積盆地中地球化學(xué)動力學(xué)過程和物理化學(xué)過程的重要因素:因此,地溫場的參數(shù)對盆地動態(tài)模擬和油氣地質(zhì)研究尤為重要[10]。綜上,對地溫的研究存在重要的意義,即提前預(yù)知未來的地溫高低和變化趨勢,能給農(nóng)業(yè)、大氣科學(xué)、地質(zhì)學(xué)等領(lǐng)域的研究提供幫助。
全國平均地溫的年代際變化大致經(jīng)歷了3個階段,即地溫下降階段、相對氣候冷期和20世紀90年代后期的升溫階段[11]。Tang等人[12]利用線性回歸和BP神經(jīng)網(wǎng)絡(luò)對成都市地溫進行預(yù)測,發(fā)現(xiàn)BP神經(jīng)網(wǎng)絡(luò)預(yù)測效果優(yōu)于線性回歸,且模型對冬季預(yù)測效果較差,春夏秋3個季節(jié)預(yù)測效果較好;楊孟達[13]改進PSO-LSTM神經(jīng)網(wǎng)絡(luò)對氣溫進行預(yù)測,相比于BP、RNN和LSTM模型,此方法具有更高的預(yù)測精度;楊耘等人[14]利用BP-LSTM對新疆天山山脈中段瑪納斯河流域及其周邊地區(qū)進行氣溫預(yù)測,結(jié)果顯示BP-LSTM比LSTM的均方根誤差(RMSE)小2.21℃,比LSTM與多元線性回歸組合模型的均方根誤差(RMSE)小0.3℃;此外,BP-LSTM的平均絕對誤差(MAE)也比其余2種模型更小。
目前使用人工智能的方法在氣象領(lǐng)域尤其是氣溫和降雨方面已有大量研究,并且都取得了較好的實驗結(jié)果,而對于地溫的預(yù)測研究還相對較少。且當前傳統(tǒng)的長短時記憶神經(jīng)網(wǎng)絡(luò)(LSTM)方法對長時間序列的預(yù)測可能存在較大誤差,而滑動窗口法(SW)可以根據(jù)時間推移周期性地更新數(shù)據(jù)集,從而可將長時間序列劃分為周期性的短時間序列。結(jié)合LSTM和SW解決長時間序列預(yù)測時誤差較大的問題。
1.1.1 數(shù)據(jù)來源
本實驗地溫數(shù)據(jù)來自于四川省成都市溫江氣象站近50年(1968—2017年)的日平均地溫數(shù)據(jù),共計18 250條數(shù)據(jù)(為方便計算,不區(qū)分閏年和平年,即總數(shù)據(jù)為50年×365天/年)。數(shù)據(jù)分為2個子集:訓(xùn)練集和測試集。訓(xùn)練數(shù)據(jù)集為1968—2007年記錄的共14 600個數(shù)據(jù),占總數(shù)據(jù)記錄的80%;測試數(shù)據(jù)集包含3 650條數(shù)據(jù)記錄,占總數(shù)據(jù)的20%。
1.1.2 數(shù)據(jù)初步分析
通過對數(shù)據(jù)的初步分析,從圖1中可以看出成都市的年平均地溫在近50年內(nèi),呈現(xiàn)了先上升、后下降、再上升的大致變化趨勢,并且總體呈現(xiàn)小幅度的上升趨勢,滿足之前學(xué)者的研究結(jié)論。進一步地,從圖2中可以看出地溫高低具有明顯的季節(jié)性差異,春季和秋季的平均地溫非常接近,平均值大約在15~22℃,夏季平均地溫超過25℃,冬季平均地溫低于10℃。由于輸入LSTM模型訓(xùn)練的數(shù)據(jù)序列若存在較大波動,可能會對神經(jīng)網(wǎng)絡(luò)的訓(xùn)練造成影響甚至降低精確度,因此為了確保模型的精確性與科學(xué)性,本研究將訓(xùn)練5個模型,分別預(yù)測全年日均地溫、春季日均地溫、夏季日均地溫、秋季日均地溫、冬季日均地溫
圖1 成都市近50年的年平均地溫Fig.1 The annual average ground temperature in Chengdu in resent 50 years
圖2 成都市近50年四季平均地溫Fig.2 The average seasonal ground temperature in Chengdu in recent 50 years
。
1.2.1 相關(guān)系數(shù)
相關(guān)系數(shù)是用以反映變量之間相關(guān)關(guān)系密切程度的統(tǒng)計指標。為了確定當日平均地溫是否與前幾日平均地溫存在一定關(guān)系,本研究采用相關(guān)系數(shù)的方式來判定,地溫的數(shù)據(jù)集合可用矩陣表示
X= (X-n, …,X-1,X0)
(1)
其中:若假定X0表示當日平均地溫;則X-1表示昨日(過去第1日)平均地溫,X-n表示過去第n日平均地溫。以當日平均地溫和昨日平均地溫計算為例,相關(guān)系數(shù)計算的公式可表示為
(2)
其中:cov(X0,X-1)為X0和X-1的協(xié)方差;var(X0)和var(X-1)分別為X0和X-1的方差。
1.2.2 長短時記憶神經(jīng)網(wǎng)絡(luò)
循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)可以預(yù)測具有時間序列的數(shù)據(jù);但時間序列過長時,會導(dǎo)致模型對訓(xùn)練數(shù)據(jù)的遺忘,即時間梯度消失。由此引入長短時記憶神經(jīng)網(wǎng)絡(luò)(LSTM),解決此問題。本實驗中,采用LSTM模型預(yù)測未來短期內(nèi)幾天的日均地溫,LSTM模型的輸入數(shù)據(jù)必須轉(zhuǎn)換為規(guī)定的三維矩陣,可用以下公式表示
Xn→(xsamples,xtime_step,xfeatures)
(3)
其中:Xn為時間序列樣本;xsamples為每次輸入數(shù)據(jù)的個數(shù);xtime_step為時間步長,其數(shù)值代表用前多少天的數(shù)據(jù)來預(yù)測;xfeatures為預(yù)測的特征標簽,其數(shù)值代表有幾種預(yù)測的參數(shù)類型。
1.2.3 滑動窗口法
傳統(tǒng)的LSTM預(yù)測方法,主要分為2種。第一種是利用前n個數(shù)據(jù)預(yù)測未來1個數(shù)據(jù),即使用時間序列Xn預(yù)測Xn+1可用以下公式描述
Xn= (X-n, …,X-1,X0)
(4)
Xn→LSTM→Xn+1
(5)
其中:Xn為當前1個數(shù)據(jù)與前n個數(shù)據(jù)的集合;Xn+1為未來的1個數(shù)據(jù)。由于預(yù)測完成后Xn保持不變,輸入數(shù)據(jù)仍為(X-n, …,X-1,X0),所以此模型只能預(yù)測未來1個固定不變的數(shù)據(jù)。
另一種是利用前n個數(shù)據(jù)預(yù)測未來m個數(shù)據(jù),可用以下公式描述
Xm=(X1,X2, …,Xm)
(6)
Xn→LSTM→Xm
(7)
為了使LSTM能夠有效地預(yù)測未來多個數(shù)據(jù),本研究在模型中加入了滑動窗口法(SW),讓Xn能夠隨時間進行更新。引入SW更新數(shù)據(jù)后,預(yù)測未來t日數(shù)據(jù),可用以下公式描述
Xpre= (Xpre,1,Xpre,2, …,Xpre,t)
(8)
Xn+pre= (X-n+t, …,X0,Xpre)
(9)
Xn+pre→LSTM→Xpre,t+1
(10)
其中Xpre為未來t個預(yù)測結(jié)果的集合。公式(9)代表更新后的序列,公式(10)代表采用更新后的序列進行預(yù)測。此方法有效解決了上述預(yù)測值恒定的問題。但此方法仍存在弊端:預(yù)測較長的時間序列時,輸入集全部更新為預(yù)測值,誤差將持續(xù)累計向后傳遞,整體預(yù)測誤差也將不斷上升。若時間序列越短、間隔越小時,那么滑動窗口方法的預(yù)測精度則會越高。
考慮到上述問題,本研究進一步采用周期性SW,即每隔一段時間將測試集的預(yù)測值重新替換為真實值,其原理是將長時間序列拆分為多個短時間序列,從而解決誤差累計傳遞的問題。可用以下公式描述周期更新參數(shù)的方法
XTi,act=(XTi,-n,…,XTi,-1,XTi,0)
(11)
XTi,act→LSTM→XTi,prej
(12)
TTi,act+prej=(XTi,-n+k,…,XTi,0,
XTi,pre1,…,XTi,prek)
(13)
其中XTi,act為周期i的真實值矩陣。公式(12)代表對周期i的預(yù)測,XTi,prej為周期i中的第j個預(yù)測結(jié)果。若假設(shè)已有k個預(yù)測值,公式(13)為周期i中的參數(shù)更新方法。周期性更新參數(shù)的方法需要通過實驗找到誤差突變的時間點,將誤差突增時刻之前作為一個周期,從而確定周期的時間長度。
1.2.4 基于滑動窗口的LSTM模型
滑動窗口(SW)的主要功能是更新參數(shù),解決LSTM對長時間序列預(yù)測可能存在較大誤差的問題。此方法主要用于測試集的輸入更新階段,即模型的預(yù)測階段,應(yīng)用此方法時未改變模型的訓(xùn)練過程。若以時間步長等于3為例,模型的預(yù)測過程可用圖3表示。
圖3 周期性SW+LSTM預(yù)測的過程Fig.3 The process of periodic SW+LSTM prediction
圖3中,輸入部分,數(shù)字1、2、3代表真實數(shù)據(jù);輸出部分,字母P代表預(yù)測數(shù)據(jù)。在每一個周期內(nèi),解決了傳統(tǒng)LSTM僅能預(yù)測單個值或固定的多個值,不能隨時間推移向后預(yù)測的短時預(yù)測問題;在多個周期的結(jié)合后,解決了隨時間推移誤差累計傳遞的長時間序列預(yù)測問題。圖3中僅展示了一個周期的數(shù)據(jù)更新和預(yù)測流程,每個周期的方法均相同。在實驗過程中,周期的具體數(shù)值需根據(jù)預(yù)測的誤差突變時刻來確定。
紙盒后傳來哧哧的輕笑,紙盒移開,露出一張年輕女孩的臉,是四小姐。劉雁衡看到她兩頰上各有一抹潮紅,心里說:“哎,膏粱子弟,吃飽了撐的?!?/p>
1.2.5 數(shù)據(jù)歸一化
使用數(shù)據(jù)歸一化將輸入數(shù)據(jù)轉(zhuǎn)換為0到1之間的數(shù)字,這有2個優(yōu)點:一方面,梯度下降時它可以收斂得更快;另一方面,它可以提高結(jié)果的準確性。在本研究中,使用最小-最大歸一化方法來處理數(shù)據(jù)。歸一化函數(shù)用以下公式描述
(14)
其中:Xscale是歸一化后的數(shù)據(jù);X代表日平均地溫;Xmin為日平均地溫的最小值;Xmax為日平均地溫的最大值。部分日平均地溫的歸一化結(jié)果見表1。
表1 部分日平均地溫歸一化結(jié)果Table 1 Part of normalized results of daily average ground temperature
1.2.6 預(yù)測精度評價
本實驗采用均方根誤差(RMSE)和平均絕對誤差(MAE)作為模型預(yù)測的評價標準,計算方法可用以下公式描述
(15)
(16)
通過計算當日平均地溫和前幾日平均地溫的相關(guān)系數(shù),從數(shù)量上確定了兩者之間的相關(guān)程度。如表2所示,從全年數(shù)據(jù)來看,前7日與當日的平均地溫呈現(xiàn)極強的相關(guān)性,但程度在逐漸降低。從圖4中可以看出,四季平均地溫也大致滿足全年的相關(guān)性規(guī)律,但其中夏季的相關(guān)性較弱??偟膩碚f,隨著時間推移當日平均地溫與前幾日平均地溫的相關(guān)性逐漸降低。進一步,需通過實驗確定LSTM中的時間步長。
表2 全年當日與前7日平均地溫相關(guān)系數(shù)Table 2 Correlation coefficient of annual average ground temperature between the same day and the previous seven days in a whole year
圖4 四季當日與前7日平均地溫相關(guān)系數(shù) Fig.4 Correlation coefficient of annual average ground temperature between the same day and the previous seven days in four seasons
經(jīng)過不同的時間步長實驗,圖5和圖6展示了全年和四季的模型訓(xùn)練效果,分別是它們的平均絕對誤差(MAE)和均方根誤差(RMSE)。從兩個圖中均可以看出,誤差與時間步長近似成正比關(guān)系。理論上使用步長為1的誤差最小,但考慮到實際的預(yù)測,僅僅用前一天預(yù)測后一天,這種方法的預(yù)測結(jié)果可能存在偶然性;而步長為3時,5個模型的MAE和RMSE大致接近于步長為1的結(jié)果:因此,后續(xù)研究將采用步長為3的模型進一步預(yù)測分析。
圖5 平均絕對誤差與時間步長關(guān)系Fig.5 Mean absolute error and time step
圖6 均方根誤差與時間步長關(guān)系Fig.6 Root mean square error and time step
根據(jù)滑動窗口法,不斷地更新輸入數(shù)據(jù)集,通過實驗證明了:隨著輸入樣本的不斷更新,在一定時間范圍內(nèi)地溫的預(yù)測效果良好,但隨著時間的增加,預(yù)測誤差將不斷上升,結(jié)果如圖7,輸入前3天的日平均地溫,對未來14天的日平均地溫進行預(yù)測,結(jié)果顯示預(yù)測4日內(nèi)的地溫效果良好,從第5日開始誤差快速上升。因此,本研究將采用前3天的日平均地溫預(yù)測未來4天的日平均地溫,即以7天為一個周期,按此方式循環(huán),對2008—2017年的數(shù)據(jù)進行預(yù)測分析。表3展示了5個模型的預(yù)測平均誤差:冬季模型整體預(yù)測效果最佳,近10年的平均誤差小于1℃;春季和秋季模型平均誤差約為1℃;而夏季模型預(yù)測效果較差,平均誤差超過2℃。由此看來,全年模型受到夏季預(yù)測不佳的影響,整體平均誤差也接近于2℃。
圖7 預(yù)測未來的天數(shù)與誤差關(guān)系Fig.7 The relationship between predicted future days and error
表3 2008—2017年各模型地溫預(yù)測誤差情況Table 3 Ground temperature prediction error of each model from 2008 to 2017
進一步以2017年的結(jié)果為例,圖8中展示了用全年數(shù)據(jù)訓(xùn)練的模型對2017年地溫的預(yù)測情況,整體平均誤差約為1.7699℃??梢钥闯瞿P蛯τ诖呵锒念A(yù)測結(jié)果明顯優(yōu)于夏季,印證了上述相關(guān)系數(shù)的結(jié)論,即夏季當日的日均地溫對前幾日的日均地溫依賴性較弱。圖9至圖12分別展示了春夏秋冬4個模型對2017年四季的預(yù)測結(jié)果。其中冬季預(yù)測結(jié)果最佳,平均誤差約為0.7674℃;春季和秋季的預(yù)測結(jié)果接近,誤差均為1.1℃左右;而夏季誤差則達到了1.7979℃。此外,還可以明顯地看出,春秋冬的預(yù)測數(shù)據(jù)曲線和真實數(shù)據(jù)曲線重合度極高,具有相同的遞增或遞減變化趨勢。而夏季由于每日溫度波動較大,沒有明確的遞增或遞減趨勢,存在較大溫差,模型無法對此情形做出有效的預(yù)測。
圖8 2017年全年地溫預(yù)測結(jié)果Fig.8 The results of ground temperature prediction in 2017
圖9 2017年春季地溫預(yù)測結(jié)果Fig.9 The results of spring ground temperature prediction in 2017
圖10 2017年夏季地溫預(yù)測結(jié)果Fig.10 The results of summer ground temperature prediction in 2017
圖11 2017年秋季地溫預(yù)測結(jié)果Fig.11 The results of autumn ground temperature prediction in 2017
圖12 2017年冬季地溫預(yù)測結(jié)果Fig.12 The results of winter ground temperature prediction in 2017
傳統(tǒng)的LSTM有2種預(yù)測情況,一種為單個值的預(yù)測,另一種為多個值的預(yù)測;而周期性SW+LSTM方法顯然是多個值的預(yù)測。本實驗針對多值預(yù)測的結(jié)果,對本方法和傳統(tǒng)LSTM、BP-LSTM的預(yù)測結(jié)果進行比較,詳細結(jié)果見表4和表5。其中,周期性SW+LSTM的2項指標均為最小,預(yù)測效果最佳;其次是BP-LSTM;最差是傳統(tǒng)LSTM。
表4 周期性SW+LSTM與傳統(tǒng)LSTM預(yù)測結(jié)果的 平均絕對誤差Table 4 MAE of periodic SW+LSTM and LSTM prediction
表5 周期性SW+LSTM與傳統(tǒng)LSTM預(yù)測結(jié)果 的均方根誤差Table 5 RMSE of periodic SW+LSTM and LSTM prediction
本研究采用傳統(tǒng)長短時記憶神經(jīng)網(wǎng)絡(luò)(LSTM)結(jié)合滑動窗口(SW)的方法,以7天為周期更新參數(shù),對成都市溫江氣象站1968—2017年近50年的地溫進行分析計算,獲得良好效果,得到如下結(jié)論:
a. 2008—2017年平均全年模型的MAE約為0.6546℃。進一步地,四季模型中,冬季模型預(yù)測效果最佳,MAE約為0.2641℃;春秋兩季模型的MAE較為接近,分別為0.3867℃和0.4064℃;夏季模型的MAE略高,約為0.7516℃。
b. LSTM+SW方法能夠很好地預(yù)測短時間內(nèi)未來幾日的地溫,但隨著預(yù)測天數(shù)增加,誤差也會逐漸增大。通過周期性SW+LSTM的方法,將長時間序列拆分為周期性的短序列,降低了預(yù)測誤差。
c.經(jīng)過對比試驗,周期性SW+LSTM的平均絕對誤差和均方根誤差均為最小,預(yù)測效果最佳;其次是BP-LSTM;最差是傳統(tǒng)LSTM。說明此方法能夠在一定程度上減小LSTM預(yù)測誤差。
d.當日平均地溫與前幾日平均地溫呈現(xiàn)較強正相關(guān)關(guān)系,但在夏季此關(guān)系較為薄弱。且預(yù)測結(jié)果與相關(guān)性具有緊密的聯(lián)系,即相關(guān)性越高的參數(shù)輸入模型,能夠降低模型訓(xùn)練的平均絕對誤差和均方根誤差。
e. LSTM模型對于有明顯遞增或遞減趨勢的時間序列,訓(xùn)練和預(yù)測效果更好;而對于無變化趨勢,時間序列上前后數(shù)據(jù)波動較大的情況,該模型則不能很好地訓(xùn)練和預(yù)測。