周施文,李水龍,于偉恒,王士成
(福建省地震局,福州 350003)
近幾年,人工神經(jīng)網(wǎng)絡(luò)技術(shù)引領(lǐng)了人工智能新一輪的發(fā)展熱潮。現(xiàn)階段,人工神經(jīng)網(wǎng)絡(luò)主要可以分為三大類,即前饋神經(jīng)網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)和遞歸神經(jīng)網(wǎng)絡(luò)。每一類都有各自的特點(diǎn)和優(yōu)勢[1-2]。
(1)前饋神經(jīng)網(wǎng)絡(luò)中各神經(jīng)元分層排列,每個神經(jīng)元只與前一層的神經(jīng)元相連,接收前一層的輸出,并輸出給下一層。結(jié)構(gòu)簡單,能夠以任意精度逼近任意連續(xù)函數(shù)及平方可積函數(shù),可以精確實(shí)現(xiàn)任意有限訓(xùn)練樣本集,提供靜態(tài)非線性映射,通過簡單非線性處理單元的復(fù)合映射,可獲得復(fù)雜的非線性處理能力。
(2)卷積神經(jīng)網(wǎng)絡(luò)通過卷積層對輸入的參數(shù)應(yīng)用若干過濾器,一個輸入?yún)?shù)被用來做了很多類型的特征提取;再通過池化層縮減輸入數(shù)據(jù)的規(guī)模;最后通過全連接層將提取出的特征值關(guān)聯(lián)起來。卷積神經(jīng)網(wǎng)絡(luò)已成功應(yīng)用于圖像、文本識別等場景。
(3)遞歸神經(jīng)網(wǎng)絡(luò)中的時間遞歸神經(jīng)網(wǎng)絡(luò),即循環(huán)神經(jīng)網(wǎng)絡(luò),通過將第n-1步的輸出反饋給神經(jīng)網(wǎng)絡(luò),對第n步的輸出產(chǎn)生影響,更貼近了人類大腦的記憶影響當(dāng)前的特征,適用于處理聲音、時間序列(傳感器)數(shù)據(jù)或書面自然語言等序列數(shù)據(jù)。
在地震行業(yè),國際和國內(nèi)的專家學(xué)者,也開始嘗試應(yīng)用通過人工神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)地震識別、震中定位等。趙剛等[3]提出的BP-Adaboost方法對所選用的地震、爆炸事件波形信號數(shù)據(jù)集的分類識別得到了98%以上的正確識別率,并且具有較好的泛化能力。Perol等[4]基于美國俄克拉荷馬地區(qū)的連續(xù)波形數(shù)據(jù),應(yīng)用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行了地震事件識別與震中定位。Ross等[5]用美國南加州地區(qū)27萬多個地震事件訓(xùn)練的CNN模型,對日本Kumamoto地震也能有效監(jiān)測。趙明等[6]使用汶川地震余震事件建立訓(xùn)練和測試數(shù)據(jù)集,應(yīng)用深度學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)對地震事件—噪音進(jìn)行分類,訓(xùn)練和檢測準(zhǔn)確率均達(dá)到95%以上。
總結(jié)這些已實(shí)現(xiàn)的應(yīng)用,利用人工神經(jīng)網(wǎng)絡(luò)進(jìn)行地震事件識別、震中定位等,都基本遵循以下幾個步驟:①整理、挑選波形數(shù)據(jù),建立訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集;②在人工智能框架上構(gòu)建相應(yīng)的人工神經(jīng)網(wǎng)絡(luò)模型,配置模型參數(shù)(包括層數(shù)、神經(jīng)元數(shù)、激活函數(shù)等),用訓(xùn)練數(shù)據(jù)集對模型進(jìn)行訓(xùn)練;③用測試數(shù)據(jù)集對訓(xùn)練后的模型進(jìn)行測試;④分析測試結(jié)果,調(diào)整模型參數(shù),重新訓(xùn)練模型,再進(jìn)行測試;如此循環(huán)直至模型的處理結(jié)果滿足要求。
地震監(jiān)測預(yù)警,是目前能夠減輕地震災(zāi)害的有效途徑之一。地震監(jiān)測預(yù)警技術(shù)系統(tǒng)產(chǎn)出地震預(yù)警信息的時效性,是地震監(jiān)測預(yù)警能夠?qū)崿F(xiàn)減輕地震災(zāi)害的關(guān)鍵;換句話說,在地震發(fā)生后,技術(shù)系統(tǒng)越快產(chǎn)出地震預(yù)警信息,留給預(yù)警目標(biāo)區(qū)的應(yīng)急避震時間就相對越長。因此,對于從事地震監(jiān)測預(yù)警的一線科研人員來說,一方面需要對目前在線生產(chǎn)的地震監(jiān)測預(yù)警技術(shù)系統(tǒng)進(jìn)行日常運(yùn)維和優(yōu)化,保證其7×24 h正常運(yùn)行,另一方面需要不斷探索研究可以提高地震監(jiān)測預(yù)警效率的新方法新技術(shù)。
本文汲取了地震專家學(xué)者在人工神經(jīng)網(wǎng)絡(luò)應(yīng)用方面的經(jīng)驗(yàn),從一線科研人員進(jìn)行人工神經(jīng)網(wǎng)絡(luò)應(yīng)用嘗試的實(shí)際需求出發(fā),在福建省地震局地震監(jiān)測預(yù)警技術(shù)系統(tǒng)的基礎(chǔ)上,提出了“智能+”地震監(jiān)測預(yù)警技術(shù)平臺的設(shè)計(jì)方案,旨在為新一代地震監(jiān)測預(yù)警系統(tǒng)和智能技術(shù)平臺的設(shè)計(jì)提供參考。
當(dāng)前,福建省地震局已在全省范圍內(nèi)建成了一個較為完善的地震監(jiān)測臺網(wǎng),臺站的監(jiān)測數(shù)據(jù)實(shí)時傳輸匯聚到省局的數(shù)據(jù)流服務(wù)器。地震監(jiān)測預(yù)警技術(shù)系統(tǒng)從數(shù)據(jù)流服務(wù)器獲取實(shí)時數(shù)據(jù),通過傳統(tǒng)算法和公式撿拾P波,計(jì)算得出地震三要素,產(chǎn)出地震預(yù)警信息。與目前廣泛應(yīng)用的P波/S波撿拾算法需要人工設(shè)定參數(shù)不同,人工神經(jīng)網(wǎng)絡(luò)模型可以根據(jù)輸入的訓(xùn)練數(shù)據(jù)調(diào)整設(shè)定參數(shù),可能更適用于不同地區(qū)不同性質(zhì)的微地震震相到時拾取,特別是在信噪比較低的情形下[7]。因此,在現(xiàn)有的地震監(jiān)測預(yù)警技術(shù)系統(tǒng)的基礎(chǔ)上(系統(tǒng)框架如圖1所示),可以通過引入人工神經(jīng)網(wǎng)絡(luò)模型輔助P波撿拾,從而進(jìn)一步提高地震預(yù)警的時效性。
圖1 現(xiàn)有地震監(jiān)測預(yù)警技術(shù)系統(tǒng)框架Fig.1 The framework of the existing earthquake monitoring and early warning technology system
人工智能技術(shù)在地震行業(yè)的應(yīng)用實(shí)踐還處在探索嘗試和經(jīng)驗(yàn)積累的階段,因此,搭建“智能+”地震監(jiān)測預(yù)警技術(shù)平臺,是在現(xiàn)有的地震監(jiān)測預(yù)警技術(shù)系統(tǒng)中增加人工智能技術(shù)的相關(guān)模塊。
如圖2所示,“智能+”地震預(yù)警與烈度速報系統(tǒng)是在原有的地震預(yù)警與烈度速報系統(tǒng)中增加了智能模塊,即人工神經(jīng)網(wǎng)絡(luò)模型,用于輔助識別P波。智能模型訓(xùn)練平臺主要功能有:獲取和整理數(shù)據(jù),建立訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集,搭建、訓(xùn)練和調(diào)試模型等。人工神經(jīng)網(wǎng)絡(luò)模型在智能模型訓(xùn)練平臺上搭建、訓(xùn)練和調(diào)試,測試后符合要求的模型將加載到“智能+”地震預(yù)警與烈度速報系統(tǒng)中的智能模塊在線運(yùn)行。
圖2 “智能+”地震監(jiān)測預(yù)警技術(shù)系統(tǒng)設(shè)計(jì)框架Fig.2 The framework of“AI+”earthquake monitoring and early warning technology system
智能模型訓(xùn)練平臺(下稱訓(xùn)練平臺)是地震監(jiān)測預(yù)警技術(shù)系統(tǒng)“智能化”的關(guān)鍵,為實(shí)現(xiàn)上述數(shù)據(jù)采集、分析,模型設(shè)計(jì)、訓(xùn)練、調(diào)試等功能,訓(xùn)練平臺采用B/S的架構(gòu),其邏輯架構(gòu)如圖3所示。
圖3 智能模型訓(xùn)練平臺邏輯架構(gòu)設(shè)計(jì)圖Fig.3 The logical architecture design diagram of the intelligent model training platform
用戶交互層提供用戶使用的界面展示以及相關(guān)前端操作服務(wù)。主要有兩個方面的服務(wù):數(shù)據(jù)操作和模型操作。數(shù)據(jù)操作包括了用戶從歷史波形文件和實(shí)時流數(shù)據(jù)將波形數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫,對數(shù)據(jù)進(jìn)行整理和標(biāo)記,以及生成用戶所需要的訓(xùn)練/測試數(shù)據(jù)集等;模型操作包括利用人工神經(jīng)網(wǎng)絡(luò)框架設(shè)計(jì)、搭建、訓(xùn)練、測試、調(diào)試人工神經(jīng)網(wǎng)絡(luò)模型,以及最后將模型部署到生產(chǎn)環(huán)境等。
業(yè)務(wù)處理層是該平臺的相關(guān)功能邏輯的具體實(shí)現(xiàn),主要通過接收前端上送的指令(如導(dǎo)入數(shù)據(jù)、模型訓(xùn)練等)執(zhí)行相關(guān)的業(yè)務(wù)邏輯,將結(jié)果入庫并返回前端展示。數(shù)據(jù)管理提供了數(shù)據(jù)處理、標(biāo)記及數(shù)據(jù)集生成等功能。其中,數(shù)據(jù)處理包括了對導(dǎo)入的波形數(shù)據(jù)進(jìn)行清理、統(tǒng)一格式、入庫等功能特別說明的是,國內(nèi)現(xiàn)有存放地震監(jiān)測波形數(shù)據(jù)的文件格式主要有:Seed/Miniseed、EVT、SAC等格式文件,為方便后續(xù)管理與操作,同時遵循現(xiàn)有監(jiān)測預(yù)警技術(shù)系統(tǒng)以秒為單位對臺站波形數(shù)據(jù)進(jìn)行實(shí)時處理分析,導(dǎo)入的波形數(shù)據(jù)將重新封裝統(tǒng)一為Miniseed格式,且每個Miniseed文件僅包含1 s的監(jiān)測數(shù)據(jù),與臺站編號、分向、時間、標(biāo)簽等作為一條數(shù)據(jù)存入數(shù)據(jù)庫的監(jiān)測數(shù)據(jù)表中。數(shù)據(jù)標(biāo)記是根據(jù)用戶交互層傳出來的用戶操作參數(shù),對監(jiān)測數(shù)據(jù)表中的每一條數(shù)據(jù)的標(biāo)簽項(xiàng)進(jìn)行賦值,比如用戶標(biāo)記了噪聲的數(shù)據(jù)的標(biāo)簽值設(shè)為1、地震為2(P波:21,S波:22等)、其他為3(異常波形:31,爆破:32等)等。模型管理提供了具體人工神經(jīng)網(wǎng)絡(luò)模型搭建、訓(xùn)練、測試、調(diào)試、導(dǎo)出等相關(guān)功能。
數(shù)據(jù)訪問層提供了歷史波形數(shù)據(jù)文件、實(shí)時流數(shù)據(jù)和數(shù)據(jù)庫的訪問操作入口。
數(shù)據(jù)存儲層實(shí)現(xiàn)了相關(guān)歷史波形數(shù)據(jù)、模型參數(shù)、模型分析結(jié)果等數(shù)據(jù)的結(jié)構(gòu)化與非結(jié)構(gòu)化存儲。
訓(xùn)練平臺物理架構(gòu)設(shè)計(jì)如圖4所示,業(yè)務(wù)邏輯功能通過相應(yīng)的物理組件實(shí)現(xiàn)。
圖4 智能模型訓(xùn)練平臺物理架構(gòu)設(shè)計(jì)圖Fig.4 Physical architecture design diagram of the intelligent model training platform
用戶交互層通過UI組件和用戶交互組件實(shí)現(xiàn)用戶界面展示和相關(guān)前端操作服務(wù)。其中,UI組件建基于Vue.js以及ElementUI技術(shù)框架實(shí)現(xiàn),基于ajax實(shí)現(xiàn)與后端的接口通訊以及界面的按需加載。在用戶進(jìn)行相關(guān)界面操作時,UI組件捕獲用戶行為,通過ajax將用戶的行為請求發(fā)送后臺進(jìn)行處理,接收后臺返回后將相關(guān)界面進(jìn)行渲染,展示結(jié)果。例如,參照現(xiàn)有臺站監(jiān)測數(shù)據(jù)查看工具的界面,用戶提交需要查看的波形數(shù)據(jù)參數(shù)(臺站編號、時間區(qū)間、分向等)后,UI組件將參數(shù)發(fā)送至后臺進(jìn)行處理,接收后臺返回后的數(shù)據(jù),在界面上以波形的形式展示;用戶在波形上進(jìn)行標(biāo)簽操作,如標(biāo)注P/S波、噪音等,UI組件將標(biāo)簽操作后的參數(shù)發(fā)送給后臺,后臺根據(jù)參數(shù)對數(shù)據(jù)庫里的波形數(shù)據(jù)進(jìn)行相應(yīng)處理。
業(yè)務(wù)處理層包括對前端的接口通訊、日志管理、統(tǒng)一的異常管理等公共組件,以及具體的數(shù)據(jù)管理與模型管理組件。
數(shù)據(jù)訪問層是相關(guān)數(shù)據(jù)文件以及數(shù)據(jù)庫的訪問操作入口,通過數(shù)據(jù)持久化以及數(shù)據(jù)庫訪問組件實(shí)現(xiàn)了兩大功能:一是對數(shù)據(jù)訪問進(jìn)行鑒權(quán),確保數(shù)據(jù)只被授權(quán)用戶進(jìn)行訪問,提高安全性;二是提供了統(tǒng)一的查詢及維護(hù)接口,通過封裝一系列查詢及數(shù)據(jù)維護(hù)的SQL語句,降低了業(yè)務(wù)處理邏輯實(shí)現(xiàn)數(shù)據(jù)操作的復(fù)雜度。
數(shù)據(jù)存儲層包括了具體的歷史波形文件、實(shí)時流數(shù)據(jù)和數(shù)據(jù)庫。
訓(xùn)練平臺在具體實(shí)現(xiàn)上,采用了前后端分離的設(shè)計(jì)思路,前端采用業(yè)內(nèi)主流的Vue.js進(jìn)行界面設(shè)計(jì)與實(shí)現(xiàn),后端基于SpringBoot框架實(shí)現(xiàn)各相關(guān)服務(wù)的配置與部署,前后端采用Http+Json的方式進(jìn)行交互。為了保證該平臺的穩(wěn)定運(yùn)行,系統(tǒng)采用了高可用設(shè)計(jì),前后端服務(wù)均冗余部署,引入nginx實(shí)現(xiàn)軟負(fù)載。網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)如圖5所示。
圖5 智能模型訓(xùn)練平臺網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)圖Fig.5 Network architecture design diagram of the intelligent model training platform
各服務(wù)器說明如下:
(1)應(yīng)用服務(wù)器。應(yīng)用服務(wù)器2臺集群部署,前端通過負(fù)載均衡設(shè)備實(shí)現(xiàn)高可用。
(2)數(shù)據(jù)庫服務(wù)器。數(shù)據(jù)庫服務(wù)器2臺,數(shù)據(jù)庫基于MYSQL實(shí)現(xiàn)高可用,對不同表設(shè)置相應(yīng)的操作權(quán)限。
(3)文件服務(wù)器。文件服務(wù)器2臺,之間通過掛載NAS目錄實(shí)現(xiàn)文件的互通,應(yīng)用服務(wù)器在前端配置策略調(diào)用對應(yīng)的文件服務(wù)器。
(4)NAS存儲。NAS根據(jù)需要掛載在對應(yīng)服務(wù)器的節(jié)點(diǎn)上,實(shí)現(xiàn)各應(yīng)用間的文檔、配置文件等信息的共享。
目前開源的人工神經(jīng)網(wǎng)絡(luò)框架有很多,主流的 有Tensorflow、Caffe、Keras、Deeplearning4J(DL4J)、Neuroph等。Tensorflow是一個主要基于Python語言、使用數(shù)據(jù)流圖進(jìn)行數(shù)值計(jì)算的開源軟件庫,最初由Google Brain團(tuán)隊(duì)中的研究人員和工程師開發(fā)。Caffe是一個基于C++和Python語言的深度學(xué)習(xí)框架,在計(jì)算機(jī)視覺相關(guān)的任務(wù)上表現(xiàn)不錯,最初由楊慶佳在加州大學(xué)伯克利分校讀博期間發(fā)起,現(xiàn)由伯克利AI研究公司(BAIR)和社區(qū)貢獻(xiàn)者聯(lián)合開發(fā)。Keras是一個基于Python語言的開源人工神經(jīng)網(wǎng)絡(luò)庫,提供了一致和簡單的API,簡化了常規(guī)用戶操作,提供了清晰可操作的錯誤消息、大量的文檔和開發(fā)人員指南。DL4J是第一個為Java和Scala編寫的商業(yè)級開源分布式深度學(xué)習(xí)庫,集成了Hadoop和ApacheSpark,可用于分布式GPU和CPU,使得業(yè)務(wù)環(huán)境中的非專業(yè)人員也能夠快速的構(gòu)建智能模型。Neuroph是一個輕量級Java神經(jīng)網(wǎng)絡(luò)框架,可用于開發(fā)通用的神經(jīng)網(wǎng)絡(luò)體系結(jié)構(gòu)。它包含有設(shè)計(jì)良好的開放源碼Java庫以及界面友好的GUI神經(jīng)網(wǎng)絡(luò)編輯器,可以快速創(chuàng)建Java神經(jīng)網(wǎng)絡(luò)組件。
雖然根據(jù)Github網(wǎng)站的統(tǒng)計(jì),基于Python的人工神經(jīng)網(wǎng)絡(luò)框架在貢獻(xiàn)者數(shù)量和分支數(shù)上都會多于基于Java的人工神經(jīng)網(wǎng)絡(luò)框架(參見表1),但本文從實(shí)踐角度出發(fā),選擇了基于Java的DL4J,主要原因有以下三點(diǎn):第一,地震監(jiān)測預(yù)警技術(shù)系統(tǒng)是基于Java研發(fā)的,相關(guān)科研人員也熟練掌握J(rèn)ava,選擇基于Java的人工神經(jīng)網(wǎng)絡(luò)框架可以減少編程語言的切換成本;第二,在主流框架都滿足常規(guī)人工神經(jīng)網(wǎng)絡(luò)模型搭建的情況下,DL4J從商業(yè)應(yīng)用角度出發(fā),可以使本行業(yè)科研人員更簡便快速地構(gòu)建智能模型。第三,DL4J提供基于Keras的Python API,支持導(dǎo)入用Python語言設(shè)計(jì)的人工神經(jīng)網(wǎng)絡(luò)模型,在一定程度上也彌補(bǔ)了Python生態(tài)系統(tǒng)和JVM之間的隔閡。
表1 主流人工神經(jīng)網(wǎng)絡(luò)框架熱度對比[數(shù)據(jù)來源Github 2020-06-08①Github.http://www.github.com.2020.]Table 1 Comparison of the popularity of mainstream artificial neural network frameworks[Data source Github 2020-06-08①Github.http://www.github.com.2020.]
在選定了DL4J作為平臺的人工智能框架之后,基于地震監(jiān)測預(yù)警技術(shù)系統(tǒng)的實(shí)際需求,結(jié)合引言中提及的三類人工神經(jīng)網(wǎng)絡(luò),即前饋神經(jīng)網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)各自的特點(diǎn)和優(yōu)勢,設(shè)計(jì)了平臺中模型操作和管理組件以前饋神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)為基礎(chǔ):前饋神經(jīng)網(wǎng)絡(luò)具有良好的分類識別能力,我們可以將P波撿拾轉(zhuǎn)化為波形分類識別問題;循環(huán)神經(jīng)網(wǎng)絡(luò)適用于處理語言、傳感器數(shù)據(jù)等序列數(shù)據(jù),地震監(jiān)測預(yù)警技術(shù)系統(tǒng)以秒為單位實(shí)時處理的臺站監(jiān)測數(shù)據(jù)也是一種具有時間序列的傳感器數(shù)據(jù)。
隨著人工智能技術(shù),特別是深度學(xué)習(xí)人工神經(jīng)網(wǎng)絡(luò)技術(shù)的發(fā)展,地震行業(yè)的專家學(xué)者也紛紛開始嘗試?yán)萌斯ど窠?jīng)網(wǎng)絡(luò)技術(shù)進(jìn)行諸如地震事件識別、震中定位、震相識別等相關(guān)研究。本文立足于一線地震科技人員進(jìn)行人工智能技術(shù)研究的實(shí)際需求,從地震監(jiān)測預(yù)警技術(shù)系統(tǒng)在線生產(chǎn)的實(shí)踐出發(fā),提出了一種“智能+”地震監(jiān)測預(yù)警技術(shù)平臺的設(shè)計(jì)實(shí)現(xiàn)方案。該平臺在現(xiàn)有地震監(jiān)測預(yù)警技術(shù)系統(tǒng)的基礎(chǔ)上,增加了人工智能技術(shù)的相關(guān)模塊,即智能模型訓(xùn)練平臺及模型在線生產(chǎn)模塊。智能模型訓(xùn)練平臺上的相關(guān)數(shù)據(jù),除了用于地震監(jiān)測預(yù)警技術(shù)系統(tǒng)智能化研發(fā),還可以通過授權(quán),用于行業(yè)內(nèi)其他的智能化研究,從而進(jìn)一步提高地震數(shù)據(jù)的利用率。同時,本文提出的“智能+”地震監(jiān)測預(yù)警技術(shù)平臺設(shè)計(jì)方案也能為同業(yè)內(nèi)人工智能技術(shù)的應(yīng)用提供一個新的思路。