張 帆 楊曉忠 王樹波
1(華北電力大學控制與計算機工程學院 北京 102206) 2(華北電力大學數理學院 北京 102206) 3(內蒙古自治區地震局 內蒙古 呼和浩特 010051)
天然地震的活動性是統計地震學的主要研究對象,也是地震預測工作的重要依據。地震臺網除了記錄到天然地震,還能記錄到非天然地震,非天然地震包括爆破、塌陷和采動影響的巖層破斷等。地震類型的識別錯誤會影響地震目錄的質量,并對地震學的相關研究產生影響[1]。在地震監測工作中,地震事件類型的區分主要依靠人工完成,依賴分析人員的知識和經驗[2]。隨著地震資料數量的增多,地震分析工作量也不斷增加,這增加了分析人員的負擔,受到經驗的限制和主觀性的影響,地震事件分類也會出現誤判。因此,實現地震的自動事件分類尤為重要。
不同事件類型在時域、頻域等方面的差異可以作為識別判據[3-5],這些研究成果為機器學習技術的應用建立了基礎。傳統的機器學習技術,如支持向量機和神經網絡等,可以以數據驅動的方式訓練模型參數,在地震事件分類上取得較好效果[6-9],這些方法需要大量的特征工程工作,可能丟失原始數據蘊含的有效信息。
近年來,深度學習在圖像和語音識別、自然語言處理等領域取得巨大進步。深度學習通過和人腦相似的自下而上的層級結構,將輸入端的數據逐層次提取[10],建立了底層數據到高層語義結構的映射。與傳統機器學習技術相比,深度學習對原始數據人工加工較少,較好利用有效信息,較復雜的模型結構和較多的模型參數能夠對復雜的非線性問題建模。深度學習技術在地震事件分類問題中獲得一定成功[11-12]。
內蒙古地區的爆破事件記錄較豐富,為地震事件分類算法的研究提供了一定數據基礎。本文將地震事件記錄經過短時傅里葉變換,轉換為對數時頻譜,并拆分為多維時間序列,使用了LSTM循環神經網絡實現地震事件分類。
內蒙古地震臺網自2008年網數字化以來,記錄了大量爆破事件,為地震分類研究提供了數據基礎。本文采用的原始數據選自2016年3月至2020年7月內蒙古地震臺網記錄的事件波形,包含420個爆破和480條天然地震事件,每個事件包含多個臺站的三分向記錄,本文選取了震中距在200 km范圍內的1 800條單臺垂直向記錄(包含天然地震事件和爆破事件各900條),圖1給出這些事件的射線,圖1顯示了天然地震、爆破和臺站的分布,并且每條記錄的臺站和事件位置連線,每一條連線對應一個數據樣本,黑色線為爆破記錄,灰色線對應天然地震記錄。天然地震事件在空間上分布比較均勻,爆破空間分布相對集中,天然地震的震級分布在0級到5級,爆破的震級一般在3級以下。

圖1 事件和臺站的連線
在數據預處理中,對每條記錄截取100 s記錄,截取起始點為初至震相前1 s。原始數據的采樣率為100 Hz,對信號進行高通濾波,保留1 Hz以上的信號,過濾掉了低頻的噪聲,之后進行了去傾斜和歸一化,為了同時提取事件記錄在頻域和時域的特征,我們對經過處理的波形記錄進行短時傅里葉變換,轉換為時頻譜,并進行取對數,使數據分布均勻,轉換后的數據為50×100的矩陣,對應頻域1~50 Hz、時域0~100 s的對數振幅譜。短時傅里葉變換使用窗函數將時域信號截取為多段,對每一段做傅里葉變換,本文使用漢寧窗,窗長2 s,重疊1 s,按時間拆分后得到特征數為50(對應1~50 Hz)、長度為100(對應1~100 s)的多維時間序列。圖2為數據處理的流程,圖3為拆分過程的圖示。

圖2 數據預處理流程

圖3 數據拆分過程
為了比較不同類型事件在時域和頻域的差異,對比了爆破和天然地震的原始記錄和功率譜曲線。圖4給出天然地震和爆破的波形對比,爆破的P波較發育,頻率成分較簡單[13],有面波成分。天然地震和人工爆破可以看作隨機信號,頻率分布服從一定的統計規律,功率譜密度可以作為識別判據放大地震和爆炸的頻域差異[12],圖5給出天然地震和爆破的功率譜曲線,兩類事件的曲線形態相似但略有差異。爆破在低頻能量分布多,隨著頻率增加功率譜逐漸衰減。天然地震在低頻部分的功率譜略低于爆破,隨著頻率升高逐漸升高,在5 Hz左右達到峰值,隨后平緩衰減。天然地震能量隨頻率升高而衰減的速度比爆破更平緩。

圖4 地震和爆破的波形對比

圖5 地震和爆破的功率譜曲線對比
將經過預處理的多通道時間序列作為輸入,選用的模型是序列處理中效果較好的LSTM神經網絡。
神經網絡由神經元構成,神經元的數學結構是對輸入經過線性變換后加上一個偏置項,再使用一個非線性的激活函數后輸出,從而模擬了生物神經元的激活過程。多層的神經網絡可以以任意精度逼近任意函數[14]。
LSTM神經網絡是常用的深度學習網絡結構之一,可以有效地對序列建模。長短期記憶(LSTM)網絡[15]解決了RNN網絡訓練中梯度爆炸和梯度消失等問題,LSTM包含相互作用的四個神經網絡層(圖6)。LSTM的遺忘門、輸入門和輸出門三個門控結構控制單元的輸入和輸出。遺忘門決定上一個時刻的狀態Ct-1有多少保留到當前時刻狀態Ct中。輸入門決定當前輸入xt有多少保存到Ct中,并更新單元狀態。輸出門通過運行一個Sigmoid層來確定單元狀態的哪個部分將輸出,接著把單元狀態通過tanh函數進行處理,得到一個在-1到1之間的值,最終確定輸出。將時序相反的兩個LSTM模型相結合構成雙向LSTM網絡(BiLSTM),在某些任務中效果更好。

圖6 LSTM單元結構
將處理后的數據隨機劃分為訓練集(1 500條)和測試集(300條),訓練集用于模型調參和訓練,測試集用于測試模型的泛化能力。
使用的模型前半部分由LSTM層構成,用于時間序列的特征提取,后半部分由全連接層組成,用于實現分類功能。為了確定最優的模型結構,從訓練集隨機分出一部分作為驗證集進行實驗,對比了四種網絡結構的準確率,四種結構前半部分如表1所示,后半部分為相同的兩個全連接層,迭代次數為1 000,根據測試的結果,選用了準確率最高的雙層雙向LSTM的網絡結構。

表1 不同模型的準確率對比
為了優化輸入數據的尺度,對比使用不同尺度數據的輸入時的準確率。經過預處理的數據為特征維度為50、長度100的時間序列,對應頻率0~50 Hz,事件100 s,每個特征對應帶寬1 Hz的頻段,序列每個時間點的間隔為1 s。我們對數據進行不同尺度的裁剪,分別減少特征維度和序列長度,保留較低頻段部分的時間序列前面的部分,設置訓練次數1 000,從訓練集隨機劃分20%的數據用于檢驗。圖7顯示了準確率隨輸入數據尺度的變化,橫坐標表示保留的時間序列長度,縱坐標表示保留的特征數,顏色表示最終準確率。圖6顯示,準確率隨著輸入數據的尺度增加而增高,但輸入數據達到一定尺度后,增加輸入的尺度對準確率影響不明顯。當輸入數據為40個通道、序列長度為40時(對應1~40 Hz、1~40 s的信息)準確率最高(98.33%),將該尺度作為最終選取的輸入尺度。

圖7 準確率隨輸入數據尺度的變化
為了避免過擬合,在每個BiLSTM層之后使用了dropout層,達到正則化的效果,在訓練階段,為了防止深層神經網絡過度擬合,隨機丟棄了一些網絡權值[16-17]。為了選取最優的丟棄比例,從訓練集隨機劃分出20%用于檢驗,圖8為準確率隨丟棄比例的變化,當丟棄比例為40%時,準確率達到最高98.3%,最終確定丟棄比例為40%。第一個dropout層忽略了從第一個BiLSTM層接收到的40%輸入,數據被輸入下一個BiLSTM層,第二個dropout層忽略了第二個從BiLSTM層接收到的40%輸入,并傳入全連接層,把全連接層的部分神經隱藏,提高模型的泛化能力。

圖8 準確率隨丟棄比例變化
最終選定的輸入為40個特征、長度40的多通道時間序列,模型包含兩個雙向LSTM層和兩個全連接層,每個雙向LSTM層含有100個隱藏單元,第一個雙向LSTM層是多對多數出,輸出每個時刻的狀態;第二個雙向LSTM層是多對單的輸出,將最后一步前向和后向流的輸出連接起來并饋送到分類層。每個雙向LSTM層后連接一個dropout層,比例為40%。第一個全連接層使用ReLU激活函數,第二個全連接層使用Softmax激活函數,實現分類功能。圖9給出模型的結構,表2給出模型各項參數。

圖9 模型結構

表2 模型的超參數設置
為了評估算法的性能和穩定性,用5折交叉驗證檢驗方法,將1 500個樣本均分為5組,每組300個樣本,每輪選取一組作為驗證集,將留下的4組作為訓練集,迭代次數為1 200。結果顯示(圖10)5輪訓練的驗證集準確率在96.00%~99.67%之間,驗證集平均準確率為98.36%。使用全部訓練集數據訓練后,經過測試集檢驗,準確率達到97.5%,表明模型有較好的泛化能力。

圖10 5折交叉驗證
使用內蒙古地震臺網記錄的天然地震和爆破事件資料,選取地震事件和爆破事件的單臺垂直向記錄,經過短時傅里葉變換后,拆分為多通道時間序列,作為輸入數據。經過在驗證集上的多次實驗調參,選取最優的輸入數據尺度和模型超參數,最后確定使用包含兩個雙向LSTM層的神經網絡作為分類器,實現天然地震和爆破的分類。經過5折交叉驗證,最終在驗證集的平均準確率達到98.36%。使用全部訓練集數據訓練模型,經測試集檢測,準確率達到97.5%。實驗結果表明,模型具有較好的穩定性、準確率和泛化能力。