秦 宇, 歐陽常悅,方 鵬
(1. 重慶交通大學(xué) 河海學(xué)院,重慶 400074; 2. 重慶交通大學(xué) 機(jī)電與車輛工程學(xué)院,重慶 400074)
水電長期被認(rèn)為是清潔能源而得到大規(guī)模發(fā)展,但近年來大量研究表明,水庫溫室氣體并不是傳統(tǒng)認(rèn)為的零排放。當(dāng)水庫建成后,大量植被淹沒和流域輸入的有機(jī)質(zhì)沉積導(dǎo)致的微生物降解過程會產(chǎn)生CO2、CH4等溫室氣體,并通過水氣界面釋放到大氣中[1],其排放強(qiáng)度與水庫的地理位置、氣候條件、淹沒的土壤與植被類型等因素有關(guān)[2-3],占全球溫室氣體排放增溫潛力的1%~28%[4]。水庫的溫室氣體排放量以及對全球碳循環(huán)的影響日益受到關(guān)注,人工水庫的溫室氣體產(chǎn)生、釋放及其通量的研究逐漸引起學(xué)術(shù)界的重視。然而,傳統(tǒng)的通量監(jiān)測技術(shù)存在一定的局限性,存在采樣周期長、人力成本高、采樣費用大、受瞬時流速和風(fēng)速影響較大等問題。目前越來越多的研究致力于精確地預(yù)測碳通量,現(xiàn)有關(guān)于碳通量的預(yù)測研究集中在水稻田[5]、草原[6]、森林[7]和毛竹林[8]等陸地碳源匯問題上,而關(guān)于水庫水氣界面CO2通量的預(yù)測極其少見。
深度學(xué)習(xí)(deep learning)是機(jī)器學(xué)習(xí)(machine learning)領(lǐng)域中一個新的研究方向,通過算法使機(jī)器學(xué)習(xí)樣本數(shù)據(jù)的內(nèi)在規(guī)律和表示層次,最終讓機(jī)器能夠像人一樣具有分析學(xué)習(xí)能力。深度學(xué)習(xí)在數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)、機(jī)器翻譯、自然語言處理、多媒體學(xué)習(xí)、語音、推薦、個性化技術(shù)以及其他相關(guān)領(lǐng)域都取得了很多成果[9]。筆者采用深度學(xué)習(xí)中的CNN神經(jīng)網(wǎng)絡(luò)和LSTM神經(jīng)網(wǎng)絡(luò)分別對萬峰湖水庫水質(zhì)參數(shù)進(jìn)行數(shù)據(jù)特征提取,并使用DNN神經(jīng)網(wǎng)絡(luò)(全連接神經(jīng)網(wǎng)絡(luò))進(jìn)行CO2通量回歸,構(gòu)建該數(shù)據(jù)集下水庫CO2通量預(yù)測的CNN-LSTM模型,同時分別建立CNN神經(jīng)網(wǎng)絡(luò)模型、LSTM神經(jīng)網(wǎng)絡(luò)模型和DNN神經(jīng)網(wǎng)絡(luò)模型與之對照,實驗最后,CNN-LSTM模型取得了最好的預(yù)測結(jié)果。
萬峰湖位于黔、滇、桂三省結(jié)合部的貴州省興義市,由國家重點工程——天生橋一級電站大壩截南盤江而形成的典型高原喀斯特深水水庫。而貴州喀斯特面積廣闊,巖溶分布廣泛,就碳酸鹽巖石出露面積便占了全省總面積的73%[10]。該背景下的水庫、湖泊勢必會受其地理環(huán)境的影響。該水庫地勢西北高、東南低,海拔高度為650~1 000 m之間。積水后,正常水位海拔為780 m,主航道長約128 km,最寬處20 km,沿主航道水深約100 m,形成了全長144 km、總面積176 km2、儲水1.026×1010m3、年入庫總流量1.93× 1010m3、年輸出量1.424×1010m3的人工湖[11-12]。該區(qū)域的氣候?qū)儆趤啛釒Ъ撅L(fēng)氣候,季節(jié)變化較為明顯,夏季高溫多雨、冬季溫和少雨,熱量充足,年氣溫變化較小,研究區(qū)地形平坦,水流流速緩慢,湖泊周圍植被生長茂盛[13]。
筆者整合了萬峰湖水庫2016年—2017年的表層水體的p(CO2)及其對應(yīng)時刻的T、pH、ALK、TDS、ORP和Cond共6個水質(zhì)參數(shù)。共計47組實測數(shù)據(jù)均來源于參考文獻(xiàn)[13]~文獻(xiàn)[15]上的公開數(shù)據(jù)。由于通量計算過程中可選擇的經(jīng)驗公式較多,為了精準(zhǔn)預(yù)測碳通量,筆者以下述方式統(tǒng)一計算水-氣界面CO2交換通量。
水-氣界面CO2交換通量主要受水體CO2與大氣p(CO2)的分壓差和氣體交換系數(shù)的影響,可由式(1)計算[16-17]:
F=[p(CO2)w-p(CO2)g]×KH×k
(1)
式中:F為水氣界面擴(kuò)散通量,mmol/(m2·d),F(xiàn)>0表示水體向大氣中釋放CO2,F(xiàn)<0表示水體吸收CO2;p(CO2)為表層水體CO2分壓p(CO2)g為水-氣界面CO2平衡時水中CO2的分壓(38 Pa);KH為亨利系數(shù),可由式(2)計算[18]。
KH=58.093 1+90.506 9×(100/T)+22.294×
ln(T/100)
(2)
k為氣體交換系數(shù),主要受到風(fēng)速、溫度、流速等多種因素的影響,因此,k計算方式較多,筆者參照N.SOUMIS等[17]的經(jīng)驗式(3)計算:
k=2.07+0.215U1.7
(3)
式中:U為檢測地區(qū)地平均風(fēng)速,所有參考文獻(xiàn)中風(fēng)速均為0.9 m/s。
采用origin9.0軟件對CO2通量和各水質(zhì)參數(shù)進(jìn)行線性擬合和相關(guān)性分析(圖1)。 結(jié)果表明:萬峰湖水庫夏季水-氣界面CO2通量與和ORP有較顯著的相關(guān)性,R2分別為0.90和0.39,而冬季與T、pH、ALK、TDS和Cond均有較顯著的相關(guān)性,分別為0.46、0.92、0.29、0.50和0.43。因此萬峰湖水庫在一個完整的水文年內(nèi),6個水質(zhì)指標(biāo)均為水-氣界面CO2通量的影響因素,均可作為CO2通量預(yù)測模型的輸入特征。
CNN通過卷積操作,能夠自適應(yīng)地提取數(shù)據(jù)中的特征。CNN進(jìn)行卷積操作后進(jìn)行非線性激活函數(shù)的激活,通過多層卷積、激活操作使CNN能夠擬合非常復(fù)雜的非線性函數(shù)。因而,筆者采用一維CNN對萬峰湖水庫47組樣本數(shù)據(jù)進(jìn)行特征提取。每個卷積層采用64個卷積核,同時對由水質(zhì)指標(biāo)構(gòu)成的特征向量進(jìn)行特征再提取,每個卷積核獨立提取特征,在輸入特征不變的前提下增加特征提取的通道數(shù),最后,再將卷積核提取的特征再進(jìn)行融合(圖2)。
LSTM是為了解決循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)中“梯度消失”和“梯度爆炸”問題而提出。通過增加一個“遺忘門”,讓神經(jīng)網(wǎng)絡(luò)“忘記”一些不重要的信息,從而能夠“記住”更長時間范圍內(nèi)的信息。其在自然語言處理與時序預(yù)測等研究方向取得顯著的效果。其網(wǎng)絡(luò)單元如圖3。
圖1 萬峰湖水庫水-氣界面CO2通量與水質(zhì)指標(biāo)的相關(guān)性分析Fig. 1 Correlation analysis of CO2 flux and physicochemical properties in the Wanfeng Lake Reservoir
圖2 一維卷積示意Fig. 2 One-dimensional convolution diagram
圖3 LSTM神經(jīng)網(wǎng)絡(luò)的單元結(jié)構(gòu)Fig. 3 Unit structure of LSTM network
LSTM神經(jīng)網(wǎng)絡(luò)的基本單元包括輸入門,輸出門及遺忘門[19]。遺忘門通過查看輸入xt,與隱藏狀態(tài)ht-1信息來輸出一個0~1之間的向量,通過該向量里面的0~1值來決定細(xì)胞狀態(tài)St-1中哪些信息需要保留與遺忘,遺忘門如式(4)。輸入門中的xt與隱藏狀態(tài)ht-1分別經(jīng)過sigmoid和tanh函數(shù)變化后共同決定候選細(xì)胞信息gt中哪些信息會被更新到細(xì)胞信息中,輸入門如式(5)和式(6)。新的細(xì)胞信息St由舊的細(xì)胞信息St-1經(jīng)過遺忘門與輸入門共同決定,表達(dá)如式(7)。更新細(xì)胞狀態(tài)后根據(jù)xt與ht-1來決定輸出細(xì)胞的哪些狀態(tài)特征,輸出門如式(8)和式(9)。
ft=σ(Wfxt+Wfht-1+bf)
(4)
it=σ(Wixt+Wiht-1+bi)
(5)
gt=tanh(Wgxt+Wght-1+bg)
(6)
St=gt?it+St-1?ft
(7)
Ot=σ(WOxt+WOht-1+bO)
(8)
ht=tanh(St)?Ot
(9)
式中:Wf、Wi、Wg、WO分別為相應(yīng)門與輸入xt和隱藏狀態(tài)ht-1相乘的矩陣權(quán)重;bf、bi、bg與bO分別為相應(yīng)門的偏置項;?為sigmoid激活函數(shù);tanh為激活函數(shù)。
為了減小模型復(fù)雜度,加快模型訓(xùn)練,先對47組原始數(shù)據(jù)進(jìn)行數(shù)據(jù)預(yù)處理。提取水質(zhì)指標(biāo)作為訓(xùn)練數(shù)據(jù),CO2通量值作為監(jiān)督學(xué)習(xí)的標(biāo)簽。為了保證模型的訓(xùn)練速度和泛化能力,對提取的水質(zhì)指標(biāo)特征數(shù)據(jù)及標(biāo)簽數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理。
CNN-LSTM模型主要由3部分組成,如圖4。CNN神經(jīng)網(wǎng)絡(luò),LSTM神經(jīng)網(wǎng)絡(luò)與DNN神經(jīng)網(wǎng)絡(luò)、CNN神經(jīng)網(wǎng)絡(luò)設(shè)計有2層一維卷積層(Conv1D),每1層卷積核數(shù)目皆為64,卷積核大小為1×N,N是輸入數(shù)據(jù)的緯度,移動步長為1,激活函數(shù)選擇Relu函數(shù)。通過2層卷積對特征進(jìn)行提取再融合為1×64的融合特征。走航過程中所測數(shù)據(jù)是隨時間而變化,因此需要提取數(shù)據(jù)間的時序特征。筆者采用2層LSTM提取水質(zhì)指標(biāo)中的時序特征,每層的神經(jīng)細(xì)胞(cell)數(shù)量都為64,激活函數(shù)為Relu函數(shù),每個神經(jīng)細(xì)胞處理完后都輸出一個隱藏狀態(tài)量,經(jīng)LSTM神經(jīng)網(wǎng)絡(luò)處理后的輸出為1×64的向量。最后經(jīng)過4層DNN神經(jīng)網(wǎng)絡(luò)映射到CO2通量。DNN神經(jīng)網(wǎng)絡(luò)的神經(jīng)元節(jié)點數(shù)分別為64、32、16和1,激活函數(shù)采用tanh函數(shù),最后輸出的數(shù)據(jù)經(jīng)過反標(biāo)準(zhǔn)化后即為每次的預(yù)測值。構(gòu)建絕對均值(MAE)作為模型損失函數(shù),采用Adam優(yōu)化算法尋找損失函數(shù)最優(yōu)值,通過逐層訓(xùn)練,優(yōu)化每一層權(quán)值與偏置值,直到損失函數(shù)收斂到穩(wěn)定為止。本模型采用一組水質(zhì)指標(biāo)數(shù)據(jù)預(yù)測一個CO2通量。
圖4 CNN-LSTM模型結(jié)構(gòu)Fig. 4 CNN-LSTM model structure
為了更好的評估模型的預(yù)測性能,筆者采用絕對均值誤差(MAE)、均方根誤差(RMSE)作為模型的評價指標(biāo)。預(yù)測值與實測值的相關(guān)性(R2)由origin9.0軟件計算并繪制。MAE和RMSE如式(10)~式(11):
(10)
(11)
式中:n為預(yù)測的總次數(shù);Yact(i)和Ypred(i)分別為CO2通量的真實值和預(yù)測值。
CNN-LSTM預(yù)測模型的訓(xùn)練流程如圖5。
圖5 CNN-LSTM模型預(yù)測流程Fig. 5 CNN-LSTM model prediction flow chart
其具體流程為:
1)數(shù)據(jù)預(yù)處理。以水質(zhì)參數(shù):TDS、pH、ORP、T、Cond、ALK作為訓(xùn)練數(shù)據(jù),將CO2通量作為標(biāo)簽。為了加快模型收斂速度,消除數(shù)據(jù)之間的量綱和取值范圍差異的影響,對輸入數(shù)據(jù)進(jìn)行最大最小標(biāo)準(zhǔn)化處理,使數(shù)據(jù)縮放到(-0.5~0.5)的范圍,最大最小標(biāo)準(zhǔn)化公式如式(12):
(12)
式中:z為原始值;z*為標(biāo)準(zhǔn)化后的值;zmax與zmin分別為樣本數(shù)據(jù)中的最大值與最小值。
2)CNN-LSTM模型訓(xùn)練。隨機(jī)選取所有數(shù)據(jù)的80%作為模型的訓(xùn)練集,其余20%的數(shù)據(jù)作為測試集。采用監(jiān)督學(xué)習(xí)的訓(xùn)練方式對模型進(jìn)行反向傳播優(yōu)化權(quán)值與偏置值。優(yōu)化算法采用Adam算法,損失函數(shù)采用絕對均值(MAE)。對模型進(jìn)行分批次訓(xùn)練,更新權(quán)值與偏置值。每批次訓(xùn)練數(shù)據(jù)設(shè)置為6,經(jīng)過1 000輪訓(xùn)練,當(dāng)損失函數(shù)收斂穩(wěn)定時視為模型訓(xùn)練完成。保存訓(xùn)練好的模型,用于測試。
3)模型預(yù)測。加載訓(xùn)練好的模型,將20%的測試數(shù)據(jù)輸入模型進(jìn)行評估。計算預(yù)測結(jié)果的MAE、RMSE和R2作為模型的評價指標(biāo)。
筆者選取2016年—2017年云貴高原巖溶深水水庫——萬峰湖水庫的47組數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),通過數(shù)據(jù)訓(xùn)練結(jié)果檢驗?zāi)P偷挠行?。建模使用的處理軟件為python3.6,軟件框架為基于Keras深度學(xué)習(xí)工具的Tensorflow框架。
為了驗證筆者提出的CNN-LSTM模型在CO2通量預(yù)測上效果的有效性及精確性,筆者設(shè)計如下幾組模型試驗:
1)CNN-LSTM模型(文中模型):先輸入2層CNN神經(jīng)網(wǎng)絡(luò)進(jìn)行特征提取,然后輸入2層LSTM神經(jīng)網(wǎng)絡(luò)進(jìn)行時序特征提取,最后進(jìn)入4層DNN回歸層進(jìn)行線性映射得到CO2通量。
2)CNN模型(對照模型1):通過2層CNN神經(jīng)網(wǎng)絡(luò)層與4層DNN神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)測。
3)LSTM模型(對照模型2):通過2層LSTM神經(jīng)網(wǎng)絡(luò)和4層DNN神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)測。
4)DNN模型(對照模型3):直接把未特征提取水質(zhì)指標(biāo)特征數(shù)據(jù)經(jīng)過4層DNN神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)測。
為了保證試驗對比結(jié)果的有效性,各模型以相同的80%訓(xùn)練集與20%測試集進(jìn)行訓(xùn)練,數(shù)據(jù)預(yù)處理方法一致,CNN與LSTM模型參數(shù)與文中模型對應(yīng)部分相同。每個模型訓(xùn)練至損失函數(shù)收斂。所有模型的評價指標(biāo)都為絕對均值(MAE)、均方根值(RMSE),通過對比不同模型間的評價指標(biāo)評價模型預(yù)測結(jié)果的準(zhǔn)確性。各模型的評價指標(biāo)RMSE和MAE如表1,各模型預(yù)測值與實測值的相關(guān)性(R2)如圖6。
試驗結(jié)果表明4種模型均能在一定程度上對CO2通量進(jìn)行預(yù)測,且預(yù)測值與實測值的相關(guān)性均較高(R2>0.90)。CNN模型直接對數(shù)據(jù)進(jìn)行特征提取后輸入全連接進(jìn)行回歸預(yù)測,取得一定的效果。LSTM模型雖能夠有效的提取時序數(shù)據(jù)間的時序特征,但未對水質(zhì)參數(shù)進(jìn)行高緯度的特征提取,所以預(yù)測精度小于CNN模型。DNN模型直接輸入未提取特征的數(shù)據(jù)進(jìn)行預(yù)測,因而所得預(yù)測值誤差最大。
表1 各模型指標(biāo)對比Table 1 Comparison of various model indicators
圖6 4種模型預(yù)測值與實測值相關(guān)性分析Fig. 6 Correlation analysis between the predicted and the measured values of four models
從表1及圖6可以看出,4個模型都能較為準(zhǔn)確地預(yù)測CO2通量,但是CNN-LSTM模型的預(yù)測效果顯然最好,預(yù)測誤差比獨立的CNN、LSTM和DNN小,說明CNN-LSTM模型能夠更加有效地對特征進(jìn)行提取融合,進(jìn)而提高預(yù)測效果。
由于樣本數(shù)據(jù)量較小,在訓(xùn)練基于數(shù)據(jù)驅(qū)動的CO2通量預(yù)測模型時能夠在小樣本數(shù)據(jù)中有效擬合非線性映射函數(shù)是準(zhǔn)確預(yù)測的關(guān)鍵。相較于CNN模型、LSTM模型、DNN模型而言,筆者提出的CNN-LSTM模型一方面能有效減少訓(xùn)練參數(shù);另外一方面,模型能夠較為全面提取數(shù)據(jù)中的高維度特征及數(shù)據(jù)間的時序特征;同時,模型中加入激活函數(shù)能夠更好的構(gòu)建最優(yōu)特征與CO2通量之間的非線性映射關(guān)系,達(dá)到最優(yōu)的預(yù)測效果。
筆者建模的原始數(shù)據(jù)僅有47組,每組包含6項水質(zhì)參數(shù)及一項CO2通量。提出的CNN-LSTM模型由于能夠有效地自適應(yīng)提取小樣本數(shù)據(jù)中的高維度特征從而較精準(zhǔn)預(yù)測。但相對其他大數(shù)據(jù)建模而言原始數(shù)據(jù)量較小,屬于小樣本數(shù)據(jù)下的建模研究,預(yù)測精度有待進(jìn)一步提高。
本課題團(tuán)隊后期將致力于采集更多的數(shù)據(jù),提升模型收斂程度和預(yù)測指數(shù)。同時,通過對長江流域水庫安裝水質(zhì)指標(biāo)傳感器,以5G通信的方式實現(xiàn)水質(zhì)數(shù)據(jù)的實時監(jiān)測,收集長江流域水質(zhì)大數(shù)據(jù),構(gòu)建CO2通量實時預(yù)測模型。隨著數(shù)據(jù)積累量不斷增加、監(jiān)測范圍不斷擴(kuò)大,可為長江流域碳足跡進(jìn)行全方位預(yù)估,補(bǔ)充全球水電項目碳足跡數(shù)據(jù)庫,為長江上下游水電工程的建設(shè)和管理提供輔助決策意見。
1)萬峰湖水庫夏季水-氣界面CO2通量僅與pH和ORP有較顯著的相關(guān)性,而冬季CO2通量與T、pH、ALK、TDS和Cond均有較顯著的相關(guān)性。在一個完整的水文年內(nèi),6項水質(zhì)指標(biāo)均可作為CO2通量的重要影響因素。
2)比較4種模型的MAE和RMSE,筆者提出的CNN-LSTM模型約為2.64、和3.85 mmol/(m2·d),低于CNN模型、LSTM模型和DNN模型,相比之下CNN-LSTM模型能更加有效地進(jìn)行特征提取從而減小預(yù)測誤差。在模型預(yù)測值與實測值的相關(guān)性方面,4種模型相關(guān)性均高于0.90。
3)神經(jīng)網(wǎng)絡(luò)模型具有強(qiáng)大的非線性擬合能力,目前已廣泛地應(yīng)用在人工智能領(lǐng)域。雖然目前深度學(xué)習(xí)在環(huán)境領(lǐng)域應(yīng)用較少,但其可以很好地解決環(huán)境預(yù)測問題,隨著大數(shù)據(jù)時代的到來,深度學(xué)習(xí)必將在傳統(tǒng)環(huán)境領(lǐng)域內(nèi)大有所為。