基于BP-神经网络的地震预测_第1页
基于BP-神经网络的地震预测_第2页
基于BP-神经网络的地震预测_第3页
基于BP-神经网络的地震预测_第4页
基于BP-神经网络的地震预测_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于BP神经网络的地震预测以我国西南某地震常发地区的地震资料作为样本来源,实现基于神经网络的地震预测。根据这些地震资料,提取出7个预测因子和实际的震级M作为输入和目标向量。预测因子为:(1)半年内M大于等于3的地震累计频度;(2)半年内能量释放积累值;(3)b值;(4)异常地震带个数;(5)地震条带个数;(6)是否处于活动期内;(7)相关地震区地震震级。通过数据的收集并对10个样本进行归一化处理,如表1:表1累计释放b值异常地震地震条带活动周相关区实际震级地震累计能量群个数个数期震级频度00.39150.28350.62100.41580.21600.99900.58050.08100.391

2、500.47410.54021.000041830.49480.03830.49250.06920.12300.620.770.680.630.670.710.750.710.760.9800.5010.500.5000.500.50.50.5001000011111100000.31580.31581.00000.73680.26320.94740.36840.05260.897400.53130.59380.93750.43750.50001.00000.37500.31250.6563根据以上数据对这一地区的地震进行预测,其中待测数据如表2,并对该地区的地震定级。表2地震累计频度累计释放

3、能量B值异常地震群个数地震条带个数活动周期相关区震级实际震级0.02700.17550.43200.49950.68850.54000.16200.07420.36670.37900.43470.58420.80380.25650.620.770.680.630.670.710.75000.500.50.5000.5000.50.5001111110.21050.73680.26320.68420.42110.57890.47370.18750.40620.43750.59380.62500.71870.3750一、问题重述以我国西南某地震常发地区的地震资料作为样本来源,基于BP神经网络对该地

4、的地震进行预测。通过对该地区地震的统计,从中提取出7个预测因子作为输入向量,实际的震级作为输出向量,对已有的数据进行归一化处理,建立一个BP神经网络通过训练、仿真,满足允许的一定误差后,对该地区震级进行预测(待测数据如表2)。二、问题分析引发地震的相关性因素很多,其产生机理的复杂性、孕育过程的非线性和认识问题的困难性使得人们很难建立较完善的物理理论模型。对有关物理参数加以精确的描述,只能借助一些观测到的相关现象进行分析、总结和推理。相对于传统的预报方法,神经网络以其容错能力强、预测与识别速度快和避开了特征因素与判别目标的复杂关系描述,特别是公式的描述等特性能够对复杂系统模型进行很好的预测。因此

5、根据已知的资料实现基于BP神经网络的地震预测,利用已知的数据通BP神经网络学习和训练,在这里采用单层隐的BP网络进行地震预测。初步确定隐含层,在三层BP网络中隐含层神经元个数a和输层神经元个数b之间有以下近似关系:a=2b+1。由于输入样本为7维向量,因此,输入层一共有7个神经元,则中间层应该有15个神经元。网络只有1个输出数据,则输出层只有1个神经元,因此,网络应该为7,15,1的结构。按照BP网络的一般设计原则,由于输出已被归一化到区间0,1中,因此,隐含层神经的激活函数可设定为tansig;输出层神经元的传递函数可以设定为S型对数函数即logsig函数。三、模型假设1、神经网络在外界输入

6、样本的刺激下不断改变网络的连接权值,以使网络的输出不断地接近期望的输出。2、对各连接权值的动态调整。3、权值调整规则,即在学习过程中网络中各神经元的连接权变化所依据的一定的调整规则。4、学习是有有导师学习法。四、符号说明BP神经网络的创建格式及其使用函数1、net=newff(PR,S1S2.SN1,TF1TF2.TFN1,BTF,BLF,PF),2、net为创建的新BP神经网络;3、PR为网络输入取向量取值范围的矩阵;4、S1S2SNl表示网络隐含层和输出层神经元的个数;5、TFlTF2TFN1表示网络隐含层和输出层的传输函数,默认为tansig;6、BTF表示网络的训练函数,默认为trai

7、nlm;7、BLF表示网络的权值学习函数,默认为learngdm;8、PF表示性能数,默认为mse。9、a=logsig():对数Sigmoid激活函数,对数Sigmoid函数把神经元的输入范围从(-,+)映射到(0,1)。它是可导函数,适用于BP训练的神经元。10、Net=train():神经网络训练函数。11、Net=sim():神经网络仿真函数。如图1所示,一个具有n个输入的神经元模型X(x,x,.x)为12、a=postmnmx():数据的反归一化处理。五、模型建立1、BP神经网络模型12n神经元的输入,为可调的输入权值,W(w,w,.w)为偏移信号,用12n于建模神经元的兴奋阈值.u

8、和f分别表示神经元的基函数和激活函数.基函数u是一个多输入单输出函数,u=u();激活函数f的一般作用是对基函数的输出进行“挤压”:y=f(u),即通过非线性函数f()将u变换到指定范围内.xx12w1w2ufYx.wnn图1神经网络模型本题中用到的训练样本P为10组,每组7个数据,分别是与震级有关的7个预告因子。在三层BP网络中隐含层神经元个数a和输层神经元个数b之间有以下近似关系:a=2b+1。因此输入层一共有7个神经元,则中间层应该有15个神经元。网络只有1个输出数据,则输出层只有1个神经元,因此,网络应该为7,15,1的结构,如图2,放能量b值震群数带个数地震累计累计释异常地地震条频数

9、活动周期相关区震级.震级图2地震预测神经网络模型用输入的10组训练样本P对网络进行训练,使它能够根据输入数据,预测实际震级.网络的实际输出用Y表示。六、模型求解利用表1的数据对网络进行训练,训练后的网络才有可能满足于实际应用的要求,网络的训练次数如图3。由于本题所给的数据已经是经过归一化处理的,在数据反归一化时,不能确定原数据的最大值与最小值。根据我们查阅资料,在此题中我们采用的最大与最小值4.46.1。通过训练后的震级Y=0.00870.53130.59380.93770.43750.50000.99500.37500.31220.6563;实际的震级Y1=00.53130.59380.93

10、750.43750.50001.00000.37500.31250.6563;误差值e=0.00870.00000.00000.00020.00000.00000.00500.00000.00030.000;对表2数据经过网络测试:网络输出=0.01200.72660.35150.66310.65540.75700.5027;实际的震级=0.18750.40620.43750.59380.62500.71870.3750;对表2的数据的输出结果经过反归一化处理后得到预报震级和实际震级相比较可得到网络的预报误差(如图4,如表3所示)。图3训练次数0.350.30.250.20.150.10.05

11、01234567图4误差值表3预测误差实际震级预测震级预测误差5.40945.26020.14925.59535.86760.27235.62195.54880.07315.75475.81370.05895.78135.80710.02595.86095.89340.03255.56875.67730.1086接着对隐含层的层数进行调整,分别调为3,10,20,13等对网络进行训练和测试,然后与15时的预测结果的误差进行对比(如图5)。使用不同层数与实际震级的对比(如图4),虽然网络训练的精度提高,并不意味着层数越多预测的效果越好,相反取3层得效果要好于20层,但是与15层相比而言,他的精确

12、度要小一些。所以对于BP神经网络的隐含层的层数而言,不是越多越好。1.51实际值15层3层10层20层13层0.501234567图5不同层数之间对比七、参考文献1.杨居义,易永宏,基于BP神经网络的地震预测研究J,微电子学与计算机,1000-7180(2008)10-012904。2.刘洪海陈晨,基于BP神经网络的地震预测J,中国科技信息,2009年第7期.八、附录7.1、clearallclccloseallA=xlsread(dizhenxuexi.xls)%读表一的数据P=A(:,1:7);T=A(:,8);%建立7*15*1结构的BP网络net=newff(01;01;01;01;0

13、1;01;01,7,15,1,tansig,logsig,purelin,traingdx)net.trainParam.goal=0.0001%设定误差net.trainParam.epochs=10000%设定最大迭代次数net=train(net,P,T)%对网络进行训练aa=sim(net,P)%对网络进行访真%画图像,将表一的实际震级与预测震级进行对比,-*表示实际震级,-+表示预测震级figureX=1:10;plot(X,T,-*,X,aa,R-+)a=xlsread(dizhenceshi.xls)%读表二的数据p=a(:,1:7);an=sim(net,p)%对表二的数据进行

14、仿真%对表二的地震预测值反归一处理ant=postmnmx(an,4.4,6.1)%对表二的地震实际值进行反归一处理ann=a(:,8);x_min=min(ann(1,:);x_max=max(ann(1,:);tt=postmnmx(ann,4.4,6.1)%画图像,将表二的实际震级与预测震级进行对比,-表示实际震级,-+表示预测震级figurex=1:7;plot(x,tt,-,x,ant,R-+)%误差图像c=tt-ant%预测误差;figureplot(x,tt-ant)7.2clearallclccloseall%*隐含层的层数为15层*A=xlsread(dizhenxuexi.

15、xls)%读表一的数据P=A(:,1:7);T=A(:,8);%建立7*15*1结构的BP网络net=newff(01;01;01;01;01;01;01,7,15,1,tansig,logsig,logsig,traingdx)net.trainParam.goal=0.00001%设定误差net.trainParam.epochs=10000%设定最大迭代次数net=train(net,P,T)%对网络进行训练aa=sim(net,P)%对网络进行访真%画图像,将表一的实际震级与预测震级进行对比,-*表示实际震级,-+表示预测震级X=1:10;figure(1)plot(X,T,-*,X,

16、aa,R-+)%*对表2数据进行预测*a=xlsread(dizhenceshi.xls)%读表二的数据p=a(:,1:7);an=sim(net,p)%对表二的数据进行仿真m=1:7;t=a(:,8);figure(2)plot(m,t,-,m,an,-);%对表二的地震预测值反归一处理ant=postmnmx(an,4.4,6.1)%对表二的地震实际值进行反归一处理ann=a(:,8);x_min=min(ann(1,:);x_max=max(ann(1,:);tt=postmnmx(ann,4.4,6.1)c=abs(tt-ant)%预测误差;%*隐含层的层数为3层*A=xlsread(

17、dizhenxuexi.xls)%读表一的数据P=A(:,1:7);T=A(:,8);%建立7*3*1结构的BP网络net=newff(01;01;01;01;01;01;01,7,3,1,tansig,logsig,logsig,traingdx)net.trainParam.goal=0.00001%设定误差net.trainParam.epochs=10000%设定最大迭代次数net=train(net,P,T)%对网络进行训练aa=sim(net,P)%对网络进行访真a=xlsread(dizhenceshi.xls)p=a(:,1:7);an1=sim(net,p)%对表二的数据进行

18、仿真%对表二的地震预测值反归一处理ant=postmnmx(an,4.4,6.1)%对表二的地震实际值进行反归一处理ann=a(:,8);x_min=min(ann(1,:);x_max=max(ann(1,:);tt=postmnmx(ann,4.4,6.1)c1=abs(tt-ant)%预测误差;%*隐含层的层数为10层*A=xlsread(dizhenxuexi.xls)%读表一的数据P=A(:,1:7);T=A(:,8);%建立7*10*1结构的BP网络net=newff(01;01;01;01;01;01;01,7,10,1,tansig,logsig,logsig,traingdx

19、)net.trainParam.goal=0.00001%设定误差net.trainParam.epochs=10000%设定最大迭代次数net=train(net,P,T)%对网络进行训练aa=sim(net,P)%对网络进行访真a=xlsread(dizhenceshi.xls)p=a(:,1:7);an2=sim(net,p)%对表二的数据进行仿真%对表二的地震预测值反归一处理ant=postmnmx(an,4.4,6.1)%对表二的地震实际值进行反归一处理ann=a(:,8);x_min=min(ann(1,:);x_max=max(ann(1,:);tt=postmnmx(ann,4

20、.4,6.1)c2=abs(tt-ant)%预测误差;%*隐含层的层数为20层*A=xlsread(dizhenxuexi.xls)%读表一的数据P=A(:,1:7);T=A(:,8);%建立7*20*1结构的BP网络net=newff(01;01;01;01;01;01;01,7,20,1,tansig,logsig,logsig,traingdx)net.trainParam.goal=0.00001%设定误差net.trainParam.epochs=10000%设定最大迭代次数net=train(net,P,T)%对网络进行训练aa=sim(net,P)%对网络进行访真a=xlsread(dizhenceshi.xls)p=a(:,1:7);an3=sim(net,p)%对表二的数据进行仿真%对表二的地震预测值反归一处理ant=postmnmx(an,4.4,6.1)%对表二的地震实际值进行反归一处理ann=a(:,8);x_min=min(ann(1,:);x_max=max(ann(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论