徐繁樹,王保云
(1.云南師范大學 信息學院,云南 昆明 650500;2.云南師范大學 數學學院,云南 昆明 650500;3.云南省高校復雜系統(tǒng)建模及應用重點實驗室,云南 昆明 650500)
云南怒江傈僳族自治州(以下簡稱怒江州)是泥石流重災區(qū),其對沿溝及溝口區(qū)域的建筑和居民人身安全造成巨大威脅[1-2],因此泥石流的防治工作意義重大,而危險度評價是泥石流防治中基礎且重要的一環(huán).對溝谷的泥石流孕災危險度評價,始于20 世紀70 年代[3],目前已有許多評價方法,如模糊綜合評判法[4]、層次分析法[5-6]、可拓模型[7-8]、熵權法[9]、貝葉斯模型[10]等.但上述方法均存在一定的局限性,一般需要主觀設定用于評價危險度的因子,最終的結果受所選取的因子影響大.此外,以往的研究往往選取某些點位或是局部流域作為泥石流危險度的評估對象[11],而泥石流的發(fā)生一般是以溝為單位發(fā)生的,用整溝作為評價對象更為合理.由于怒江州內地形復雜,進行實地調查往往會耗費大量的人力與時間,無法對溝谷泥石流孕災危險度進行快速評估.
使用神經網絡模型(Convolutional Neural Network,CNN)對各類地質災害進行評價,不需要手動選擇危險因子,能通過圖像自適應地識別災害對應的特征,快速便捷,成為當前研究的熱點.卷積神經網絡已應用于地震識別與震相拾取[12-13];杜星等[14]用神經網絡預測地震液化,最高可達96%的正確率;吳鑫俊等[15]將神經網絡用于洪水演進預測;胡濤等[16]使用神經網絡對崩塌落石災害進行危險度評估,可將平均誤差降低至5%;趙鵬輝等[17]利用卷積神經網絡對河道山地災害進行識別.
盡管神經網絡在多種地質災害的評價分析中均有較好的表現,但將其應用于泥石流危險度評價仍存在一定問題.比如卷積神經網絡需要一定的數據量作為支撐,而對于溝谷泥石流而言,不存在如此大量的正樣本,因此必須仔細構建網絡結構,否則會導致模型梯度隨網絡深度增加而消失[18].He等[19]在2015 年提出的殘差結構能很好地解決梯度消失問題,且該結構各類小樣本問題上表現優(yōu)異.本文借鑒了三維卷積神經網絡[20]結構,構建了一種同時對泥石流溝谷的數字高程模型(Digital Elevation Model,DEM)圖與多光譜圖像進行特征提取與學習的立體殘差網絡(Stereoscopic-Residual Net,SRNet).模型在歷史泥石流災害溝谷的DEM和多光譜數據上進行訓練,然后對溝谷的泥石流孕災危險度進行評測.本研究提出的危險度評價方法,可以一定程度上減少泥石流防治工作中人力物力的開支,為更全面地推進防治工作提供理論指導.
1.1 研究區(qū)域怒江州位于云南西北部,有怒江、瀾滄江、獨龍江3 條河流自北向南流經.其中怒江流域溝壑縱橫,加之流域內雙雨季降水分布不均,局部暴雨頻發(fā),溝谷型泥石流頻繁發(fā)生[21-22].研究區(qū)域示意圖見圖1.
圖1 研究區(qū)域位置圖Fig.1 Location map of the study area
1.2 研究數據本文使用的DEM 數據來自美國地質勘探局(United States Geological Survey,USGS)于2008 年發(fā)布的公開數據集,分辨率為30 m.使用的多光譜圖像來自高分一號(GF-1)衛(wèi)星,該衛(wèi)星的幅寬為800 km,拍攝時間為2021 年,衛(wèi)星所拍攝的各光譜圖的參數信息見表1.
表1 多光譜數據參數Tab.1 Parameters of hyperspectral data
數據集的構建方式為兩種:①對于有泥石流災害發(fā)生的溝谷,通過查閱2000—2020 年間的《云南減災年鑒》,并結合相關新聞報道,通過ArcGis軟件提取出了怒江州內有記錄的泥石流溝谷,共計50 條.②對于未發(fā)生泥石流災害的溝谷,選取溝谷旁有建筑或農田,且無泥石流記錄的溝谷共50條作為負樣本.實際上,對于溝谷是否發(fā)生過泥石流,只存在發(fā)生與不確定這兩種情況,因為未造成人員傷亡或較大經濟損失的泥石流幾乎不會被記載,通過上述負樣本的選取方式,可以大大提高所選擇的溝谷確實未發(fā)生過泥石流的可信度.
姚振國等[23]研究發(fā)現,主溝長度越長,流域面積越大的溝谷越容易發(fā)生泥石流.一般而言,主溝長度越長的溝谷其流域面積越大.為了探究形態(tài)各異的溝谷對泥石流危險性的影響,在初步將研究區(qū)所提取的溝谷分為是否發(fā)生泥石流的基礎上,本文又根據主溝長度和流域面積,將上述兩類數據再分別劃分為3 類.具體的劃分結果見表2.
表2 泥石流數據的分類方式Tab.2 Classification of debris flow data
由于泥石流的成因較為復雜,不僅與溝谷本身的長度、坡度等結構信息有關,還受物源條件、植被覆蓋、水體條件等諸多因素的影響,這些條件在不同區(qū)域的泥石流災害中往往是共同作用的,本文重點關注溝谷的幾何形態(tài)和物源條件這兩方面所具有的潛在危險度.于是,所使用的數據可視為兩部分,即提供了溝谷幾何信息的DEM 圖和物源信息的遙感圖像.
所有的DEM 圖片與多光譜圖片在提取后,均被填充至1 080 像素×1 080 像素.這是因為對于泥石流災害的形成,流域大小與溝谷長度是關鍵性因素,如果將圖像不加更改地直接輸入模型訓練,會使模型無法捕獲到這兩個十分重要的特征.為了能充分挖掘多光譜數據與DEM 的信息,實驗中將溝谷的DEM 圖與4 張對應的多光譜圖像堆疊在一起,構建出1 080 像素×1 080 像素×5 的數據塊作為模型的原始輸入以適應三維卷積.所提取出的溝谷數據的示意圖和數據塊構建方式如圖2 所示.
圖2 DEM 與遙感數據示意圖及數據塊構建方式Fig.2 Schematic diagram of DEM &remote sensing data and construction of data cube
1.3 模型構建多光譜圖像進行特征提取與學習的立體殘差網絡(SRNet)是基于三維卷積與殘差結構所設計的網絡模型,該網絡結構能很好地適應所輸入的數據特點,模型的結構圖見圖3.不同于僅有3 個通道(RGB)的普通圖像,本實驗的數據塊為1 通道DEM 數據與4 通道遙感數據,使用常規(guī)的二維卷積塊無法充分利用多光譜影像中豐富的空譜信息,因此設計上采用了有長、寬與深度3 個維度的卷積塊作為卷積核.
圖3 立體殘差網絡(SRNet)結構示意圖Fig.3 Structure of Stereoscopic-Residual Net (SRNet)
此外,為了使模型更加穩(wěn)定,并充分利用原數據中的信息,在主干結構上又增加了1 個殘差結構(圖3 中藍色虛線所示),殘差連接上的特征圖直接通過最大池化生成,不進行卷積操作.池化所得的特征圖在個數和形狀上都與主干上得到的特征圖一致,以進行殘差連接的加和操作.
2.1 實驗平臺與超參數設定硬件環(huán)境:Intel Platinum 8157 CPU @ 2.30 GHz,NVIDIA GeForce RTX 3090 GPU;軟件環(huán)境:Ubuntu 18.04 操作系統(tǒng),Python 3.8,CUDA 11.0,PyTorch 1.7.1,以及圖像相關的第三方代碼庫.
模型訓練時使用GPU 加速,具體訓練設置如下:最大訓練輪數設置為100,由于樣本個數較少,故一次訓練所選取的樣本數(batch size)設置為2,學習率設置為0.000 1,優(yōu)化方法為隨機梯度下降,損失函數為交叉熵損失(Cross Entropy Loss).所有模型結構中的卷積塊初始化方法均為凱明初始化[24].
2.2 實驗流程首先,使用發(fā)生過泥石流的溝谷數據和未發(fā)生泥石流的溝谷數據對構建的神經網絡模型進行訓練,之后使用訓練好模型對測試集中的溝谷數據進行特征提取,根據相似度得分計算溝谷的危險度.由于數據集劃分時,0、1、2 三類為發(fā)生過泥石流的樣本,3、4、5 三類為未發(fā)生泥石流的溝谷.因此,根據神經網絡模型給出的測試圖片與各類別的相似度評分,可以計算各溝谷的孕災危險度.具體實驗流程如圖4 所示.
圖4 實驗流程Fig.4 Experiment process
下面給出溝谷泥石流孕災危險度的計算方法:
式中:xi表示模型輸出的待評價溝谷與第i類溝谷的相似度得分,si為將xi歸一化到 [0,1]的相似度得分.
根據待測溝谷與已發(fā)生過泥石流溝谷(i=1,2,3)的相似度,可以計算得到溝谷的危險度評分S.顯然,有S∈[?1,1].該值越大表示待測溝谷與發(fā)生過泥石流的溝谷相似度越高,將區(qū)間劃分為3 部分,可根據S所處的區(qū)間判斷溝谷泥石流的危險度.危險度的劃分方式如公式(3)所示.
2.3 實驗結果分析
2.3.1 溝谷泥石流潛在危險評估 使用訓練后的模型,對怒江州的溝谷進行評價后,得到了各條溝谷的危險度等級,分為高危險、低危險、中危險3 類.其中高危險溝谷114 條,中危險溝谷40 條,低危險溝谷60 條.之后根據各溝谷的危險度等級,繪制了怒江州的溝谷泥石流危險度評價圖(圖5).
圖5 溝谷泥石流潛在危險性評價圖Fig.5 Risk assessment map of debris flow in valley
表3 中展示了訓練后的模型給出的3 個典型溝谷孕災危險度評價結果,分別代表高、中、低危險度溝谷.其中溝谷假彩色圖是通過給遙感圖的波段1、波段2、波段3 分別賦藍(B)綠(G)紅(R)所生成的接近自然顏色的圖像.3 條溝谷的危險度評分見表4.分析如下.
表3 危險度評估示例Tab.3 Example of risk assessment
表4 各溝谷危險度評分Tab.4 Risk assessment of valleys
東月各溝谷曾發(fā)生過特大泥石流.其溝口坐標為27°38′9″N,98°43′50″N.從地質條件上看,東月各河溝所處的地形為典型的高山峽谷地形,溝體狹長,相對高差可達3 000 m 以上,較為險峻,有利于泥石流的加速.該溝流域面積約為47 km2,且流域上游呈扇形,支溝短,有利于水流匯聚,極易誘發(fā)泥石流.此外,溝谷上游處的巖體多為絹云石英片巖、大理巖、燕山期花崗巖等,抗風化能力差異大,易發(fā)生崩塌,為泥石流的形成提供了物源條件;從衛(wèi)星拍攝圖像可以看出,東月各溝頭有冰川分布,冰雪消融或遭遇強降雨,也會成為泥石流的物源.SRNet 給出的東月各溝谷的危險度評分為S=1,危險度極高.
龍坡溝谷的溝口坐標為27°52′30″N,98°40′43″E,有沖毀過農田的記錄,由于村民轉移及時,并未造成人員傷亡.盡管該溝谷主溝長度約6 000 m,但匯水面積小于東月各溝谷,且兩側山體植被較上一個樣例更為完好.然而,溝頭的冰雪融水與山坡碎石仍能成為誘發(fā)泥石流的物源條件.SRNet 給出的龍坡溝谷的危險度評分為S=0.30,中等危險.
岔花村溝谷的溝口坐標25°40′42″N,98°52′14″E,溝底有大量的房屋和農田,此處無任何泥石流災害記錄.該溝溝底較為平坦,地形較為開闊,兩側山高均為500 m 左右,且坡度在40°左右.因此,并不利于形成泥石流的水流匯聚,較難發(fā)生泥石流.SRNet 給出的該溝谷的危險度評分為S=?0.94,危險較低.
2.3.2 不同模型結構對比實驗 為了顯示所設計的SRNet 對于DEM 和多光譜數據的表征能力,研究中使用了由Google 開發(fā)的Inception V1[25]作為比較對象;另外,為了體現3D 卷積設計的效果,還與ResNet18 與ResNet34[19]這2 個通過殘差結構構建的模型進行了對比實驗.為了適應上述3 個模型的輸入與輸出,在輸入層將3D 數據塊通過1×1 卷積核降維到2D,在全連接層將最終的輸出類別修改為6.除此之外,這3 個模型的結構不做任何調整,所有超參數與2.1 中的設置保持一致進行對比實驗.進行的多組實驗中,每組實驗各個模型所使用的訓練集與測試集均相同,訓練集共80 張,測試集共20 張.多組實驗中各模型的表現類似,圖6 中展示了一組實驗的可視化曲線.其中二分類正確率通過六分類的結果計算得到,它表示將數據視為發(fā)生過泥石流和未發(fā)生兩類時得到的正確率.
圖6 不同模型的訓練正確率/損失曲線與測試正確率曲線Fig.6 Training accuracy/loss curve and testing accuracy curve of different model
從測試正確率來看,SRNet 有著最高的測試正確率,接近80%,遠遠高于其它模型結構.從損失值的收斂情況來看,SRNet 相對與其它模型結構損失值下降的更為平滑,InceptionV1 最不穩(wěn)定.盡管ResNet18 的損失函數下降在后期更為平滑,但其正確率僅有50%左右.
為了進一步對模型性能進行評價,在研究中不斷重新劃分數據集,進行了多輪平行實驗,計算出各個模型的六分類正確率、精確率、召回率、Kappa 系數,計算均值中所選取的數值均為每次測試中每個模型的最好結果.表5 給出了多輪平行實驗所得到的平均結果.
表5 實驗結果Tab.5 Experiment result
從表5 中可以看出,SRNet 在幾乎各指標上的表現都是最好的.最值得注意的是高達88%的召回率,因為對于泥石流危險性評價而言,召回率尤為關鍵,由于召回率表示的是樣本中有多少正例被正確分類,即有泥石流孕災危險的溝谷有多少被模型所正確捕獲,因此召回率高的模型可以覆蓋更多真正有泥石流危險的樣本,這對評估工作至關重要.
2.3.3 訓練/測試數據比例對模型的影響 為了進一步測試各個模型對不同數據量的穩(wěn)定性,按不同比例重新劃分數據集,并對各個模型進行測試.圖7 中展示了不同訓練測試比例下,各模型的六分類測試正確率隨訓練輪數的變化.圖7(a)為80 條溝谷數據訓練,20 條溝谷數據測試得到的結果;圖7(b)為70 條溝谷數據訓練,30 條溝谷數據測試的結果;圖7(c)為60 條溝谷數據訓練,40 條溝谷數據測試的結果.從圖7 可以直觀地看出,所有模型的測試正確率均隨著樣本量的減少而下降,在訓練樣本減少至60 張時,所有模型都幾乎無法很好地識別圖像中的特征.但不難發(fā)現,SRNet 在不同測試中均表現出了最高的正確率.此外,所有模型的測試正確率曲線均有較大的波動,推測原因可能為:一方面是使用的數據量過少,因此在測試過程中,哪怕每次僅有1~2 張圖片的類別改變均會對測試正確率曲線造成較大影響;另一方面受模型結構影響較大,其中SRNet 同時擁有立體卷積結構和殘差結構,表現最好.
圖7 不同數據集劃分下的六分類測試準確率變化Fig.7 The change of test result accuracy of six classification under different dataset division
2.3.4 殘差結構對模型的影響 圖8 為有殘差結構和無殘差結構的模型在相同的訓練測試數據下得到的訓練曲線和測試曲線,去除殘差結構的模型稱為SNet (Stereoscopic Net).從圖8(a1)與(a2)的損失變化曲線可以看出,擁有殘差結構的模型表現出了較好的穩(wěn)定性.
圖8 有無殘差結構對比Fig.8 With/without residual structure
圖8 的對比實驗結果表明,殘差模塊的使用不僅可以避免梯度消失,使其更加穩(wěn)定,而且能加速模型的訓練,大大提高了正確率,一個典型的殘差模塊如圖9 所示.
圖9 殘差結構示意圖Fig.9 Residual structure
設F(x)為前一層網絡的輸出矩陣,后一層卷積塊ConvG 表示一次規(guī)則為G的特征提取操作.那么,在使用殘差連接的情況下,最終的輸出結果為G[F(x)]+F(x);在不使用殘差連接的情況下,最終的輸出為G[F(x)].根據神經網絡反向傳播的過程,對二者求導的結果分別如下:
其中:(4)式表示反向傳播時,無殘差連接的求導結果,(5)式表示有殘差連接的求導結果.(4)式中的乘法計算均為矩陣的乘法運算.分析(4)式可知,模型的層數越深,求導時累乘的項也就越多.經驗上,在求導過程中求得的梯度值一般為0 附近的高斯分布,因此隨著網絡層數的加深,極易發(fā)生梯度彌散的問題.而(5)式在原梯度的基礎上額外增加了一方面,該項的值在先前的鏈式求導過程中已經計算過,因此幾乎不會給模型帶來額外的運算負擔;另一方面,該項的值往往大于(4)式中鏈式求導得到的乘積,使得有殘差結構的模型在反向傳播時能克服梯度消失的問題,并能使得損失函數值不斷下降,達到加速收斂的效果.
直覺上,對于殘差結構可以理解為:在訓練一個主干網絡的同時,利用殘差連接同時訓練一個網絡規(guī)模較小,且梯度值較大的結構,因此不僅能使模型更好地收斂,還能最大程度地利用先前提取出的特征.因此,在小樣本問題上較其它結構有較好的表現.
2.3.5 模型參數量對模型的影響 經過以上實驗,我們發(fā)現模型的表現與參數量有很大關系.模型的參數量可以看作網絡的規(guī)模大小,表6 中列出了各模型的參數量.結合2.3.2 與2.3.3 得出的實驗結果,可以發(fā)現參數量最小的SRNet 表現最優(yōu).其余模型結構,盡管深度和參數量均遠遠高于SRNet,但都無法取得令人滿意的效果.
表6 模型參數量Tab.6 Parameters of different model
對于神經網絡模型,隨其層數的加深,參數量也會增多,因此會有更強的表征能力,但是也會帶來更高的過擬合風險.在海量數據集上,參數量較高的模型一般能取得更好的效果,但是在較小的數據集上,過于深的網絡會降低模型的泛化能力.因此,對于泥石流這類樣本量較少的數據,使用神經網絡進行特征提取時,要仔細控制參數量和網絡結構,才有可能取得較好的效果.對比4 種網絡模型結構、模型參數量和訓練、損失曲線,不難發(fā)現參數量最小且使用了殘差結構的SRNet 能取得最好的實驗效果.
(1)通過改進殘差結構,并結合三維卷積,所構建的SRNet 能更好地提取遙感數據和DEM 數據中的特征,表明對于遙感這類多通道數據,使用立體卷積往往能取得更好的效果.此外,使用CNN 處理樣本量較小的問題時,宜使用較小的模型以降低過擬合風險.
(2)本文使用神經網絡模型,以整條溝谷為研究對象,對研究區(qū)內的溝谷進行泥石流危險度評價,得出高風險溝谷114 條,中風險溝谷40 條,低風險溝谷60 條的評價結果,模型的準確率可達到80%.通過對典型溝谷進行驗證,并與歷史泥石流災害記錄進行對比,結果可信度較高.
(3)根據得到的危險度評價圖,發(fā)現怒江貢山段以及福貢段為溝谷泥石流危險度較高的區(qū)域.該處山勢險峻,沿江兩岸有大量居民區(qū)與基礎設施,應加強泥石流防治工作,以減少災害損失.