“智能+”地震监测预警技术平台设计
2021-07-17周施文李水龙于伟恒王士成
周施文,李水龙,于伟恒,王士成
(福建省地震局,福州 350003)
0 引言
近几年,人工神经网络技术引领了人工智能新一轮的发展热潮。现阶段,人工神经网络主要可以分为三大类,即前馈神经网络、卷积神经网络和递归神经网络。每一类都有各自的特点和优势[1-2]。
(1)前馈神经网络中各神经元分层排列,每个神经元只与前一层的神经元相连,接收前一层的输出,并输出给下一层。结构简单,能够以任意精度逼近任意连续函数及平方可积函数,可以精确实现任意有限训练样本集,提供静态非线性映射,通过简单非线性处理单元的复合映射,可获得复杂的非线性处理能力。
(2)卷积神经网络通过卷积层对输入的参数应用若干过滤器,一个输入参数被用来做了很多类型的特征提取;再通过池化层缩减输入数据的规模;最后通过全连接层将提取出的特征值关联起来。卷积神经网络已成功应用于图像、文本识别等场景。
(3)递归神经网络中的时间递归神经网络,即循环神经网络,通过将第n-1步的输出反馈给神经网络,对第n步的输出产生影响,更贴近了人类大脑的记忆影响当前的特征,适用于处理声音、时间序列(传感器)数据或书面自然语言等序列数据。
在地震行业,国际和国内的专家学者,也开始尝试应用通过人工神经网络实现地震识别、震中定位等。赵刚等[3]提出的BP-Adaboost方法对所选用的地震、爆炸事件波形信号数据集的分类识别得到了98%以上的正确识别率,并且具有较好的泛化能力。Perol等[4]基于美国俄克拉荷马地区的连续波形数据,应用卷积神经网络进行了地震事件识别与震中定位。Ross等[5]用美国南加州地区27万多个地震事件训练的CNN模型,对日本Kumamoto地震也能有效监测。赵明等[6]使用汶川地震余震事件建立训练和测试数据集,应用深度学习卷积神经网络对地震事件—噪音进行分类,训练和检测准确率均达到95%以上。
总结这些已实现的应用,利用人工神经网络进行地震事件识别、震中定位等,都基本遵循以下几个步骤:①整理、挑选波形数据,建立训练数据集和测试数据集;②在人工智能框架上构建相应的人工神经网络模型,配置模型参数(包括层数、神经元数、激活函数等),用训练数据集对模型进行训练;③用测试数据集对训练后的模型进行测试;④分析测试结果,调整模型参数,重新训练模型,再进行测试;如此循环直至模型的处理结果满足要求。
地震监测预警,是目前能够减轻地震灾害的有效途径之一。地震监测预警技术系统产出地震预警信息的时效性,是地震监测预警能够实现减轻地震灾害的关键;换句话说,在地震发生后,技术系统越快产出地震预警信息,留给预警目标区的应急避震时间就相对越长。因此,对于从事地震监测预警的一线科研人员来说,一方面需要对目前在线生产的地震监测预警技术系统进行日常运维和优化,保证其7×24 h正常运行,另一方面需要不断探索研究可以提高地震监测预警效率的新方法新技术。
本文汲取了地震专家学者在人工神经网络应用方面的经验,从一线科研人员进行人工神经网络应用尝试的实际需求出发,在福建省地震局地震监测预警技术系统的基础上,提出了“智能+”地震监测预警技术平台的设计方案,旨在为新一代地震监测预警系统和智能技术平台的设计提供参考。
1 设计思路
当前,福建省地震局已在全省范围内建成了一个较为完善的地震监测台网,台站的监测数据实时传输汇聚到省局的数据流服务器。地震监测预警技术系统从数据流服务器获取实时数据,通过传统算法和公式捡拾P波,计算得出地震三要素,产出地震预警信息。与目前广泛应用的P波/S波捡拾算法需要人工设定参数不同,人工神经网络模型可以根据输入的训练数据调整设定参数,可能更适用于不同地区不同性质的微地震震相到时拾取,特别是在信噪比较低的情形下[7]。因此,在现有的地震监测预警技术系统的基础上(系统框架如图1所示),可以通过引入人工神经网络模型辅助P波捡拾,从而进一步提高地震预警的时效性。
图1 现有地震监测预警技术系统框架Fig.1 The framework of the existing earthquake monitoring and early warning technology system
人工智能技术在地震行业的应用实践还处在探索尝试和经验积累的阶段,因此,搭建“智能+”地震监测预警技术平台,是在现有的地震监测预警技术系统中增加人工智能技术的相关模块。
如图2所示,“智能+”地震预警与烈度速报系统是在原有的地震预警与烈度速报系统中增加了智能模块,即人工神经网络模型,用于辅助识别P波。智能模型训练平台主要功能有:获取和整理数据,建立训练数据集和测试数据集,搭建、训练和调试模型等。人工神经网络模型在智能模型训练平台上搭建、训练和调试,测试后符合要求的模型将加载到“智能+”地震预警与烈度速报系统中的智能模块在线运行。
图2 “智能+”地震监测预警技术系统设计框架Fig.2 The framework of“AI+”earthquake monitoring and early warning technology system
2 设计方案
2.1 逻辑架构设计
智能模型训练平台(下称训练平台)是地震监测预警技术系统“智能化”的关键,为实现上述数据采集、分析,模型设计、训练、调试等功能,训练平台采用B/S的架构,其逻辑架构如图3所示。
图3 智能模型训练平台逻辑架构设计图Fig.3 The logical architecture design diagram of the intelligent model training platform
用户交互层提供用户使用的界面展示以及相关前端操作服务。主要有两个方面的服务:数据操作和模型操作。数据操作包括了用户从历史波形文件和实时流数据将波形数据导入数据库,对数据进行整理和标记,以及生成用户所需要的训练/测试数据集等;模型操作包括利用人工神经网络框架设计、搭建、训练、测试、调试人工神经网络模型,以及最后将模型部署到生产环境等。
业务处理层是该平台的相关功能逻辑的具体实现,主要通过接收前端上送的指令(如导入数据、模型训练等)执行相关的业务逻辑,将结果入库并返回前端展示。数据管理提供了数据处理、标记及数据集生成等功能。其中,数据处理包括了对导入的波形数据进行清理、统一格式、入库等功能特别说明的是,国内现有存放地震监测波形数据的文件格式主要有:Seed/Miniseed、EVT、SAC等格式文件,为方便后续管理与操作,同时遵循现有监测预警技术系统以秒为单位对台站波形数据进行实时处理分析,导入的波形数据将重新封装统一为Miniseed格式,且每个Miniseed文件仅包含1 s的监测数据,与台站编号、分向、时间、标签等作为一条数据存入数据库的监测数据表中。数据标记是根据用户交互层传出来的用户操作参数,对监测数据表中的每一条数据的标签项进行赋值,比如用户标记了噪声的数据的标签值设为1、地震为2(P波:21,S波:22等)、其他为3(异常波形:31,爆破:32等)等。模型管理提供了具体人工神经网络模型搭建、训练、测试、调试、导出等相关功能。
数据访问层提供了历史波形数据文件、实时流数据和数据库的访问操作入口。
数据存储层实现了相关历史波形数据、模型参数、模型分析结果等数据的结构化与非结构化存储。
2.2 物理架构设计
训练平台物理架构设计如图4所示,业务逻辑功能通过相应的物理组件实现。
图4 智能模型训练平台物理架构设计图Fig.4 Physical architecture design diagram of the intelligent model training platform
用户交互层通过UI组件和用户交互组件实现用户界面展示和相关前端操作服务。其中,UI组件建基于Vue.js以及ElementUI技术框架实现,基于ajax实现与后端的接口通讯以及界面的按需加载。在用户进行相关界面操作时,UI组件捕获用户行为,通过ajax将用户的行为请求发送后台进行处理,接收后台返回后将相关界面进行渲染,展示结果。例如,参照现有台站监测数据查看工具的界面,用户提交需要查看的波形数据参数(台站编号、时间区间、分向等)后,UI组件将参数发送至后台进行处理,接收后台返回后的数据,在界面上以波形的形式展示;用户在波形上进行标签操作,如标注P/S波、噪音等,UI组件将标签操作后的参数发送给后台,后台根据参数对数据库里的波形数据进行相应处理。
业务处理层包括对前端的接口通讯、日志管理、统一的异常管理等公共组件,以及具体的数据管理与模型管理组件。
数据访问层是相关数据文件以及数据库的访问操作入口,通过数据持久化以及数据库访问组件实现了两大功能:一是对数据访问进行鉴权,确保数据只被授权用户进行访问,提高安全性;二是提供了统一的查询及维护接口,通过封装一系列查询及数据维护的SQL语句,降低了业务处理逻辑实现数据操作的复杂度。
数据存储层包括了具体的历史波形文件、实时流数据和数据库。
2.3 网络架构设计
训练平台在具体实现上,采用了前后端分离的设计思路,前端采用业内主流的Vue.js进行界面设计与实现,后端基于SpringBoot框架实现各相关服务的配置与部署,前后端采用Http+Json的方式进行交互。为了保证该平台的稳定运行,系统采用了高可用设计,前后端服务均冗余部署,引入nginx实现软负载。网络架构设计如图5所示。
图5 智能模型训练平台网络架构设计图Fig.5 Network architecture design diagram of the intelligent model training platform
各服务器说明如下:
(1)应用服务器。应用服务器2台集群部署,前端通过负载均衡设备实现高可用。
(2)数据库服务器。数据库服务器2台,数据库基于MYSQL实现高可用,对不同表设置相应的操作权限。
(3)文件服务器。文件服务器2台,之间通过挂载NAS目录实现文件的互通,应用服务器在前端配置策略调用对应的文件服务器。
(4)NAS存储。NAS根据需要挂载在对应服务器的节点上,实现各应用间的文档、配置文件等信息的共享。
2.4 人工神经网络框架选择
目前开源的人工神经网络框架有很多,主流的 有Tensorflow、Caffe、Keras、Deeplearning4J(DL4J)、Neuroph等。Tensorflow是一个主要基于Python语言、使用数据流图进行数值计算的开源软件库,最初由Google Brain团队中的研究人员和工程师开发。Caffe是一个基于C++和Python语言的深度学习框架,在计算机视觉相关的任务上表现不错,最初由杨庆佳在加州大学伯克利分校读博期间发起,现由伯克利AI研究公司(BAIR)和社区贡献者联合开发。Keras是一个基于Python语言的开源人工神经网络库,提供了一致和简单的API,简化了常规用户操作,提供了清晰可操作的错误消息、大量的文档和开发人员指南。DL4J是第一个为Java和Scala编写的商业级开源分布式深度学习库,集成了Hadoop和ApacheSpark,可用于分布式GPU和CPU,使得业务环境中的非专业人员也能够快速的构建智能模型。Neuroph是一个轻量级Java神经网络框架,可用于开发通用的神经网络体系结构。它包含有设计良好的开放源码Java库以及界面友好的GUI神经网络编辑器,可以快速创建Java神经网络组件。
虽然根据Github网站的统计,基于Python的人工神经网络框架在贡献者数量和分支数上都会多于基于Java的人工神经网络框架(参见表1),但本文从实践角度出发,选择了基于Java的DL4J,主要原因有以下三点:第一,地震监测预警技术系统是基于Java研发的,相关科研人员也熟练掌握Java,选择基于Java的人工神经网络框架可以减少编程语言的切换成本;第二,在主流框架都满足常规人工神经网络模型搭建的情况下,DL4J从商业应用角度出发,可以使本行业科研人员更简便快速地构建智能模型。第三,DL4J提供基于Keras的Python API,支持导入用Python语言设计的人工神经网络模型,在一定程度上也弥补了Python生态系统和JVM之间的隔阂。
表1 主流人工神经网络框架热度对比[数据来源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作为平台的人工智能框架之后,基于地震监测预警技术系统的实际需求,结合引言中提及的三类人工神经网络,即前馈神经网络、卷积神经网络和循环神经网络各自的特点和优势,设计了平台中模型操作和管理组件以前馈神经网络和循环神经网络为基础:前馈神经网络具有良好的分类识别能力,我们可以将P波捡拾转化为波形分类识别问题;循环神经网络适用于处理语言、传感器数据等序列数据,地震监测预警技术系统以秒为单位实时处理的台站监测数据也是一种具有时间序列的传感器数据。
3 讨论与总结
随着人工智能技术,特别是深度学习人工神经网络技术的发展,地震行业的专家学者也纷纷开始尝试利用人工神经网络技术进行诸如地震事件识别、震中定位、震相识别等相关研究。本文立足于一线地震科技人员进行人工智能技术研究的实际需求,从地震监测预警技术系统在线生产的实践出发,提出了一种“智能+”地震监测预警技术平台的设计实现方案。该平台在现有地震监测预警技术系统的基础上,增加了人工智能技术的相关模块,即智能模型训练平台及模型在线生产模块。智能模型训练平台上的相关数据,除了用于地震监测预警技术系统智能化研发,还可以通过授权,用于行业内其他的智能化研究,从而进一步提高地震数据的利用率。同时,本文提出的“智能+”地震监测预警技术平台设计方案也能为同业内人工智能技术的应用提供一个新的思路。