利用深度學習從感測器數據中自動進行損傷識別的新方法
深度學習演算法實在是太火了,而且與多年前曾經紅極一時的傳統「人工神經網路(ANN)」相比(從概念上講,深度學習也屬於神經網路的一種),又具有很強的可靠性,已經在金融、互聯網、機器人等領域有了實質性的進步。因此,雖然依舊是「黑箱技術」,但已經可以在解決具體問題的時候將其視為一種靠譜的選擇了。
作為一種新技術,深度學習也會給土木工程領域提供新的解決方案,之前咱們分享過在裂縫觀測和橋型選擇方面的嘗試,今天再分享由暨南大學馬宏偉教授課題組提出的橋樑監測新方法:利用深度學習從感測器數據中自動進行損傷識別。
Lin Y Z, Nie Z H, Ma H W. Structural Damage Detection with Automatic Feature‐Extraction through Deep Learning[J]. Computer‐aided Civil & Infrastructure Engineering, 2017(6). (作者為:林逸洲,聶振華,馬宏偉)
問題的提出
大型橋樑作為重要的公共基礎設施,在運營期間的安全性是非常關鍵的指標。因此,為了確保其在服役期間的結構完整性,對大橋結構進行及時的、準確的檢測就是一件非常重要的工作。
目前常見的措施,是在橋樑施工期間就在結構內部安裝足夠數量和類型的多種感測器,在橋樑運營期間不斷地獲取橋樑的動力響應數據。這項工作會在長時間內收集到海量數據,然而很多時候,這些看起來很讓人有成就感的時間歷程曲線,對得到真實結構損傷狀態來說,並沒有太大的用處。
這首先是感測器得到的數據精度和存在大量「噪音」,許多科學家致力於解決這兩方面問題,但效果還不是太理想。
因此在大多數的實際工作中,對數據處理的最重要的工作,就是進行特徵提取。當把低層次感測器信號轉換為重要的損傷敏感的特徵,下一步的工作就相對容易實現了。
特徵提取的一種方法是計算結構的動態特徵,隨後通過監控這些特徵的變化來進行損傷檢測。自振頻率是一個主流的研究對象,但這有個局限,帶有多種損傷的實際結構的自然震動很難提取到合適的特徵值,而且結構損傷通常都是局部損傷,而自振頻率又是一個描述結構整體屬性的量。
另一個思路,是振型。相對於自振頻率,振型對局部損傷更敏感,且對環境因素,如溫度等,相對於自振頻率不敏感。因此近年來許多研究傾向於將損傷和振型聯繫起來。例如作為振型的二階導數,振型曲率在局部損傷定位方面有不錯的表現。
然而,就目前來看,伴隨加速度感測器量測全過程的噪音,則始終得不到解決,這實際上給後續的分析工作帶來了許多麻煩,也降低了結果的可靠性。
「正常」!2017年12月2日13時16分,捷克首都伏爾塔瓦河上一座人行橋樑上的感應器最後一次發回信號後, 橋面突然坍塌,斷成數截。橋面上至少4名行人掉入河中,其中兩人重傷——這說明橋樑健康監測系統也不一定能成為橋樑」護身符「
為什麼要引入深度學習
再換一個思路,採用另一種「數據驅動」的思想:「可否只從感測器的擾動數據中讀取損傷敏感特性,而不再需要結構的模型?」,比如感測器中檢測到信號突然的變化,是否意味著某些位置產生了損傷?
在損傷識別領域,人工神經網路(ANN)已經有了很多年的應用,雖然取得了不錯的效果,但是神經網路的性能幾乎完全取決於所選取的輸入特徵數據,輸入數據的缺陷將導致神經網路的性能變差——如何選擇輸入數據,這需要具有豐富經驗的科學家/工程師,然而這是稀缺資源,你懂的。
為了突破這個局限,採用深度學習領域中的卷積神經網路,convolutional neural network (CNN),這將無需人工干預,直接從感測器的原始信號中得到所需的結果。深度學習的優勢是根據大數據可以進行自我的進化,自我修正。
因此,當引入深度學習演算法,可以把之前比較困難的工作自動化,這就非常有意義了。
如何實現
先來看一下流程圖
數據獲取
深度學習需要大量數據,這些數據最好覆蓋各種橋型、各種工況,然而這在實際工程中是無法做到的——起碼我們無法收集到大橋經歷輕微損傷嚴重損傷瀕臨倒塌的這個損傷發展全過程的數據,實測得到的數據全部都是在很接近理想狀態的「輕微損傷」下得到的。
因此,需要用數值模型來作為數據源:
這是一個簡支梁,利用MATLAB建立有限元模型,定義好模型的幾何參數、材料參數以及進行單元劃分。
利用調整目標單元的高度和剛度來模擬損傷,考慮6種工況,其中一個為結構完整狀態,另5個為模擬10%、20%、30%、40%、50%五個級別的損傷程度。對1~9個節點,施加符合高斯分布的隨機瞬時激勵。
由已知屬性的有限元模型、已知的損傷程度和位置參數進行的每一個組合,都可得到相對應的結構響應——這就是訓練深度學習網路的基礎資料庫。
數據增廣
然而深度學習需要的數據量實在太大,而且需要更完整。於是需要進行數據的增廣:
訓練深度學習網路
將訓練好的數據,放入深度學習網路中進行網路訓練。
作者利用Python的Tensorflow和Keras包在GPU上建立深度學習網路,硬體部分則用了Inter Core i7-4720HQ and NVIDA GTX970M。
對比驗證
深度學習網路的結構損傷識別效果究竟如何?這需要和一種公認可行的方法進行對比,作者選擇了小波分析。即用同一組數據,兩種方法進行計算,並進行結果對比。
結果如何
這篇文章的篇幅很長,我在這裡只借用幾幅圖來說明:
首先考慮深度學習和小波分析之間的精度對比,根據Table 5,Fig 9中的1、3為是否考慮雜訊情況下的深度學習精度,2、4為對應情況下的小波分析結果精度,事實證明深度學習完勝。
即便對於更複雜,也是更符合實際情況的多點損傷的判斷,深度學習網路的精度也很高:
深度學習甚至還自己學習出來了結構的三階振型:
還可以分析出損傷的位置:
就此,可以下結論了,深度學習網路比當前常用的小波分析法更精準,效果更好,獲得的分析結論更符合實際情況。
彩蛋
通常情況下,提出一種新方法並驗證其準確之後,這篇文章就可以寫完了,然而作者還是補充討論了一個問題:如何看待深度學習網路的黑箱問題?
作者用調整計算參數的辦法,試圖把黑箱可視化,解釋深度學習網路私下裡都做了些什麼事兒:
作者認為,神經網路學習到的是一個個帶通濾波器,獨立學習到了結構模態的概念。
要知道,深度學習演算法是一種數據處理演算法,本質上是沒有物理意義的,但在具體問題上,作者針對訓練好的網路,解釋出了其學習的機理,這個思路非常值得借鑒!
另一個彩蛋,則是作者提出的一個課題:上面都說過了,實際結構中得到的數據是不完整的,要想訓練深度學習網路,只能借用有限元模型來幫忙,然而模型和實際結構在損傷分布方面畢竟是有差異的,那這個問題又該如何解決呢?
TAG:十千牛 |