杨 昆 朱志祥
(西安邮电大学物联网与两化融合研究院 西安 710061)
陕西省岚皋县位于陕南秦巴山区,由于复杂的地形地貌,多变的气候以及近些年人类对固有生态环境的不合理开发等因素的影响,导致地质灾害发生次数较多。根据当地的调查统计显示,近几年,在岚皋县所发生的地质灾害中,影响较大且发生较频繁的分别为滑坡、崩塌和泥石流并且由于该地区地形多数以山为主,地质灾害发生一般具有爆发快、破坏性强,分布面积广及治理难度大等特点对当地人民的生命财产造成了严重的损失[1]。因此,进行该地区地质灾害预警研究具有深远的意义。
从20世纪90年代开始,地质灾害预警在国内外就逐渐受到重视和关注[2],在理论和技术上都有明显的改变,即引入了GIS、GPS、RS等技术,也运用了数学、力学以及非线性科学等理论知识,在地质灾害预警方法上使用较多的是隐、显式统计预报、非线性系统理论预报、动力预报等[3~5,11]。人工神经网络(Artificial Neural Network,ANN)[6~8]是一种建立在生物神经网络上且参考其形成机理而产生的系统,它最重要的特点就是能以非线性并行处理方式来处理现实中模糊、复杂、随机性强且数据量大的信息,所以长期以来在自然科学等领域受到了广泛的应用[9]。
本文以人工神经网络理论为基础,就陕西省岚皋县地质灾害发生的特点,采集并分析有关地质灾害发生的地质地貌信息以及降雨量信息,建立了陕西省岚皋县地质灾害预警的BP(Back Propagation,反向传播)神经网络细网格模型,并对该模型预测的结果进行了验证。
BP神经网络即反向传播神经网络,属于人工神经网络的前向型网络,是目前应用最广泛,效果最好的网络模型[10~12]。BP网络的结构既有复杂的也有简单的,对于较为简单的网络结构一般都是只有一个中间层外加输入、输出层所构成,而对于复杂的网络结构基本都是有两个以上的中间层外加输入、输出层所构成,并且无论是复杂的还是简单的网络,它们相邻层的各神经元都是相接在一起的,但是每层的各神经元是间断的,如图1所示。
图1 BP神经网络结构图
图1中x1(k)到xn(k)表示网络输入层每个元素的输入,y1到 yq表示输出层每个元素的输出,wih表示网络输入层的每个元素和网络中间层的每个元素之间的连接权值,who表示网络中间层的每个元素与网络输出层的每个元素之间的连接权值。
BP神经网络的使用并不复杂,基本都是对网络进行反复训练后,再根据现有的数据对未来的情况经行预测。在网络的训练期,主要包括两个过程:1)信号的前向传播,网络的输入层各个元素得到数据进行处理后传送到中间层,中间层将接收的数据利用激励函数进行转换并传到输出层,最后在输出层得到第一个过程的运行结果。2)误差的反向传播,当前向传播的输出误差大于允许误差时,就会进行此过程。该过程主要是将前向传播的输出误差逆向传送给网络各个层的元素,并对各个层之间的连接权值进行修正直到满足事先所设置的误差要求即可[13]。在工作期,只需对已学习的网络输入一个信号就可以得到一个对应的预测或联想结果。
2.2.1 神经网络结构原理
由BP神经网络的组成元素可以得到,要构建一个网络最关键的地方就是要得到网络每个层中的元素和网络中间层的个数。网络中间层个数的确定。在一般情况下,如果该函数在闭区间内是连续的,那么使用只含有一个中间层的网络就可以满足需求。对于各层神经元个数的确定,输入层神经元个数和输出层神经元个数都是根据具体应用时输入到网络中的样本数据数量以及想要得到的结果来确定的,隐含层神经元个数的确定目前主要采取的是反复训练网络与逐步修剪法[14]结合的方式。
2.2.2 神经网络算法原理
BP神经网络算法的实现过程可分为以下的几个步骤[15~16]:
首先假设有一个n-p-q结构的BP神经网络,它的输入向量为x1(k),x2(k),x3(k)…xn(k);输出向量为 y1,y2,y3…yq;输入层和中间层之间的权值为wih;中间层和输出层之间的权值为who;隐含层与输出层各神经元的阈值分为bh和bo。
1)网络初始化
对权值 who和 who,阈值 bh和阈值 bo在[-1,1]之间各自分别随机取一个不为0的实数作为网络初始值并且选定一个初始的学习速率η和隐含层与输出层各神经元的激活函数 f(s),给定计算精度值ε。
2)隐含层输入hih(k)计算
由 xn(k),wih,bh得到 hih(k)。
其中,i=1,2,3…n,h=1,2,3…p。
3)隐含层输出hoh(k)计算
由hih(k)和f得到hoh(k)。
其中,i=1,2,3…n,h=1,2,3…p ,f为隐含层各神经元的激活函数,对于处理连续的非线性问题常使用的是S函数型。在此,也采用的这个函数,即
4)输出层输入 yio(k)计算
由 hoh(k),who,bo得到 yio(k)。
其中,h=1,2,3…p,o=1,2,3…q。
5)输出层输出 yo0(k)计算
由 yio(k)和f得到 yo0(k)。
其中,f为输出层各神经元的激活函数,采用了S函数型,h=1,2,3…p,o=1,2,3…q。
6)误差计算
误差e的来源主要是由于网络的输出和实际的结果数据存在差异,可由网络实际的输出yo0()k与期望的输出d0(k)得到。
其中,o=1,2,3…q。
7)权值更新
将6)中得到的输出误差e沿网络的逆向传送给各层的所有神经元来获得它们各自的误差并以此修正权值wih和who。
其中,η为学习速率,o=1,2,3…q,i=1,2,3…n,h=1,2,3…p。
8)阈值更新
由6)中得到的网路输出误差e来更新阈值bh和bo。
其中,η为学习速率,o=1,2,3…q。
9)学习次数更新。将学习次数增加一次并且与预设的最大次数进行比较。
10)判断误差是否达到要求,如果达到,则整个过程结束,否则转到2)继续下一轮的学习。
2.2.3 实际输入值的归一化处理
为了便于网络更好地训练数量级不同的样本数据,在此需对网络的原始数据做归一化处理以便能更好地对网络进行训练[17]。然而由于输出层与中间层各神经元的激励函数为S函数,所以它的输出值在0到1之间,因此需将实际输入的样本值也归一化到0到1之间。又因为0和1是Sigmoid函数输出值的最小值和最大值,所以不适合作为输入值来使用,因此将实际输入的样本值归一化到0.1到0.9之间较合适,可通过以下公式对数据经行处理。
其中,g(x)为归一化后的样本值,x为实际输入的样本值,xmax和xmin分别为实际输入的样本值的最大值和最小值。
大量的研究表明[18],导致地质灾害发生的要素是多样的既包含内在的也包含外在的。就内在的要素而言,它们基本都是与地质环境相关的,比如:地形地貌、地面坡度等,而外在的要素大多与气候和人类有关,有降雨量、人类改造自然的活动等。岚皋县由于地理环境复杂多变,在县城地带有一小区域的河谷阶地外,大多是山地且山较高,坡形较陡峭,易滑地层较广,又由于该地的气候比较特殊,降水较丰沛特别是在每年的6、7、8和9月份持续的降雨使得山坡的岩土体软化在重力的作用下导致滑坡灾害的发生,在较深的山谷中则会发生泥石流等灾害。通过长期的观察和分析发现当地地质灾害发生的最直接的原因为外在的降雨因素。
地质灾害的发生是由多种因素综合而形成的,要对地质灾害的发生情况进行评价,就得了解形成这些地质灾害的每一个细小因子。这些因子主要包含有地质环境、气象信息等,将它们进行结合建立评价指标体系用于地质灾害的发生可能性大小的评价。
根据《国土资源部与中国气象局关于联合开展地质灾害气象预警工作协议》的规定,地质灾害气象预报预警级别分为五个级别,如表1所示。
表1 地质灾害气象预报预警等级划分表
根据评价区的地质环境因素分析获得该地区地质灾害危险性概率和从气象部门获得的该地未来二十四小时降雨量信息并结合前期的实际降雨量,利用地质灾害预警的BP神经网络细网格模型来对评价区地质灾害发生的等级进行预测,经专家会商后确定最终灾害等级并运用GIS技术以及通信设备进行详细的预警信息发布[19]。
根据《岚皋县2017年地质灾害防治方案》截至2016年12月,全县共有地质灾害隐患点271处,直接威胁人口5255人,地质灾害类型以滑坡为主,达到244处,占地质灾害隐患点总数90.04%;其次为泥石流,共24处,占地质灾害隐患点总数8.85%;崩塌3处,占地质灾害隐患点总数1.11%,如图2,3所示。
图2 岚皋县各种地质灾害比例图
图3 岚皋县各种地质灾害数量
岚皋县12个镇基本都存在不同程度的地质灾害,但是由于岚河、大道河以及横溪河等的影响使得城关镇、民主镇、佐龙镇、石门镇灾情较严重,总计有灾害点130个占总量的47.97%,威胁人口2753人占总量的52.39%。
虽然缺少更详细更全面的地质灾害调查数据,但就目前所拥有的数据可基本反映岚皋县地质灾害分布规律,也可作为地质灾害预警区域的划分以及地质灾害模型建立的参考。
4.2.1 评价因子的选取
对地质灾害评价因子的选取也就是对影响地质灾害因素的确定,它应具有全面性和准确性。但是在具体的应用时评价因子过多或者过于全面反而不能够有效地做出评价,所以应根据具体实际情况进行合理的选取。根据影响岚皋县地质灾害发生的实际情况,选取地形地貌,地层岩性,地形坡度,降雨作为评价指标并运用GIS技术将岚皋县地质图剖分成368个2.5(km)*2.5(km)的网格,然后计算每个网格致灾因素发生地质灾害的概率以及它们的综合叠加所对应的危险性等级,最后结合降雨等级建立地质灾害预警模型。
4.2.2 危险性等级与降雨等级的划分
划分危险性等级需分别计算每个网格地形地貌,地层岩性,地形坡度危险性的概率,具体过程如下[20]:
1)地形地貌危险性概率
其中,F地为某个网格地形地貌危险性概率,f高、f中、f低、f河谷分别为高山、中山、低山、河谷阶地地质灾害发生的概率值,x1、x2、x3、x4分别为高山、中山、低山、河谷阶地在某个网格内所占的面积。
2)地层岩性危险性概率
其中,F岩为某个网格地层岩性危险性概率,f碳酸岩、f浆岩、f变质岩、f土分别为中厚层坚硬盐酸岩类、块状坚硬岩浆岩类、片状软弱浅变质岩类、粘性土及碎石土类地质灾害发生的概率值,x1、x2、x3、x4分别为这四种地层岩性在某个网格内所占的面积。
3)地形坡度危险性概率
其中,F坡为某个网格地形坡度危险性概率,f1、f2、f3分别为坡度小于10°,10°~25°之间,大于25°的坡型地质灾害发生的概率值,x1、x2、x3分别为坡度小于10°,10°~25°之间,大于25°的坡型在某个网格内所占的面积。
将这三种因素的危险性概率综合叠加后,就得到了某个网格内地质灾害危险性的概率,即:
其中,p为某个网格内地质灾害危险性的概率,N为某个网格内已发生地质灾害的灾害点个数。根据叠加的结果,分析总结出危险性概率和危险性等级的关系表,如表2所示。
表2 危险性概率与等级对应关系表
对岚皋县近20年的降雨量和地质灾害事件进行综合分析和总结,初步制定出地质灾害预警降雨量临界值表,如表3所示。
表3 降雨量临界值表
4.2.3 地质灾害预警模型建立
分别提取出每个网格的危险性等级,降雨等级和灾害等级,将危险性等级和降雨等级作为BP神经网络训练的输入样本数据,灾害等级作为输出样本数据,为了使网络训练结果更加良好,对相关的数据进行处理使其介于[0.1,0.9]之间,对原始的输出样本数据处理结果如表4所示。
表4 灾害等级处理表
网络的输入层与危险性等级和降雨等级所对应,即输入层元素的数目为2,输出层与灾害等级对应,即输出层元素的数目为5,经过对网络多次的测试,当中间层元素的个数为5时输出结果最接近实际并且网络收敛速度最快,所以创建结构为2-5-5的神经网络模型,如图4所示。
图4 地质灾害预警神经网络模型
根据岚皋县368个网格地质灾害原始样本数据(图9,每个网格20条数据)并结合GIS技术,得到岚皋县地质灾害危险性分区图,该县地质危险性程度主要被分为三种,即低危险、中危险和高危险,如图5所示。
图5 岚皋县地质灾害危险性分区
根据网格训练数据的处理原则,把从图9和图5得到原始样本数据进行归一化处理,得到BP神经网络训练样本数据,如图8所示。然后利用java调用神经网络组件,将各个网格的训练样本数据都进行10000次的训练,并把得到的每个网格的权值矩阵存入数据库,同时对每个网格每次训练后得到的权值矩阵进行正确率测试,所有网格测试正确率的平均结果,如图6所示。
图6 BP神经网络模型训练正确率测试图
从图6中可以看出随着训练次数的增加,网格权值矩阵预测的正确率整体趋于上升。一般认为训练次数达到最大时,正确率能大于90%则可认为该网络的输出结果比较精确可以用来进行预测。
将2010年7月岚皋县大道河镇地质灾害样本数据(图10)作为研究对象,取出网格危险性等级和预报降雨等级,并从数据库中读出该网格所对应的权值矩阵,调用神经网络组件进行网格地质灾害等级预测,然后对岚皋县大道河镇每个网格都得到一个预测结果,最后经分析得到了该地区的地质灾害预报等级为(0,0,0.0039,0.9961,0),与实际的灾害等级(0,0,0,1,0)非常的接近,并且可认为0.0039接近于0,0.9961接近于1,预测结果为四级与实际比较相符。
图7 岚皋县大道河镇地质灾害预警区划图
图8 BP神经网络训练样本数据
图9 岚皋县368个网格地质灾害原始样本数据
图10 2010年7月岚皋县大道河镇地质灾害样本数据及预测结果
对最终的预测进行分析处理,结合GIS与java技术生成对应的地质灾害预警区划图(图7)和预警信息并在系统的首页进行展示,最后通过通信基站将预警信息发送达到预警的效果。
根据陕西省岚皋县地质灾害数据,建立了岚皋县地质灾害预警的BP神经网络细网格模型,并对2010年7月岚皋县大道河镇的地质灾害进行了验证,预测的结果与真实情况比较相符,在一定程度上能够说明利用该方法进行地质灾害预测是较为可行的。利用BP神经网络的自学习、自适应、联想以及善于从大量数据中分析提取宏观统计规律的特点并结合GIS强大的空间信息分析能力,来对地质灾害进行预警分析是一种科学的尝试,也具有广泛的应用前景。