王麗蓉,鄭東健
(1.河海大學(xué) 水利水電學(xué)院,南京 210098;2.河海大學(xué) 水資源高效利用與工程安全國家工程研究中心,南京 210098;3.河海大學(xué) 水文水資源與水利工程科學(xué)國家重點(diǎn)實(shí)驗(yàn)室,南京 210098)
為保證大壩安全,防止工程災(zāi)害發(fā)生,有必要做好大壩安全監(jiān)測及評價工作。監(jiān)測系統(tǒng)故障造成的測量誤差及結(jié)構(gòu)安全狀態(tài)的變化使監(jiān)測數(shù)據(jù)表現(xiàn)出多種異常模式,準(zhǔn)確識別異常值為判斷異常原因及分析大壩運(yùn)行狀態(tài)奠定基礎(chǔ)。傳統(tǒng)異常值識別方法有數(shù)學(xué)統(tǒng)計法、數(shù)學(xué)模型法等。常用的數(shù)學(xué)統(tǒng)計法如格拉布斯判別法忽略了監(jiān)測數(shù)據(jù)隨時間變化的特性,只能判斷監(jiān)測數(shù)據(jù)中的最小、最大值是否異常[1];回歸模型法考慮了監(jiān)測數(shù)據(jù)與溫度、水位及大壩運(yùn)行年限的關(guān)系[2],但是計算分析過程比較復(fù)雜。
卷積神經(jīng)網(wǎng)絡(luò)(CNN)是一種由多個處理層疊加而成的深度神經(jīng)網(wǎng)絡(luò),具有自主抓取數(shù)據(jù)特征的特點(diǎn)和優(yōu)秀的分類能力,適合二維數(shù)據(jù)處理(如圖像識別),也能夠解決可以轉(zhuǎn)化為二維數(shù)據(jù)且具有較強(qiáng)局部相關(guān)性的問題[3]?;贑NN的結(jié)構(gòu)健康監(jiān)測研究主要集中在損傷識別[4]和裂紋檢測兩方面[5],另外CNN還廣泛應(yīng)用于各個領(lǐng)域的圖像分類問題,如作物品種識別[6]、艦船目標(biāo)識別[7]、斷層識別[8]。
利用CNN進(jìn)行數(shù)據(jù)異常識別,可以解決非最值異常點(diǎn)難以辨別的問題,并減輕數(shù)據(jù)處理壓力。運(yùn)行期大壩安全監(jiān)測得到的監(jiān)測數(shù)據(jù)往往是隨時間周期性變化的序列,使得同一監(jiān)測點(diǎn)在不同時間段形成的監(jiān)測數(shù)據(jù)-時間過程線存在一定相似性,而異常數(shù)據(jù)則表現(xiàn)出顯著差異。由原始監(jiān)測數(shù)據(jù)繪制監(jiān)測數(shù)據(jù)過程線,然后將過程線以圖像形式輸入CNN,利用CNN自主提取圖像特征,并根據(jù)是否存在異常和異常種類將其分為6種類型;進(jìn)一步對CNN進(jìn)行改進(jìn),在分類完成后繼續(xù)搜索異常位置。在監(jiān)測過程中監(jiān)測數(shù)據(jù)實(shí)時轉(zhuǎn)化為過程線,利用CNN定時檢測新增數(shù)據(jù)是否異常,可以實(shí)現(xiàn)自動、及時預(yù)警,讓現(xiàn)場工作人員及時了解大壩安全狀況。
本文基于CNN提出一種監(jiān)測數(shù)據(jù)異常識別模型,以單個及多個突跳點(diǎn)、震蕩段、臺階、臺坎為監(jiān)測數(shù)據(jù)異常模式,以原始監(jiān)測數(shù)據(jù)繪制的過程線圖像為輸入數(shù)據(jù),提取圖像特征,同時識別異常類型和異常位置。CNN用于過程線圖像分類,將其分為無異常過程線、1個突跳點(diǎn)過程線、3個突跳點(diǎn)過程線、震蕩段過程線、臺階過程線、臺坎過程線6種類別;若存在異常,則調(diào)用原始輸入數(shù)據(jù)搜索異常位置,模型的識別過程見圖1。由于異常監(jiān)測數(shù)據(jù)不足,本文采用MatLab模擬生成的過程線圖像作為試驗(yàn)數(shù)據(jù)。
圖1 CNN模型數(shù)據(jù)異常識別過程Fig.1 Process of identifying anomalies of data by CNN
所提方法的實(shí)現(xiàn)步驟為:①采用MatLab模擬生成訓(xùn)練、測試數(shù)據(jù);②利用訓(xùn)練數(shù)據(jù)訓(xùn)練CNN模型;③利用測試數(shù)據(jù)檢驗(yàn)CNN模型的分類性能。步驟②和步驟③均采用圖1所示識別過程,區(qū)別在于試驗(yàn)數(shù)據(jù)不同,且步驟②不斷調(diào)整CNN網(wǎng)絡(luò)參數(shù)。
將數(shù)據(jù)異常識別問題轉(zhuǎn)化為圖像分類問題,使用CNN作為特征提取器和分類器對監(jiān)測數(shù)據(jù)過程線圖像進(jìn)行分類,將屬于同一監(jiān)測點(diǎn)的監(jiān)測數(shù)據(jù)按相同時間長度劃分為若干段,并分別生成監(jiān)測數(shù)據(jù)過程線,若過程線存在突跳點(diǎn)、震蕩段、臺階、臺坎則認(rèn)為數(shù)據(jù)異常。設(shè)置過程線圖像類別如下:
(1)第1類:有1個突跳點(diǎn)(1個突跳點(diǎn)過程線)。
(2)第2類:無異常點(diǎn)(無異常過程線)。
(3)第3類:有1個震蕩段(震蕩段過程線)。
(4)第4類:存在臺階(臺階過程線)。
(5)第5類:有3個突跳點(diǎn)(3個突跳點(diǎn)過程線)。
(6)第6類:存在臺坎(臺坎過程線)。
CNN模型的輸入數(shù)據(jù)為監(jiān)測數(shù)據(jù)過程線圖像;輸出數(shù)據(jù)為圖像編號、圖像類別及異常位置。
2.1.1 Momentum權(quán)值調(diào)整
采用反向傳播算法mini batch方案訓(xùn)練CNN,每10個數(shù)據(jù)為一組(batch size=10),采用Momentum方法調(diào)整網(wǎng)絡(luò)參數(shù)。這意味著訓(xùn)練CNN時每輸入10個數(shù)據(jù),層間權(quán)值及卷積核就從輸出層到輸入層反方向地更新一次。以層間權(quán)值為例,采用Momentum方法的優(yōu)點(diǎn)是使權(quán)值調(diào)整有方向性,提高訓(xùn)練的穩(wěn)定性和訓(xùn)練速度。式(1)是Momentum方法的實(shí)現(xiàn)過程,可見每次的權(quán)值更新都包含之前的更新量,使得之前的更新量總是對新的權(quán)值調(diào)整產(chǎn)生影響,保證了權(quán)值調(diào)整的方向性,由于β<1,這種影響隨步驟推移而減弱[9]。
式中:Δw為權(quán)值改變量;α為學(xué)習(xí)率;δ=φ′(v)e,φ′為當(dāng)前節(jié)點(diǎn)激勵函數(shù)的導(dǎo)數(shù),v為當(dāng)前節(jié)點(diǎn)輸出的加權(quán)和,e為當(dāng)前節(jié)點(diǎn)的誤差;x若在中間層,為上一神經(jīng)元節(jié)點(diǎn)輸出,若在輸入層,為神經(jīng)網(wǎng)絡(luò)輸入;β為動量參數(shù);m-為上一步的Momentum(動量);m為Momentum;w為權(quán)值。
2.1.2 ReLU與softmax激勵函數(shù)
激勵函數(shù)是神經(jīng)網(wǎng)絡(luò)的重要組成部分,它將網(wǎng)絡(luò)從線性映射轉(zhuǎn)化為非線性映射,從而提高神經(jīng)網(wǎng)絡(luò)的表達(dá)能力[3]。sigmoid函數(shù)見式(2),圖像見圖2(a)。
sigmoid函數(shù)導(dǎo)數(shù)易于計算且輸出在0~1之間,被廣泛用作激勵函數(shù),但當(dāng)其輸出接近0或1時,梯度總是接近0,即“梯度消失”,導(dǎo)致權(quán)值更新無法從輸出端向輸入端傳遞,使深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練停滯。為克服sigmoid函數(shù)的缺點(diǎn),CNN隱藏層采用ReLU激勵函數(shù),見式(3),圖像見圖2(b),當(dāng)輸入為負(fù)時輸出0,輸入為正時輸出原數(shù)。在函數(shù)右側(cè)梯度不會消失,這一優(yōu)點(diǎn)使神經(jīng)網(wǎng)絡(luò)的訓(xùn)練速度高于使用sigmoid函數(shù)[10],且ReLU函數(shù)形式簡單,降低了計算負(fù)荷。
圖2 激勵函數(shù)Fig.2 Activation functions
本文利用CNN解決六元分類問題,分類器應(yīng)存在6個輸出節(jié)點(diǎn),輸出層采用softmax激勵函數(shù),見式(4)。
式中v(i)(i=1、2、3、4、5、6)表示第i個輸出節(jié)點(diǎn)的加權(quán)和。softmax函數(shù)將加權(quán)和轉(zhuǎn)化為輸出向量,向量元素y(i)表示圖像為第i類的概率,0≤y(i)≤1,且例如輸出向量為(0.02,0.80,0.08,0.02,0.03,0.05)T,說明CNN認(rèn)為圖像為第1—第6類的概率分別是0.02、0.80、0.08、0.02、0.03、0.05,因此CNN最終輸出圖像類別為第2類。由于存在6類圖像,同時將圖像標(biāo)簽轉(zhuǎn)化為包含6個元素的標(biāo)簽向量,各元素值d(i)表示圖像為第i類的概率,元素d(i)等于0或1,且如第2類圖像的標(biāo)簽向量為(0,1,0,0,0,0)T。本文使用的訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)都包含圖像標(biāo)簽,統(tǒng)計CNN輸出類別與標(biāo)簽一致的圖像占所有圖像的百分比,可以檢驗(yàn)CNN的分類性能。
2.1.3 交叉熵函數(shù)
損失函數(shù)是對神經(jīng)網(wǎng)絡(luò)誤差的度量方式,以式(5)表示的交叉熵函數(shù)作為損失函數(shù),由2.1.2節(jié)知d等于0或1,則表達(dá)式轉(zhuǎn)化為式(6)。
式中:d為標(biāo)簽向量的元素;y為輸出向量的元素;E為交叉熵函數(shù)計算值。
函數(shù)圖像見圖3,可見當(dāng)y與d足夠接近時函數(shù)輸出趨近于0,而y與d的差異增大時,函數(shù)輸出以幾何增量增長,說明交叉熵函數(shù)對誤差敏感,因此由交叉熵函數(shù)導(dǎo)出的學(xué)習(xí)規(guī)則通常能獲得好的性能。
圖3 交叉熵函數(shù)Fig.3 Cross entropy function
為了識別異常點(diǎn)所在位置,對CNN進(jìn)行改進(jìn),增加異常位置搜索功能,搜索結(jié)果是用區(qū)間表示的異常位置范圍。圖4為搜索過程,每張圖像(28像素×28像素)完成分類后,再調(diào)用原始輸入數(shù)據(jù)進(jìn)入異常搜索區(qū)塊,為了盡量縮小異常位置范圍,選擇搜索步長為1像素。搜索塊高度為28像素,寬度根據(jù)各類圖像異常區(qū)域占圖像面積大小選擇,如圖4,第1、第4、第5類圖像的搜索塊采用1像素寬度,而第3、第6類圖像的搜索塊采用4像素寬度。
圖4 數(shù)據(jù)異常位置搜索過程Fig.4 Process of searching for the positions of anomalies
若分類結(jié)果為第1、第3、第4類圖像,搜索塊以1像素步長從左至右計算搜索塊覆蓋范圍的圖像像素強(qiáng)度平均值,遍歷圖像一次;若為第2類,輸出異常位置為“0”,表示無異常;若為第5類,搜索塊同上述操作遍歷圖像3次,以便搜索到3個突跳點(diǎn);若為第6類,遍歷圖像2次,以便搜索到臺坎左右兩端。
待識別圖像中過程線是白色而背景是黑色,使得圖像過程線區(qū)域的像素強(qiáng)度很大(200左右),而背景區(qū)域的像素強(qiáng)度為0,因此像素強(qiáng)度平均值最大的區(qū)域?yàn)閿?shù)據(jù)異常段。
每對一張圖像完成分類,就識別此圖像的異常位置,用區(qū)間(m,n)表示圖像異常位置范圍,第5類圖像的異常位置包含3個區(qū)間,分別表示3個突跳點(diǎn),其余5類分別包含1個區(qū)間;m、n分別表示異常范圍的左、右像素坐標(biāo),且m、n均為整數(shù),具體取值見表1。在實(shí)際應(yīng)用中,CNN得到的異常區(qū)間(m,n)可以根據(jù)橫坐標(biāo)數(shù)值轉(zhuǎn)化為具體時間段。
表1 m、n取值Table 1 Values of m and n
鑒于運(yùn)行期大壩的安全監(jiān)測數(shù)據(jù)過程線通常具有周期性,以正弦函數(shù)為基礎(chǔ)用MatLab軟件模擬生成6類28像素×28像素圖像及每張圖像對應(yīng)的類別標(biāo)簽,分別為:存在一個突跳點(diǎn)的正弦圖像(突跳點(diǎn)過程線,第1類)、無異常的正弦圖像(無異常過程線,第2類)、存在1個震蕩段的正弦圖像(震蕩段過程線,第3類)、存在臺階的正弦圖像(臺階過程線,第4類)、存在3個突跳點(diǎn)的正弦圖像(3個突跳點(diǎn)過程線,第5類)、存在臺坎的正弦圖像(臺坎過程線,第6類)。以65 000張圖像組成訓(xùn)練數(shù)據(jù)集,6 500張圖像組成測試數(shù)據(jù)集,訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集都混合了6類過程線圖像,且6類的數(shù)量比為第1類∶第2類∶第3類∶第4類∶第5類∶第6類=1∶1.5∶1∶1∶1∶1。
隨機(jī)選取繪圖參數(shù),生成形態(tài)各不相同的大量過程線圖像。圖5為部分示例。曲線存在凹狀和凸?fàn)?,異常段的最值不一定是整條曲線的最值,如圖5(a)左側(cè)2張圖像的突跳點(diǎn)既不是最大值也不是最小值,而圖5(a)右側(cè)2張圖像的突跳點(diǎn)分別為最大值、最小值,控制圖像生成過程使第1、第3、第5類圖像中“異常段包含最值”的概率為50%;異常點(diǎn)隨機(jī)出現(xiàn)在整條曲線的任何位置,且生成圖像的數(shù)量足夠多,充分完整地模擬異常數(shù)據(jù)及出現(xiàn)時間的多種可能性。
圖5 模擬過程線圖像Fig.5 Images that simulate process lines
構(gòu)建的CNN模型包含分類區(qū)塊和異常搜索區(qū)塊,結(jié)構(gòu)如圖6所示,其中分類區(qū)塊即為常規(guī)CNN,由一個特征提取器和一個分類器組成;搜索區(qū)塊已在2.2節(jié)中詳細(xì)介紹。CNN模型的輸入數(shù)據(jù)為監(jiān)測數(shù)據(jù)過程線圖像;輸出數(shù)據(jù)為圖像編號、圖像類別及異常位置。
圖6 CNN模型結(jié)構(gòu)Fig.6 Structure of CNN model
數(shù)據(jù)異常識別過程如下:監(jiān)測數(shù)據(jù)過程線圖像進(jìn)入特征提取器,輸入卷積層,通過卷積運(yùn)算提取圖像特征,一個圖像輸入卷積層后輸出多個攜帶不同特征的圖像;隨后經(jīng)ReLU激勵函數(shù)進(jìn)入池化層,將相鄰像素合并為單個像素,以降低數(shù)據(jù)維數(shù)和運(yùn)算負(fù)荷,并防止發(fā)生過擬合;池化后的二維圖像經(jīng)過向量化輸入分類器,通過隱藏層再經(jīng)ReLU激勵函數(shù)進(jìn)入softmax層進(jìn)行分類;最后由異常搜索區(qū)塊搜索異常位置。圖像編號、圖像類別和異常位置儲存在同一向量中輸出神經(jīng)網(wǎng)絡(luò)。
由于輸入28像素×28像素的灰度圖像,允許784(28×28)個輸入神經(jīng)元節(jié)點(diǎn)。卷積層包含20個9×9維的卷積濾波器,池化層使用1個2×2維的平均池化器,隱藏層由100個神經(jīng)元節(jié)點(diǎn)組成;由于圖像存在6個類別,構(gòu)造有6個神經(jīng)元節(jié)點(diǎn)的softmax層,即2.1.2節(jié)中分類器的6個輸出節(jié)點(diǎn)。模型結(jié)構(gòu)的參數(shù)見表2。
表2 CNN模型參數(shù)Table 2 Parameters of CNN model
編程軟件為MatLab,卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)方案采用mini batch,batch size設(shè)為10,學(xué)習(xí)率設(shè)為0.001,動量參數(shù)設(shè)為0.009 5,激勵函數(shù)采用ReLU和softmax函數(shù),損失函數(shù)為交叉熵函數(shù)。CNN模型遍歷全部(65 000個)訓(xùn)練數(shù)據(jù)一遍稱為訓(xùn)練1代,運(yùn)行程序4次,分別為訓(xùn)練2代、3代、5代、6代。每次運(yùn)行程序,在訓(xùn)練完成后都識別同樣的6 500個測試數(shù)據(jù)作為CNN分類準(zhǔn)確率測試方法,得到總體分類準(zhǔn)確率及各類圖像分類準(zhǔn)確率,見表3??梢娺\(yùn)行次數(shù)1、1個突跳點(diǎn)過程線識別錯誤數(shù)量為191,表明第1次運(yùn)行程序訓(xùn)練2代時,1 000張1個突跳點(diǎn)過程線測試圖像中有191張沒有被CNN識別為1個突跳點(diǎn)異常。
由表3可知:
(1)隨著訓(xùn)練代數(shù)增加,CNN圖像分類總體準(zhǔn)確率提高,訓(xùn)練6代時,總體準(zhǔn)確率達(dá)到最大值0.973 1。6種過程線的分類準(zhǔn)確率都至少為0.93,除1個突跳點(diǎn)過程線外,其余5種過程線的分類準(zhǔn)確率都在0.95以上。由于異常點(diǎn)不是最值的圖像占第1、第3、第5類圖像的50%,表明CNN對非最值異常點(diǎn)有較好的識別效果。
(2)隨著訓(xùn)練代數(shù)增加,1個突跳點(diǎn)過程線最終分類準(zhǔn)確率提升的倍數(shù)(1.149 6)最高;震蕩段、3個突跳點(diǎn)過程線準(zhǔn)確率略有增加;無異常過程線準(zhǔn)確率保持在0.95以上,臺階、臺坎過程線準(zhǔn)確率保持在1左右。
(3)每一次運(yùn)行程序,1個突跳點(diǎn)過程線的分類準(zhǔn)確率都低于其他5種過程線;分析認(rèn)為1個突跳點(diǎn)過程線識別準(zhǔn)確率相對較低的原因是突跳點(diǎn)在圖像中所占面積遠(yuǎn)小于其他類別,異常特征表現(xiàn)不明顯,與無異常圖像相似度高,增加了CNN特征學(xué)習(xí)的難度。
運(yùn)行程序訓(xùn)練6代,分別繪制6類待識別圖像的訓(xùn)練loss圖,見圖7。由圖7可知6類圖像的分類誤差隨訓(xùn)練進(jìn)程趨近于0,表明CNN的分類能力逐漸提高;訓(xùn)練3代后,1個突跳點(diǎn)和無異常過程線的損失起伏點(diǎn)重合度高,震蕩段和3個突跳點(diǎn)過程線的損失基本穩(wěn)定在0附近,而臺階和臺坎過程線的損失始終接近0,說明CNN傾向于將1個突跳點(diǎn)過程線與無異常過程線混淆。
表3 CNN圖像分類準(zhǔn)確率Table 3 Accuracy of image classification by CNN
圖7 訓(xùn)練loss圖Fig.7 Training loss
另外,選取了部分輸入圖像及其對應(yīng)的輸出數(shù)據(jù)制成表4,輸出數(shù)據(jù)是由圖像編號、圖像類別及異常位置組成的向量,可見CNN輸出可以定量展現(xiàn)數(shù)據(jù)異常識別結(jié)果。
表4 部分輸入輸出數(shù)據(jù)Table 4 Partial input and output data
本文基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)構(gòu)建了監(jiān)測數(shù)據(jù)異常識別模型,通過CNN圖像分類來識別監(jiān)測數(shù)據(jù)異常模式,并改進(jìn)CNN增加搜索異常數(shù)據(jù)位置的功能;通過人工生成的訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)分別訓(xùn)練和測試CNN模型,得到以下結(jié)論:
(1)隨著訓(xùn)練代數(shù)增加,CNN圖像分類準(zhǔn)確率提高,訓(xùn)練6代時,總體分類準(zhǔn)確率達(dá)到最大值0.973 1,6種過程線圖像的分類準(zhǔn)確率都至少為0.93。CNN對非最值異常點(diǎn)有較好的識別效果。
(2)CNN模型的輸出是一個包含圖像編號、圖像類別及異常位置的向量,定量展現(xiàn)出數(shù)據(jù)異常識別結(jié)果。