徐根祺, 曹 寧, 謝國坤, 馬 婧, 南江萍, 張佳綺
(1.西安交通工程學(xué)院 機(jī)械與電氣工程學(xué)院,陜西 西安 710030; 2.西安交通工程學(xué)院 土木工程學(xué)院,陜西 西安 710030;3.中國葛洲壩集團(tuán)第三工程有限公司,陜西 西安 710119)
在地質(zhì)災(zāi)害防治過程中,為了分析泥石流監(jiān)測系統(tǒng)的實(shí)時(shí)數(shù)據(jù)信息和準(zhǔn)確預(yù)測其發(fā)展變化趨勢,需要在災(zāi)害常發(fā)地收集有效信息[1~3],利用無線傳感器網(wǎng)絡(luò)(WSNs)在線實(shí)時(shí)監(jiān)測是目前主要采用的方法[4]。泥石流災(zāi)害監(jiān)測系統(tǒng)中所需傳感器眾多,這些傳感器以分布式無線傳感器網(wǎng)絡(luò)的形式搭建而成[5~7]。崩塌、滑坡等地質(zhì)災(zāi)害產(chǎn)生的固體松散物質(zhì)會(huì)對網(wǎng)絡(luò)的正常工作造成干擾甚至破壞網(wǎng)絡(luò)節(jié)點(diǎn),傳感器及電池板上長期堆積的灰塵也會(huì)造成傳感器采集數(shù)據(jù)不準(zhǔn)確、采樣周期改變或數(shù)據(jù)丟失等情況[8~10]。
針對網(wǎng)絡(luò)故障導(dǎo)致的數(shù)據(jù)異常問題,利用集中化的全局通信方式成本太高;采用分散式,基于相鄰傳感器節(jié)點(diǎn)間不同數(shù)據(jù)信息的故障進(jìn)行判斷[11~12]的方法,需要所有傳感器測量同一變量為前提,然而,傳感器監(jiān)測的并非都是同一變量;基于圖形的方法隔離網(wǎng)絡(luò)中的故障點(diǎn),利用時(shí)間序列與時(shí)間窗口之間的相互關(guān)系對故障節(jié)點(diǎn)進(jìn)行判斷,精度無法得到保證。
為了解決當(dāng)前研究中存在的問題,本文利用回聲狀態(tài)網(wǎng)絡(luò)(echo state network,ESN)在整個(gè)傳感器網(wǎng)絡(luò)上搭建一個(gè)大型的分布式遞歸神經(jīng)網(wǎng)絡(luò)(distributed recurrent neural network,DRNN),網(wǎng)絡(luò)節(jié)點(diǎn)間使用局部通信的方式,每個(gè)傳感器節(jié)點(diǎn)只配置較少的神經(jīng)元,只有相鄰節(jié)點(diǎn)之間進(jìn)行通信。當(dāng)有傳感器節(jié)點(diǎn)發(fā)生故障而導(dǎo)致數(shù)據(jù)異常時(shí),相鄰節(jié)點(diǎn)使用DRNN的預(yù)測值向其他節(jié)點(diǎn)傳輸數(shù)據(jù),泥石流監(jiān)測預(yù)警系統(tǒng)使用預(yù)測值對泥石流的發(fā)生概率進(jìn)行預(yù)測,從而保證泥石流監(jiān)測預(yù)警系統(tǒng)在惡劣環(huán)境下的預(yù)報(bào)精度。
ESN的內(nèi)部神經(jīng)元之間以線性變換的方式進(jìn)行連接[11]。ESN在遞歸層中的連接權(quán)值矩陣隨機(jī)生成后保持不變,并且在訓(xùn)練過程中,只改變與輸出單元的連接權(quán)值[12,13]。訓(xùn)練完成后,連接權(quán)值將不再改變,輸出和下一時(shí)刻的網(wǎng)絡(luò)狀態(tài)由當(dāng)前時(shí)刻的輸入和內(nèi)部狀態(tài)決定,因此,該網(wǎng)絡(luò)的訓(xùn)練復(fù)雜度較低[14,15]。
fxt+1=F(fxt,fut)
(1)
fyt+1=F(fyt,fut)
(2)
若系統(tǒng)F(·)與外部輸入狀態(tài)fut無關(guān),且?(fx0,fy0),若滿足?ε>0,?δ(ε)>0,當(dāng)t≥δ(ε)時(shí),d(fxt,fut)≤ε恒成立,則稱系統(tǒng)滿足“回聲狀態(tài)條件”。
設(shè)傳感器節(jié)點(diǎn)數(shù)為M,第m個(gè)節(jié)點(diǎn)上的輸入神經(jīng)元數(shù)為Km,隱含層神經(jīng)元數(shù)為Nm,輸出神經(jīng)元數(shù)為Lm。輸入神經(jīng)元數(shù)、內(nèi)部神經(jīng)元數(shù)、輸出神經(jīng)元數(shù)分別為
(3)
分別將輸入、隱含層和輸出表示為以下列向量的形式
(4)
x(n+1)=f(Winu(n+1)+Wx(n))
(5)
式中x(n+1)為各傳感器數(shù)據(jù),f為內(nèi)部神經(jīng)元的激活函數(shù)f的向量函數(shù)f=tanh,選取雙曲正切函數(shù)作為激活函數(shù),輸入與輸出之間為線性關(guān)系。
為節(jié)省占用的內(nèi)存,因此,在全網(wǎng)絡(luò)內(nèi)僅搭建一個(gè)DRNN,從而僅利用相鄰節(jié)點(diǎn)間的通信,實(shí)現(xiàn)“回聲狀態(tài)條件”。和ESN一樣,DRNN在遞歸層中使用隨機(jī)生成且保持不變的神經(jīng)單元——儲(chǔ)備池,并且在訓(xùn)練過程中只改變與輸出單元的連接權(quán)值。
每一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)都分布有神經(jīng)元,將神經(jīng)元之間的連接限制在傳感器節(jié)點(diǎn)附近,這樣就可以在傳感器網(wǎng)絡(luò)上布置一個(gè)DRNN,DRNN的所有內(nèi)部連接權(quán)值隨機(jī)生成后不再改變。此外,為了進(jìn)一步減少節(jié)點(diǎn)間的通信,僅在同一個(gè)傳感器節(jié)點(diǎn)上施加輸入,輸出與所有傳感器節(jié)點(diǎn)相連,輸出單元從儲(chǔ)備池的部分區(qū)域和鄰近節(jié)點(diǎn)的儲(chǔ)備池獲取輸入。
由于激活向量分布在多個(gè)傳感器節(jié)點(diǎn)上,不同節(jié)點(diǎn)之間也會(huì)有連接,因此,需要為其指定存儲(chǔ)空間,以存儲(chǔ)相鄰傳感器節(jié)點(diǎn)上神經(jīng)元的輸入權(quán)值。輸出神經(jīng)元僅向前激活相鄰節(jié)點(diǎn)的神經(jīng)元,而不對其權(quán)值進(jìn)行更改。作為之前指定的存儲(chǔ)相距較遠(yuǎn)節(jié)點(diǎn)數(shù)據(jù)的相鄰神經(jīng)元,需要使用相同的時(shí)間間隔來處理數(shù)據(jù),利用代理神經(jīng)元可以滿足這樣的需求。將更新后的連接權(quán)值傳送到相鄰的代理神經(jīng)元,相鄰節(jié)點(diǎn)就可以使用該權(quán)值。該權(quán)值被使用以后,代理神經(jīng)元存儲(chǔ)的數(shù)據(jù)就會(huì)自動(dòng)刪除。這樣就可以避免因兩個(gè)節(jié)點(diǎn)之間通信失敗而導(dǎo)致數(shù)據(jù)傳輸錯(cuò)誤。
以輸入和輸出神經(jīng)元的時(shí)間序列作為訓(xùn)練數(shù)據(jù)。通過訓(xùn)練DRNN來預(yù)測鄰近故障節(jié)點(diǎn)上的傳感器數(shù)據(jù)。 首先,通過采集內(nèi)部網(wǎng)絡(luò)狀態(tài)獲取權(quán)值矩陣M和輸出矩陣T。當(dāng)訓(xùn)練數(shù)據(jù)傳輸?shù)捷斎肷窠?jīng)元時(shí),采樣過程完成;然后,從每一階段的訓(xùn)練數(shù)據(jù)中,選取DRNN的一個(gè)內(nèi)部激活向量和一個(gè)輸出激活向量,采樣到的數(shù)據(jù)存儲(chǔ)在更新后的矩陣M和T中。通過隱含層神經(jīng)元個(gè)數(shù)N,輸出神經(jīng)元個(gè)數(shù)L和訓(xùn)練步數(shù)S,最終得到S×N階權(quán)值矩陣N和S×L階輸出矩陣T。在每個(gè)傳感器節(jié)點(diǎn)上使用Mj和Tj來改變輸出權(quán)值。Mj僅包含輸入神經(jīng)元、內(nèi)部神經(jīng)元和輸出神經(jīng)元的權(quán)值,Tj包括輸出神經(jīng)元的輸出權(quán)值。利用式(6)計(jì)算每個(gè)節(jié)點(diǎn)的輸出權(quán)值矩陣
(Wout)T=M-1T
(6)
根據(jù)在陜西省山陽縣12個(gè)地質(zhì)災(zāi)害監(jiān)測點(diǎn)布設(shè)的傳感器,分別通過雨量傳感器、土壤含水率傳感器、孔隙水壓力傳感器、地聲傳感器、次聲傳感器和泥位傳感器對相應(yīng)的泥石流災(zāi)害影響因子數(shù)據(jù)進(jìn)行監(jiān)測[16],選取其中1 000組數(shù)據(jù)用于網(wǎng)絡(luò)訓(xùn)練。采用MATLAB軟件進(jìn)行仿真,仿真平臺(tái)由6個(gè)傳感器節(jié)點(diǎn)搭建而成,這6個(gè)節(jié)點(diǎn)排列在2×3的網(wǎng)格上,每個(gè)節(jié)點(diǎn)都有1只傳感器,且各節(jié)點(diǎn)均可與鄰近的節(jié)點(diǎn)進(jìn)行通信,其結(jié)構(gòu)如圖1所示。
圖1 傳感器節(jié)點(diǎn)結(jié)構(gòu)
模擬10 %的傳感器節(jié)點(diǎn)發(fā)生故障時(shí)的情形。開始使用100組數(shù)據(jù)進(jìn)行訓(xùn)練,逐漸增加訓(xùn)練數(shù)據(jù),最終達(dá)到1 000組,訓(xùn)練效果如圖2所示。圖中顯示,土壤含水率傳感器發(fā)生故障時(shí)系統(tǒng)預(yù)測泥石流發(fā)生概率的歸一化根均方誤差(normalized root mean square error,NRMSE)、孔隙水壓力傳感器發(fā)生故障時(shí),系統(tǒng)預(yù)測泥石流發(fā)生概率的NRMSE和所有傳感器分別發(fā)生故障時(shí),系統(tǒng)預(yù)測泥石流發(fā)生概率的平均NRMSE。
圖2 不同訓(xùn)練樣本的預(yù)測效果對比
土壤含水率傳感器故障和孔隙水壓力傳感器故障時(shí),泥石流發(fā)生概率預(yù)測值的NRMSE和平均絕對百分比誤差(mean absolute percentage error,MAPE)的變化情況如表1所示。
表1 部分傳感器故障時(shí)的NRMSE與MAPE對比
表1數(shù)據(jù)表明:當(dāng)樣本數(shù)據(jù)較少時(shí),孔隙水壓力傳感器數(shù)據(jù)短時(shí)間內(nèi)變化很大,該傳感器數(shù)據(jù)對應(yīng)的預(yù)測值MAPE變化較大,而NRMSE變化較小,因此,采用NRMSE對故障進(jìn)行衡量更加可靠。對于數(shù)值變化較小的土壤含水率傳感器數(shù)據(jù),對應(yīng)預(yù)測值的NRMSE和MAPE都較小,但顯然用NRMSE來表征故障更合理。
將儲(chǔ)備池神經(jīng)元的數(shù)量從1個(gè)逐漸增加至30個(gè),每個(gè)節(jié)點(diǎn)上的儲(chǔ)備池神經(jīng)元個(gè)數(shù)從1個(gè)增加到30個(gè)的NRMSE變化情況如圖3所示。土壤含水率傳感器故障和孔隙水壓力傳感器故障時(shí),不同數(shù)量儲(chǔ)備池神經(jīng)元對應(yīng)泥石流發(fā)生概率預(yù)測值的NRMSE和MAPE對比情況如表2所示。
圖3 不同儲(chǔ)備池神經(jīng)元數(shù)量的預(yù)測誤差對比
表2 不同數(shù)量儲(chǔ)備池神經(jīng)元的NRMSE和MAPE對比
結(jié)合圖3和表2可以看出,當(dāng)只有孔隙水壓力傳感器發(fā)生故障時(shí),儲(chǔ)備池神經(jīng)元數(shù)量較少的情況下,隨著儲(chǔ)備池神經(jīng)元數(shù)量的增加,NRMSE逐漸減小,當(dāng)儲(chǔ)備池神經(jīng)元數(shù)量增加到一定程度時(shí),最終NRMSE趨于穩(wěn)定;當(dāng)只有土壤含水率傳感器發(fā)生故障時(shí),儲(chǔ)備池神經(jīng)元數(shù)量較少的情況下,NRMSE的變化并無明顯規(guī)律,隨著儲(chǔ)備池神經(jīng)元數(shù)量的增加,NRMSE逐漸減少,當(dāng)儲(chǔ)備池神經(jīng)元數(shù)量增加到一定程度后,NRMSE反而呈上升趨勢;對于所有傳感器發(fā)生故障時(shí)的平均NRMSE,當(dāng)隨儲(chǔ)備池神經(jīng)元數(shù)量達(dá)到10時(shí),平均NRMSE已經(jīng)穩(wěn)定,繼續(xù)增加儲(chǔ)備池神經(jīng)元數(shù)量,預(yù)測效果并無明顯變化。以上分析表明,為每個(gè)傳感器節(jié)點(diǎn)分配一個(gè)ESN(采用全局通信的方式),每個(gè)ESN上有120個(gè)內(nèi)部神經(jīng)元,相當(dāng)于DRNN的每個(gè)節(jié)點(diǎn)上有20個(gè)內(nèi)部神經(jīng)元,對于泥石流發(fā)生概率為64.8 %的實(shí)驗(yàn)樣本,分別從鏈路質(zhì)量10 %開始,一直到鏈路質(zhì)量100 %,對兩種模型進(jìn)行訓(xùn)練,結(jié)果如圖4所示。表3列出了DRNN和ESN不同鏈路質(zhì)量對應(yīng)的NRMSE和MAPE。
圖4 不同鏈路質(zhì)量預(yù)測結(jié)果
表3 不同鏈路質(zhì)量的NRMSE和MAPE對比
從圖4和表3中明顯可以看出,當(dāng)鏈路質(zhì)量從10~100 %變化時(shí),DRNN的預(yù)測結(jié)果始終在實(shí)際值附近變動(dòng),而ESN雖然最終的預(yù)測結(jié)果也很接近實(shí)際值,但是對于鏈路質(zhì)量較差的情況,預(yù)測結(jié)果偏離實(shí)際值較遠(yuǎn),預(yù)測效果并不理想。也就是說,隨著鏈路質(zhì)量的下降,使用ESN預(yù)測值的預(yù)測結(jié)果迅速發(fā)散。只有當(dāng)幾乎所有的傳輸數(shù)據(jù)都正常時(shí),ESN才具有較好的效果。
采用十折交叉法進(jìn)行驗(yàn)證,NRMSE如圖5所示。從1 %的故障傳感器開始,逐漸增加故障傳感器的數(shù)量。從圖5中兩種不同方法的NRMSE對比曲線可以看出,當(dāng)只有很少的傳感器發(fā)生故障時(shí),使用異常數(shù)據(jù)對泥石流發(fā)生概率進(jìn)行預(yù)測和使用DRNN預(yù)測值對泥石流發(fā)生概率進(jìn)行預(yù)測,誤差NRMSE幾乎一致且非常小。隨著傳感器故障數(shù)的增加,使用DRNN預(yù)測值對泥石流發(fā)生概率進(jìn)行預(yù)測的NRMSE緩慢增加,當(dāng)50 %的傳感器節(jié)點(diǎn)發(fā)生故障時(shí),NRMSE為0.35左右,直到傳感器故障節(jié)點(diǎn)數(shù)超過90 %以后,NRMSE才急劇增加;而使用故障傳感器反饋的異常數(shù)據(jù)對泥石流發(fā)生概率進(jìn)行預(yù)測的NRMSE很快便達(dá)到0.5以上,最終幾乎達(dá)到0.9。
圖5 DRNN預(yù)測值和異常數(shù)據(jù)預(yù)測效果對比
本文將DRNN引入多傳感器泥石流災(zāi)害監(jiān)測預(yù)警系統(tǒng),當(dāng)有節(jié)點(diǎn)發(fā)生故障或其他原因?qū)е聰?shù)據(jù)傳輸異常時(shí),通過訓(xùn)練DRNN識(shí)別故障傳感器,同時(shí)依據(jù)相鄰節(jié)點(diǎn)信息對傳感器數(shù)據(jù)進(jìn)行預(yù)測,并利用預(yù)測值代替異常數(shù)據(jù)對泥石流發(fā)生概率進(jìn)行預(yù)測。該方法保留了ESN計(jì)算復(fù)雜度低的優(yōu)點(diǎn),整個(gè)訓(xùn)練過程中,只有加法、乘法和激活函數(shù)tanh(x)的運(yùn)算。
1)訓(xùn)練樣本越多,DRNN訓(xùn)練效果越好,本文的研究僅基于1 000組的訓(xùn)練樣本,故研究結(jié)果具有一定的局限性;
2)DRNN的訓(xùn)練效果取決于儲(chǔ)備池神經(jīng)元的數(shù)量,但并非儲(chǔ)備池神經(jīng)元數(shù)量越多,DRNN的訓(xùn)練效果就越好;
3)當(dāng)鏈路質(zhì)量下降時(shí),DRNN依然具有比較好的預(yù)測效果;
4)對于由于惡劣環(huán)境因素影響而發(fā)生故障的情況,DRNN具有較好的可靠性。