文/萬新民 中國十七冶集團有限公司 安徽馬鞍山 243000
卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,簡稱CNN 網(wǎng)絡)屬于典型的前饋神經(jīng)網(wǎng)絡,即先利用卷積和激活函數(shù)從原始信號中提取出包含的土木工程結構損傷信息,再利用池化層將提取出的信息重新壓縮。結構損傷信息經(jīng)卷積和池化后,會排列成向量形式,再通過“部分連接”方式向前不斷運算。隨后,卷積神經(jīng)網(wǎng)絡將擬研究對象轉化成目標函數(shù),并將真實值和預測值進行對比,計算出損失值。如損失值可接受,則中止運算。反之,由最后一層向前逐層反饋運算,直至模型收斂。
1.2.1 部分連接
相對于全連接層,卷積神經(jīng)網(wǎng)絡從A 層到第A+1 層的計算時,A 層中僅部分單元與A+1 層相連接,連接部分可稱之為網(wǎng)絡權重。部分連接方式可在盡量保留上一層特征信息的基礎上,將其傳遞給下一層,從而減小神經(jīng)網(wǎng)絡的計算量。如圖1 所示。
1.2.2 權值共享
由圖1 可知:卷積神經(jīng)網(wǎng)絡的第A 層包括5 個神經(jīng)元,黑色箭頭、橙色箭頭、紅色箭頭分別表示不同的網(wǎng)絡權值,且相同顏色箭頭的連接權值相同。通過權值共享,可大幅提升卷積神經(jīng)網(wǎng)絡的計算效率。
1.3.1 局部感受野
一般情況下,神經(jīng)網(wǎng)絡并不是直接卷積,而是利用局部感受野(Receptive Field)對局部區(qū)域逐步卷積,通過提取、分析局部信息,以獲得更高層次的信息特征。為了提高神經(jīng)網(wǎng)絡預測能力,局部感受野不能局限于矩形,可采用自由形狀。
1.3.2 卷積層
卷積層是神經(jīng)網(wǎng)絡中最關鍵的部分,屬線性層,層與層之間不完全連接,同一層的同一個卷積核可以權值共享,從而大幅減小計算量,避免模型過擬合。卷積實現(xiàn)具體過程如下:先用尺寸固定的卷積核在數(shù)據(jù)矩陣中滑動,在此期間卷積核的權值與原始數(shù)據(jù)中相應子域的數(shù)據(jù)相乘。同時,卷積核以固定的步長移動(先左右,再上下),不斷重復上述運算過程,直至形成一個全新矩陣。
1.3.3 池化層
在機器學習中,特征值會隨數(shù)據(jù)量的增加而增大,從而提高矩陣求解難度,甚至難以求解,這種現(xiàn)象稱之為“維度災難”。此時,可利用池化層(也叫下采樣層)對數(shù)據(jù)進行整合、壓縮,其具體作用如下:一是特征降維。池化層能使矩陣維度約減,能用較少的數(shù)據(jù)表達出較廣泛的信息,從而降低計算量;二是特征不變性。不變形包括了平移、旋轉、尺度不變性,池化層能使神經(jīng)網(wǎng)絡學習到的特征具有更強的泛化能力,從而適應復雜的特征變異。
結合相關研究成果,可將神經(jīng)網(wǎng)絡的池化劃分為有均值池化和最大值池化兩類,其數(shù)學模型可用式(1)表達[1]:
在卷積神經(jīng)網(wǎng)絡中,池化層可以提高其泛化能力。目前,一般用過擬合和欠擬合來度量神經(jīng)網(wǎng)絡的泛化能力。在神經(jīng)網(wǎng)絡訓練時,一旦跨越“最優(yōu)點”,模型的訓練誤差和泛化誤差變化呈相反趨勢,前者繼續(xù)減小,后者開始增加。
1.3.4 激活函數(shù)
激活層由若干個實函數(shù)組成,屬線性層,可將輸入數(shù)據(jù)進行非線性變換,從而提高神經(jīng)網(wǎng)絡的特征提取能力。結合相關研究成果,常用的激活函數(shù)有Sigmod 函數(shù)、ReLU 函數(shù)、Tanh 函數(shù)等,不同激活函數(shù)的表達式和應用特點見表1。
表1 神經(jīng)網(wǎng)絡激活函數(shù)對比
1.3.5 Softmax 層和損失函數(shù)優(yōu)化
Softmax 層的核心功能是利用Softmax 函數(shù)得到神經(jīng)網(wǎng)絡中各個輸入樣本的概率值,見式(2)
此外,在神經(jīng)網(wǎng)絡訓練期間,需對損失函數(shù)進行優(yōu)化,以降低損失值。當損失值達到穩(wěn)定狀態(tài)后,可視為神經(jīng)網(wǎng)絡的訓練完成。目前,常用隨機梯度下降算法來優(yōu)化損失函數(shù),即沿損失函數(shù)負梯度方向更新神經(jīng)網(wǎng)絡的權值、偏差等參數(shù),使損失函數(shù)減小,見式(3):
需注意,在每一次迭代過程均選用小子集,當子集覆蓋整個訓練集,即完成損失函數(shù)優(yōu)化。
數(shù)據(jù)的融合可劃分為三個層次:(1)數(shù)據(jù)級融合。將n 個傳感器所采集的原始數(shù)據(jù)融合,作為后續(xù)分析的基礎;(2)特征級融合。從n 個傳感器采集的原始數(shù)據(jù)中提取結構損傷特征信息,將損傷特征信息進行融合;(3)決策級融合。對不同方法所得到的損傷識別結果進行融合,提煉出結構的損傷特征,并做出最終決策。卷積神經(jīng)網(wǎng)絡的數(shù)據(jù)融合發(fā)生在Softmax 層,即利用Softmax 函數(shù)對土木工程結構損傷信號賦予不同權值,以便于實現(xiàn)各個損傷信號間的數(shù)據(jù)融合,并結合提取的損傷特征輸出結構損傷信息。需注意,在結構損傷數(shù)據(jù)融合前,要對各個信號的權重進行初始化(初始學習效率取0.00001),將權值控制在[0,1]區(qū)間內。
2.2.1 歸一化處理
結構損傷數(shù)據(jù)增廣處理前,要對數(shù)據(jù)進行歸一化處理,即將波動大的數(shù)據(jù)映射到一個固定區(qū)間([0,1]或[-1,1]),不僅能使異源數(shù)據(jù)具有可比性,還可提高神經(jīng)網(wǎng)絡模型計算速度和準確性,具體歸一化公式見式(4)[2]:
式中:x、y—分別為歸一化前、后的數(shù)值;b、a—分別為樣本數(shù)據(jù)的最大值和最小值。
2.2.2 數(shù)據(jù)增廣
隨著數(shù)據(jù)增廣技術的日益成熟,其應用范圍從圖像識別領域向工程領域擴展。對于卷積神經(jīng)網(wǎng)絡,結構損傷的檢測數(shù)據(jù)越多,損傷特征分析越準確。但由于各種自然因素和人為因素的限制,在實際項目中難以獲取大量的檢測數(shù)據(jù)樣本。為了解決這一問題,需對結構損傷數(shù)據(jù)樣本進行增廣處理。
土木工程結構損傷數(shù)據(jù)增廣可利用固定大小的滑動窗口,將采集信號或模擬信號在窗口內按一定的步長進行滑動,每一次滑動所得到的數(shù)據(jù)就是一個樣本。
文章以某橋梁結構數(shù)值模擬模型為研究對象,分析CNN 網(wǎng)絡的應用效果。模型長2.1m、寬0.5m、高0.3m,角鋼使用30mm×30mm×2mm 的L 型鋼,桿件與角鋼間用螺栓連接,兩端支撐假設為固定端。損傷構桿件為腹桿,共20 根(編號1#~20#)。腹桿出現(xiàn)損傷后,其剛度有明顯變化,故本文通過對各個腹桿的彈性模量進行折減來模擬其損傷。假設腹桿在無損狀態(tài)下的彈性模量為200Gpa,共設置9 中損傷程度,彈性模量分別折減10.0%(180 Gpa)、20.0%(160 Gpa)、30.0%(140 Gpa)、40.0%(120 Gpa)、50.0%(100 Gpa)、60.0%(80 Gpa)、70.0%(60 Gpa)、80.0%(40 Gpa)、90.0%(20 Gpa)。在采集信號時,分析步時長去4.0s,增量步取0.01。同時,對結構數(shù)值模型施加激振力后,模型的各個單元會產(chǎn)生加速度。本文共設置8個采集點來獲取加速度信號的采集,每個采集點有300個數(shù)據(jù),則加速度矩陣為300×8。
擬采用卷積神經(jīng)網(wǎng)絡對結構損傷進行診斷,關鍵步驟如下[3]:利用數(shù)值模擬方法得到結構損傷樣本集,并將其隨機劃分成訓練集、預測集→建立神經(jīng)網(wǎng)絡基本框架→神經(jīng)網(wǎng)絡超參數(shù)確定,選擇適當?shù)木矸e層數(shù)和迭代次數(shù)→將訓練集輸入神經(jīng)網(wǎng)絡中→利用隨機梯度下降算法來優(yōu)化損失函數(shù)→降噪能力測試→直至識別精確度滿足要求。
基于上文研究研究成果,搭建了用于分析土木工程結構損傷的神經(jīng)網(wǎng)絡框架,見圖2:
圖2 神經(jīng)網(wǎng)絡框架搭建
圖2 中的字母表示卷積神經(jīng)網(wǎng)絡模型的超參數(shù),其中n 為卷積核的個數(shù)(20 個),k 為卷積核尺寸(2×2),m 為池化層滑動窗口尺寸,F(xiàn) 為全連接層節(jié)點數(shù),b1、b2 為卷積層尺寸,c1、c2 為池化層尺寸。此外,神經(jīng)網(wǎng)絡的激活函數(shù)采用ReLU 函數(shù)[4]。
卷積神經(jīng)網(wǎng)絡模型的訓練結果與超參數(shù)大小密切相關。為了確定卷積神經(jīng)網(wǎng)絡超參數(shù),本文開展了若干組試驗,分析了卷積層數(shù)和迭代次數(shù)對神經(jīng)網(wǎng)絡模型識別精度的影響,試驗結果見圖3:
圖3 不同工況下神經(jīng)網(wǎng)絡模型的識別精度
由圖3 可知:(1)隨著卷次層數(shù)的增加,神經(jīng)網(wǎng)絡對結構損傷的識別精度呈先增大后減小的趨勢。當卷積層數(shù)為2~4 層時,神經(jīng)網(wǎng)絡的識別精度較大,均達到了80%以上。當卷積層數(shù)超過5 次,神經(jīng)網(wǎng)格的識別精度有下降趨勢。(2)隨著迭代次數(shù)的增加,卷積神經(jīng)網(wǎng)絡對結構損傷的識別精度不斷增加,但增加速率并不固定。當?shù)螖?shù)<3000 次時,結構損傷識別精度快速提升,識別精度最終穩(wěn)定在了90%左右。當?shù)螖?shù)超過3000 次,結構損傷識別精度變化不明顯,甚至略有減少。
上述現(xiàn)象表明:神經(jīng)網(wǎng)絡框架在建立時,卷積層數(shù)和迭代次數(shù)的取值不宜過高或過低,取值過高對神經(jīng)網(wǎng)絡的識別精確度提高幅度不大,反而會大幅降低模型訓練效率,產(chǎn)生模型過擬合問題;取值過小,神經(jīng)網(wǎng)絡對結構損傷的識別精確度低,不滿足工程需求。綜合考慮卷積神經(jīng)網(wǎng)絡模型的計算精度和計算效率,建議預測該橋梁結構模型損傷的卷積神經(jīng)網(wǎng)絡的卷積層數(shù)取3層,迭代次數(shù)取3000次。
文章以桿件彈性模量折減10%、30%、40%、60%、70%、80%后的加速度信號作為CNN 網(wǎng)絡的訓練集,用桿件彈性模量折減20%(輕度損傷)、50%(中度損傷)、90%(重度損傷)的加速度信號作為CNN 網(wǎng)絡的測試集。假設每個桿件視作一種損傷工況,則每一種結構損傷程度有20 個工況,訓練集中的6 種損傷程度共有120 中損傷工況。
3.5.1 損傷位置度識別
經(jīng)計算,得到了測試集的結構損傷位置識別準確性,見表2:
表2 結構損傷位置識別準確性
由表2 可知:結構損傷程度越嚴重,CNN 網(wǎng)絡對損傷位置的識別精確性較好。當結構損傷程度從輕度損傷到中度損傷,損傷位置識別精確性提高了7.6%;從中度損傷到重度損傷,損傷位置識別精確性提高了3.8%。
3.5.2 損傷程度識別
為了定量地評價CNN 網(wǎng)絡對結構損傷程度的識別精度,定義了絕對誤差C,見式(5)。一般情況下,絕對誤差越小,卷積神經(jīng)網(wǎng)絡模型對土木工程結構損傷的檢測效果越好。
式中:P—預測損傷程度,%;A—實際損傷程度,%。
隨后,利用卷積神經(jīng)網(wǎng)絡預測了部分桿件的損傷程度,并與實際損傷程度進行對比,如圖4 所示:
圖4 不同桿件的損傷程度識別結果
由圖3 可知:卷積神經(jīng)網(wǎng)絡對桿件損傷程度的預測值可能大于實際值,也可能小于實際值。經(jīng)計算,1#、3#、5#、7#、9#、11#、13#、15#、17#、19#桿件的損傷程度絕對誤差分別為1.8%、1.2%、1.3%、5.6%、1.2%、1.5%、1.3%、2.2%、2.7%,絕對誤差的平均值為1.3%,說明卷積神經(jīng)網(wǎng)絡的預測精確度可滿足土木結構損傷分析需求。
論文主要研究了CNN 網(wǎng)絡工作原理、具體結構組成、損傷數(shù)據(jù)處理方式等,并以某橋梁桿件為研究對象,分析了其在結構損傷識別中的具體應用,得到了以下4 個結論:(1)CNN 網(wǎng)絡屬于前饋神經(jīng)網(wǎng)絡,具有部分連接、權值共享兩大特點,主要由局部感受野、卷積層、池化層、Softmax 層、激活函數(shù)、損失函數(shù)等組成。(2)利用CNN 網(wǎng)絡檢測土木工程結構損傷需基于大量檢測數(shù)據(jù),且檢測數(shù)據(jù)的精確性直接決定了結構損傷檢測效果,故需對結構損傷數(shù)據(jù)進行融合和增廣。(3)神經(jīng)網(wǎng)絡檢測結構損傷要建立基本框架,選擇適當?shù)木矸e層數(shù)和迭代次數(shù)等。經(jīng)計算,神經(jīng)網(wǎng)絡對結構損傷的識別精度會隨卷積層數(shù)的增加先增大后減小,隨迭代次數(shù)的增加不斷增加。(4)為了驗證神經(jīng)網(wǎng)絡對結構損傷的檢測效果,可從損傷位置和損傷程度兩個方向著手。