下面是小编辛苦为大家带来的bp神经网络最新8篇,希望能够帮助到大家。
关键词 BP神经网络 数据挖掘 最速下降法 函数逼近 模式识别
中图分类号:TP391 文献标识码:A
1研究背景
BP神经网络是一种多层的前馈网络而且它的学习算法是一种误差逆向传播算法。BP神经网络是目前研究最为成熟、应用最为广泛的人工神经网络模型之一。由于其结构简单、可操作性强、具有较好的自学习能力、能够有效地解决非线性目标函数的逼近问题等优点,因此被广泛应用于自动控制、模式识别、图像识别、信号处理、预测、函数拟合、系统仿真等学科和领域中。
2 BP神经网络原理
2.1概述
BP神经网络是一种反向传播误差算法然后训练的一个多层前馈网络,简称为BP算法,它应用在已被开发出来的神经网络中,到目前为止是应用最为广泛的网络模型之一。BP神经网络可以学习并且存储非常多的输入模式与输出模式之间的映射关系,却无需在学习和存储前事先揭示并描述输入输出间的映射关系的一种数学方程。它使用最速下降法,通过对输出误差的反向传播,获得不断调整网络连接权系数和阈值的信息,最终使神经网络的平方误差最小,达到期望要求。
2.2 BP神经网络结构
BP神经网络模型是一个三层网络,它的拓扑结构可被划分为:输入层、输出层、隐含层。其中输入层与输出层具有更重要的意义,因此它也可以为两层网络结构(把隐含层划入输入层或者把隐含层去掉)。每层都由许多简单的能够执行并行运算的神经元组成,这些神经元与生物系统中的那些神经元非常类似,但其并行性并没有生物神经元的并行性高。BP神经网络是一个前馈网络,因此它具有前馈网络所具有的特性:相邻两层之间的全部神经元进行互相连接,而处于同一层的神经元不能进行联接。
2.3 BP算法原理
BP神经网络的基本原理是把一个输入矢量经过隐含层的一系列变换,然后得到一个输出矢量,从而实现输入数据与输出数据间的一个映射关系。输入信息的正向传播,以及输出误差的反向传播,构成了 BP网络的信息循环。BP算法根据输出误差来修改各神经元连接的连接权系数,其目的是使输出误差达到预计范围内。BP网络需要实际输出与期望输出之间的误差来确定是否要修改神经元连接的连接权系数。其中,期望输出便是该网络意义上的“导师”。BP网络具有对称性的网络结构,在输出端的每一个处理单元基本上都具有一个相同的激励函数。
BP算法由正向传播和反向传播两部分组成。在正向传播过程中,输入信息从输入层经隐层单元处理后,传至输出层。每一层神经元的状态只影响下一层神经元的状态。如果在输出层得不到期望输出,就转为反向传播,即:把误差信号沿连接路径返回,并通过修改各层神经元之间的连接权值,使误差信号最小。
具体的算法步骤可概括如下:
第一步,选取初始权值、阈值。
第二步,重复下述过程直至满足性能要求为止:
(1)对于学习样本P=1到N
①计算每层各节点j的输出yj,netj和的值(正向过程);
②对各层从M层到第二层,对每层各节点反向计算%]j(反向过程);
(2)修改权值
具体推导过程见参考文献4。
3基于BP神经网络设计的实例
3.1函数逼近
我们设计一个简单的BP网络,实现对非线性函数的逼近。通过改变该函数的参数以及BP网络隐层神经元的数目,来观察训练时间以及训练误差的变化时间。将要逼近的非线性函数设为正弦函数,其频率参数k可以调节。假设频率参数k=2,绘制此函数的曲线。如图1。
(1)网络建立:用MATLAB编程建立BP网络结构,为二层BP神经网络。隐层神经元数目n 可以改变,暂时设为n=10,输出层有一个神经元。网络训练采用Levenberg-Marquardt算法trainlm。
分析:因为建立网络时,权值和阈值的初始化是随机的,所以网络输出结果很差,根本达不到函数逼近的目的,并且每次运行的结果也有所不同。
(2)网络训练:在MATLAB里应用train()函数对网络进行训练之前,需要预先设置训练参数。将训练时间设置为50,训练精度设置为0.01,其余参数用默认值。
(3)网络测试:对于训练好的网络进行仿真,绘制网络输出曲线,并与原始非线性函数曲线相比较,结果如下图2。
由此可看出,得到的曲线和原始的非线性函数曲线很接近。这说明经过训练后,BP网络对非线性函数的逼近效果非常好。
(4)讨论分析:改变非线性函数的频率和BP网络隐层神经元的数目,对于函数逼近的效果有一定的影响。网络非线性程度越高,对BP网络的要求越高,则相同的网络逼近效果要差一些;隐性神经元的数目对于网络逼近效果也有一定的影响,一般来说隐形神经元数目越多,则BP网络逼近非线性函数的能力越强,同时网络训练所用的时间相对来说也要长一些。
参考文献
[1] 闫志忠。BP神经网络模型的改进及其应用研究[D].吉林大学,2003.
[2] 李友坤。BP神经网络的研究分析及改进应用[D].安徽理工大学,2012.
[3] 吴昌友。神经网络的研究及应用[D].东北农业大学, 2007.
[4] 贺清碧。BP神经网络及应用研究[D].重庆交通学院 重庆交通大学,2004.
[关键词]MATLABBP神经网络预测模型数据归一化
一、引言
自20世纪70年代初以来的30多年里,世界黄金价格出现了令人瞠目的剧烈变动。20世纪70年代初,每盎司黄金价格仅为30多美元。80年代初,黄金暴涨到每盎司近700美元。本世纪初,黄金价格处于每盎司270美元左右,此后逐年攀升,到2006年5月12日达到了26年高点,每盎司730美元,此后又暴跌,仅一个月时间内就下跌了约160美元,跌幅高达21.9%。最近两年,黄金价格一度冲高到每盎司900多美元。黄金价格起伏如此之大,本文根据国际黄金价格的影响因素,通过BP神经网络预测模型来预测长期黄金价格。
二、影响因素
刘曙光和胡再勇证实将观察期延长为1972年~2006年时,则影响黄金价格的主要因素扩展至包含道琼斯指数、美国消费者价格指数、美元名义有效汇率、美国联邦基金利率和世界黄金储备5个因素。本文利用此观点,根据1972年~2006年各因素的值来建立神经网络预测模型。
三、模型构建
1.模型选择:BP网络具有理论上能逼近任意非线性函数的能力,将输入模式映射到输出模式,只需用已知的模式训练网络,通过学习,网络就有了这种映射能力。2.样本数据归一化:在训练前,对数据进行归一化处理,把输入向量和输出向量的取值范围都归一到[0,1]。
3.BP网络设计:采用单隐层的BP网络进行预测,由于输入样本为5维的输入向量,因此输入层一共有5个神经元,中间层取20个神经元,输出层一个神经元(即黄金价格),网络为5*20*1的结构。中间层的传递函数为S型正切函数,输出层为S型对数函数。中间层的神经元个数很难确定,测试时分别对12,15,20个数进行测试,寻找误差最小的。
4.网络训练:训练次数epochs5000,训练目标goal0.001
对30个样本数据进行训练,经过1818次的训练,目标误差达到要求,如图2所示:神经元个数为20个时误差最小,此时网络的仿真结果如图3所示,预测精度80%以上,效果满意。
四、结论
在对1976年~2006年的影响国际黄金价格的五种因素的数据进行归一化处理后,用MATLAB建立的BP神经网络预测模型进行预测,达到了很好的效果。
国际黄金的长期价格受到许多因素的影响,本文只是对道琼斯工业指数等影响因素诸如分析,来预测长期的国际金价。还有其他因素,如国际油价,局部政治因素等,如果考虑进去,预测精度会进一步提高。
参考文献:
关键字神经网络,BP模型,预测
1引言
在系统建模、辨识和预测中,对于线性系统,在频域,传递函数矩阵可以很好地表达系统的黑箱式输入输出模型;在时域,Box-Jenkins方法、回归分析方法、ARMA模型等,通过各种参数估计方法也可以给出描述。对于非线性时间序列预测系统,双线性模型、门限自回归模型、ARCH模型都需要在对数据的内在规律知道不多的情况下对序列间关系进行假定。可以说传统的非线性系统预测,在理论研究和实际应用方面,都存在极大的困难。相比之下,神经网络可以在不了解输入或输出变量间关系的前提下完成非线性建模[4,6]。神经元、神经网络都有非线性、非局域性、非定常性、非凸性和混沌等特性,与各种预测方法有机结合具有很好的发展前景,也给预测系统带来了新的方向与突破。建模算法和预测系统的稳定性、动态性等研究成为当今热点问题。目前在系统建模与预测中,应用最多的是静态的多层前向神经网络,这主要是因为这种网络具有通过学习逼近任意非线性映射的能力。利用静态的多层前向神经网络建立系统的输入/输出模型,本质上就是基于网络逼近能力,通过学习获知系统差分方程中的非线性函数。但在实际应用中,需要建模和预测的多为非线性动态系统,利用静态的多层前向神经网络必须事先给定模型的阶次,即预先确定系统的模型,这一点非常难做到。近来,有关基于动态网络的建模和预测的研究,代表了神经网络建模和预测新的发展方向。
2BP神经网络模型
BP网络是采用Widrow-Hoff学习算法和非线性可微转移函数的多层网络。典型的BP算法采用梯度下降法,也就是Widrow-Hoff算法。现在有许多基本的优化算法,例如变尺度算法和牛顿算法。如图1所示,BP神经网络包括以下单元:①处理单元(神经元)(图中用圆圈表示),即神经网络的基本组成部分。输入层的处理单元只是将输入值转入相邻的联接权重,隐层和输出层的处理单元将它们的输入值求和并根据转移函数计算输出值。②联接权重(图中如V,W)。它将神经网络中的处理单元联系起来,其值随各处理单元的联接程度而变化。③层。神经网络一般具有输入层x、隐层y和输出层o。④阈值。其值可为恒值或可变值,它可使网络能更自由地获取所要描述的函数关系。⑤转移函数F。它是将输入的数据转化为输出的处理单元,通常为非线性函数。
2.1基本算法
BP算法主要包含4步,分为向前传播和向后传播两个阶段:
1)向前传播阶段
(1)从样本集中取一个样本(Xp,Yp),将Xp输入网络;
(2)计算相应的实际输出Op
在此阶段,信息从输入层经过逐级的变换,传送到输出层。这个过程也是网络在完成训练后正常运行时的执行过程。
2)向后传播阶段
(1)计算实际输出Op与相应的理想输出Yp的差;
(2)按极小化误差的方式调整权矩阵。
这两个阶段的工作受到精度要求的控制,在这里取作为网络关于第p个样本的误差测度,而将网络关于整个样本集的误差测度定义为。图2是基本BP算法的流程图。
2.2动态BP神经网络预测算法
在经典的BP算法以及其他的训练算法中都有很多变量,这些训练算法可以确定一个ANN结构,它们只训练固定结构的ANN权值(包括联接权值和结点转换函数)。在自动设计ANN结构方面,也已有较多的尝试,比如构造性算法和剪枝算法。前一种是先随机化网络,然后在训练过程中有必要地增加新的层和结点;而剪枝法则正好相反。文献[2]中提出了演化神经网络的理念,并把EP算法与BP进行了组合演化;也有很多学者把遗传算法和BP进行结合,但这些算法都以时间复杂度以及空间复杂度的增加为代价。根据Kolmogorov定理,对于任意给定的L2型连续函数f:[0,1]nRm,f可以精确地用一个三层前向神经网络来实现,因而可以只考虑演化网络的权值和结点数而不影响演化结果。基于此,在BP原有算法的基础上,增加结点数演化因子,然后记录每层因子各异时演化出的结构,最后选取最优的因子及其网络结构,这样就可以避免由于增加或剪枝得到的局部最优。根据实验得知,不同的预测精度也影响网络层神经元的结点数,所以可根据要求动态地建立预测系统。具体步骤如下:
(1)将输入向量和目标向量进行归一化处理。
(2)读取输入向量、目标向量,记录输入维数m、输出层结点数n。
(3)当训练集确定之后,输入层结点数和输出层结点数随之而确定,首先遇到的一个十分重要而又困难的问题是如何优化隐层结点数和隐层数。实验表明,如果隐层结点数过少,网络不能具有必要的学习能力和信息处理能力。反之,若过多,不仅会大大增加网络结构的复杂性(这一点对硬件实现的网络尤其重要),网络在学习过程中更易陷入局部极小点,而且会使网络的学习速度变得很慢。隐层结点数的选择问题一直受到神经网络研究工作者的高度重视。Gorman指出隐层结点数s与模式数N的关系是:s=log2N;Kolmogorov定理表明,隐层结点数s=2n+1(n为输入层结点数);而根据文献[7]:s=sqrt(0.43mn+0.12nn+2.54m+0.77n+0.35)+0.51[7]。
(4)设置结点数演化因子a。为了快速建立网络,可以对其向量初始化,并从小到大排序[4,7]。
(5)建立BP神经网络。隐含层传递函数用tansig,输出层用logsig,训练函数采用动态自适应BP算法,并制订停止准则:目标误差精度以及训练代数。
(6)初始化网络。
(7)训练网络直到满足停止判断准则。
(8)用测试向量对网络进行预测,并记录误差和逼近曲线,评估其网络的适应性。其适应度函数采取规则化均方误差函数。
(9)转到(5),选取下一个演化因子,动态增加隐含层结点数,直到最后得到最佳预测网络。
3基于神经网络的预测原理[4]
3.1正向建模
正向建模是指训练一个神经网络表达系统正向动态的过程,这一过程建立的神经网络模型称为正向模型,其结构如图3所示。其中,神经网络与待辨识的系统并联,两者的输出误差用做网络的训练信号。显然,这是一个典型的有导师学习问题,实际系统作为教师,向神经网络提供算法所需要的期望输出。当系统是被控对象或传统控制器时,神经网络多采用多层前向网络的形式,可直接选用BP网络或它的各种变形。而当系统为性能评价器时,则可选择再励学习算法,这时网络既可以采用具有全局逼近能力的网络(如多层感知器),也可选用具有局部逼近能力的网络(如小脑模型控制器等)。3.2逆向建模
建立动态系统的逆模型,在神经网络中起着关键作用,并且得到了广泛的应用。其中,比较简单的是直接逆建模法,也称为广义逆学习。其结构如图4所示,拟预报的系统输出作为网络的输入,网络输出与系统输入比较,相应的输入误差用于训练,因而网络将通过学习建立系统的逆模型。但是,如果所辨识的非线性系统是不可逆的,利用上述方法将得到一个不正确的逆模型。因此,在建立系统时,可逆性应该先有所保证。
4应用实例分析
以我国西南某地震常发地区的地震资料作为样本来源,实现基于动态神经网络的地震预报。根据资料,提取出7个预报因子和实际发生的震级M作为输入和目标向量。预报因子为半年内M>=3的地震累计频度、半年内能量释放积累值、b值、异常地震群个数、地震条带个数、是否处于活动期内以及相关地震区地震级。在训练前,对数据进行归一化处理。由于输入样本为7维的输入向量,一般情况下输入层设7个神经元。根据实际情况,输出层神经元个数为1。隐含层神经元的传递函数为S型正切函数,输出层也可以动态选择传递函数。实例数据来自文献[4],将数据集分为训练集、测试集和确定集。表1中的7×7数组表示归一化后的训练向量,第一个7表示预报因子数,第二个7表示样本数。
表1归一化后的训练向量
在不同神经元数情况下,对网络进行训练和仿真,得到如图5所示的一组预测误差曲线。其中,曲线A表示隐层结点数为6时的预测误差曲线,曲线B表示隐含层结点数为3时的预测误差曲线,曲线C表示隐含层结点数为5时的预测误差曲线,曲线D表示隐含层结点数为4时的预测误差曲线。将五种情况下的误差进行对比,曲线C表示的网络预测性能最好,其隐含层神经元数为5,图中曲线E表示的是隐含层结点数为15时的预测误差曲线(文献[4]中的最好结果)。同时也证明,在设计BP网络时,不能无限制地增加层神经元的个数。若过多,不仅会大大增加网络结构的复杂性,网络在学习过程中更易陷入局部极小点,而且会使网络的学习速度、预测速度变得很慢。
5结论
本文针对基本的BP神经网络,提出了可动态改变神经元数(与精度相关)的BP神经网络预测方法,可以根据实际情况建立预测系统。用此种方法可以建立最好的神经网络,不会有多余的神经元,也不会让网络在学习过程中过早陷于局部极小点。
参考文献
[1]YaoX,LiuY.FastEvolutionaryProgramming.inEvolutionaryProgrammingⅤ,L.Fogel,P.AngelineandT.Bäck,Eds.Cambridge,MA:MITPress,1996,451-460
[2]XinYao,YongLiu,ANewEvolutionarySystemforEvolvingArtificialNeuralNetworksIEEETRANSACTIONSONNEURALNETWORKS,VOL8,NO.31997,694-714
[3]潘正君,康立山,陈毓屏。演化计算[M].北京:清华大学出版社,1998
[4]飞思科技产品研发中心。神经网络理论与实现。北京:电子工业出版社,2005
[5]蔡晓芬,方建斌。演化神经网络算法。江汉大学学报,第33卷第3期,2005.9
[6]蒋宗礼。人工神经网络导论。北京:高等教育出版社,2001
【关键词】傅里叶变换;BP神经网络;自适应滤波
引言
BP神经网络具有很强的非线性函数逼近、自适应学习和并行信息处理能力,为解决未知不确定非线性信息处理和自适应滤波提供了一条新途径[1]。但随着BP神经网络输入向量维数增加,其隐含层层数和学习次数也会相应增加,降低了网络的自适应性且延长了学习时间。傅里叶变换是数字信号处理领域一种很重要的算法,其思想是将原始信号从时域变换到频域,通过对频谱图的分析,去除高频处的频率分量,再将频域变换回时域,达到信号去噪滤波的功能[2]。利用傅里叶变换与神经网络相结合的方法,对信息进行预处理,减少信息处理量,再利用神经网络强大的非线性函数逼近能力,从而实现信号的自适应滤波,减少网络的待处理信息,增强网络的自适应能力,其工作过程如图1所示。
图1
1.BP神经网络模型
1.1 神经元结构模型
人工神经网络是人脑的某种抽象、简化或模拟,它由大量的神经元广泛互联而成。网络的信息处理由神经元之间的相互作用来实现,网络的学习和识别取决于神经元间连接权系数的动态演化过程[3],其模型可以用图2来表示。
输入向量与输出y之间的关系式;
其中权值向量,输入向量,阈值,活化函数。
图2
1.2 BP神经网络
BP神经网络(Back-Propagation Neural Network)是一种无反馈的前向网络,网络中的神经元分层排列,除了有输入层、输出层之外,还至少有一层隐含层,BP学习算法是调整权值使网络总误差最小。具有隐含层BP网络的结构如图3所示,图中设有M个输入节点,L个输出节点,隐含层含有n个神经元。其中为网络输入向量,为实际输出向量,为网络的目标输出,为网络的输出误差。BP网络学习流程:(1)网络初始化,确定输入向量与输出向量的维数、目标向量、学习次数以及允许的误差值。(2)输入学习规则,初始化权值W。(3)计算输出层的输出与目标向量的误差。(4)判断误差精度是否达到预定值,没有则调整权值W并改变学习规则。(5)误差精度达到预定值,学习结束。
图3
2.BP神经网络权值变换理论基础
BP网络的自适应过程,其实就是对输出层权系数和隐含层权系数的调整的过程。记为第i层网络节点输出,为第j层网络节点的输入,则:
(1)
(2)
(3)
(4)
记二次型误差函数:
(5)
3.数值仿真与分析
在MATLAB神经网络工具箱中提供了实现BP神经网络的创建,仿真环境以单输入单输出的非线性函数,分别作为输入函数和目标函数。本文同时采取傅里叶变换、BP神经网络以及基于傅里叶变换的BP神经网络分别进行仿真滤波[5][6],表1给出了三种算法在MATLAB软件中的仿真主要步骤。
表1
三种算法在MATLAB中仿真处理方法
傅里叶变换 采样点N=256,t=0:1/256:255/256,X=fft(x),前24个点不变,高频部分置0,x=ifft(X)
BP神经网络 N=256,t=0:1/256:255/256,T1=y(t),P1=x(t), net=newff(P1,T1,900),学习次数2000,误差精度0.01,[net,tr]=train(net,P1,T1)a1=sim(net,P1);
基于傅里叶变换的BP神经网络 X=fft(x),Y=fft(x),前24个点不变,高频置0,T2=Y(1,1:24),P2=X(1,1:24)net=newff(P2,T2,200),学习次数1000误差精度0.01,[net,tr]=train(net,P2,T2)
a2=sim(net,P2);x=ifft(a2);
图4为y(t)与x(t)函数的波形图,图5是经傅里叶变换处理后的x(t)波形,图6是BP网络自适应滤波后的x(t)波形,图7是基于傅里叶变换的BP网络作用后的x(t)自适应滤波后的波形。通过比较图5、6、7可以明显看出傅里叶变换的滤波效果出现高频振荡,BP网络自适应滤波在形状上几乎与元波形一致,但是在某些点位置出现疵点,而基于傅里叶变换的BP神经网络自适应滤波后波形几乎和目标函数y(t)波形完全一致。
图4
图5
图6
图7
4.结束语
本文通过三种算法在MATLAB中的仿真分析,可以得出在输入向量维数比较大时,可以采用基于傅里叶变换的BP神经网络的方法对含噪信息进行处理,不仅可以降低隐含层的层数,增加自适应能力和减少学习时间,而且在波形拟合上可以达到更好的效果。
参考文献
[1]华,李雷,赵力。基于BP神经网络的自适应补偿控制方法[J].计算仿真,2012,29(7):202-205.
[2]张德丰。MATLAB小波分析[M].北京:机械工业出版社,2009:39-48.
[3]杨芳,马建伟。基于神经网络自适应滤波的低频Prony分析[J].中国水能及电气化,2012,86(4):32-37.
[4]李国勇,杨丽娟。神经模糊预测控制及其MATLAB实现[M].北京:电子工业出版社,2013:17-22.
[5]高金辉,苏明坤。基于神经网络的自适应滤波研究[J].河南师范大学学报:自然科学版,2013,41(1):47-49.
关键词:BP神经网络;LabVIEW;图形化;Matlab
中图分类号:TP183 文献标识码:B 文章编号:1004-373X(2009)04-072-04
BP Neural Network′s Realization and Application in LabVIEW
LIAO Shenqin1,PENG Liangyu1,JIANG Yong2
(1.College of Phycics and Information,Hunan Normal University,Changsha,410081,China;
2.Sunplus Prof-tek Technology (Shenzhen) Co.Ltd.,Shenzhen,518000,China)
Abstract:BP neural network is a widely used feedforward neural network,LabVIEW is a graphical programming language,which provids a convenient and easy design environment,so it′s normally accepted by industrial sector and research liboratory.Two calculation methods of realizing BP neural network in LabVIEW are introduced,those are Matlab Script node and graphical programming,Matlab Script node imports the Matlab program and running it,graphical programming realizes the algorithm with the method of graphical programming,and takes the apply of BP neural network in function approach and distinguishing between categories as examples to explain the realization process of the two methods,and the results are precise and intuitive,fully reflect the feathures of LabVIEW as a graphical programming language.
Keywords:BP neural network;LabVIEW;graphical;Matlab
0 引 言
LabVIEW是美国 NI公司开发的高效图形化虚拟仪器开发平台,它的图形化编程具有直观、简便、快速、易于开发和维护等优点,在虚拟仪器设计和测控系统开发等相关领域得到了日益广泛的应用,它无需任何文本程序代码,而是把复杂、繁琐的语言编程简化成图形,用线条把各种图形连接起来。BP神经网络属于前馈神经网络,它广泛应用函数逼近、模式识别、分类和数据压缩等领域,若将神经网络与虚拟仪器有机结合,则可以为提高虚拟仪器测控系统的性能提供重要的依据。
1 BP神经网络学习算法
BP模型是一种应用最广泛的多层前向拓扑结构,以三层BP神经网络作为理论依据进行编程,它由输入层、隐层和输出层构成。设输入层神经元个数为I,隐层神经元个数为J,输出层神经元个数为K,学习样本有N个(X,Y)向量,表示为:输入向量X{x1,x2,…,xI},输出向量Y{y1,y2,…,yK},理想输出向量为T{t1,t2,…,tK}。
(1) 输入层节点i,其输出等于xi(i=1,2,…,I),将控制变量值传输到隐含层,则隐层第jЦ錾窬元的输入:
Иsj=∑Ii=1wjixi-θj=∑I+1i=1wjixi, j=1,2,…,J(1)И
其中:wji是隐层第j个神经元到输入层第i个神经元的连接权值。
(2) 隐层第jЦ錾窬元的输出:
Иhj=g(sj)=21+e-2sj-1, j=1,2,…,J(2)И
(3) 神经网络输出层,第kЦ錾窬元的输入为:
Иrk=∑Jj=1vkjhj, k=1,2,…,K(3)И
其中:vkj是输出层第k个神经元到隐层第j个神经元的连接权值。
(4)神经网络输出层,第kЦ錾窬元的输出为:
Иyk=g(rk)=11+e-rk, k=1,2,…,K(4)И
(5) 设定网络误差函数E:
ИE=1N∑Nk=1EkИ
其中:
ИEk=12∑j(tj-yj)2(5)И
(6) 输出层到隐层的连接权值调整量Еvkj:
ИЕvkj=Evkj=(tk-yk)hj,
j=1,2,…,J;k=1,2,…,K(6)И
(7) 隐层到输入层的连接权值调整量Еwji:
Еwji=Ewji=
∑Kk=1(tk-yk)•vkj[hj(1-hj)]xi,
j=1,2,…,J;i=1,2,…,I(7)
2 用LabVIEW实现BP神经网络的两种方法
用LabVIEW实现BP神经网络的两种方法为:
(1) 由于 Matlab具有强大的数学运算能力以及在测控领域的广泛应用。在 LabVIEW中提供了Matlab Script节点,用户可在节点中编辑Matlab程序,并在LabVIEW中运行;也可以在LabVIEW程序运行时直接调用已经存在的 Matlab程序,如使用节点则必须在系统中安装 Matlab5以上版本,在写入 Matlab节点前要将程序先调试通过,并确保其中变量的数据类型匹配。
(2) 由于LabVIEW的图形程序是独立于运行平台的,而且是一种数据驱动的语言,可以方便地实现算法且易修改,结合其 SubVI技术可以增加程序的利用率,因此可以采用图形编程的方法实现前向网络的算法。
2.1 利用Matlab Script节点实现
在此以对一个非线性函数的逼近作为例子来说明实现流程,其中输入矢量p=[-1∶0.05∶1];目标矢量t=sin(2*pi*p)+0.1randn(size(p))。利用Matlab Script节点实现BP 算法的过程如下:
(1) 新建一个LabVIEW vi,在框图程序中添加Matlab Script 节点。
(2) 在节点内添加Matlab的动量BP算法实现代码,并分别在节点左右边框分别添加对应的输入/输出参数,如图 1 所示。
(3) 在vi的前面板添加相应的控件,设置输入参数,连接输出控件。执行程序, 结果如图 2、图3 所示。
图1 Matlab Script实现改进的BP算法
图2 误差曲线图
图3 逼近曲线图
此方法能够直接利用Matlab强大的神经网络工具箱,程序运行时会自动调用系统中已安装的Matlab进行计算,不用进行复杂的编程,开发效率很高。
2.2 利用图形编程实现
LabVIEW是美国NI公司推出的基于图形化编程的虚拟仪器软件开发工具,它无需任何文本程序代码,而是把复杂、繁琐的语言编程简化成图形,用线条把各种图形连接起来。在此以一个设备状态分类器设计作为例子来说明实现流程输入,该设备有8个输入分量,即温度、湿度等外部条件;而输出状态则有3种,分别为正常、偏小、偏大。这里采用12个训练样本,每个样本有8个分量,3类输出分别编码为(0 1),(1 0),(1 1),以下即为输入样本及标准输出数据(见图4、图5)。
BP神经网络隐层输入在LabVIEW中的实现。根据BP学习算法中式(1)编写相应的程序。其中x为输入样本;w为隐层输入权值,主要应用 LabVIEW中的函数-数学-线性代数-矩阵A×B实现权值与输入样本的矩阵相乘,并通过 For循环计算得到 BP神经网络的隐层输入 H (见图6)。
(2)BP神经网络隐层输出H的图形化程序。根据算法中的式(2)编写,由于在很多测试实践中参数间的关系是非线性的,这里主要应用Sigmoid型tansig函数作为隐层的传递函数,主要应用程序面板中函数-数学-数值及基本与特殊函数等数学控件实现(见图7)。
图4 输入样本
图5 标准输出
图6 隐层输入的程序框图
图7 隐层输出的程序框图
(3)BP神经网络输出层的输入及输出程序框图与隐层的类似,分别根据式(3)、式(4)编程即可实现,在此不再重复。
(4) 网络误差函数E的图形化程序。根据算法中式(5)编写程序,其中:t为理想输出,y为网络输出。其中应用函数-数学-基本与特殊函数中的指数函数控件来实现 (见图8)。
(5) BP神经网络各参数调整量的图形化程序根据上述学习算法中的式(6)和式(7),其中:x为网络输入样本;y,t分别为网络实际输出和期望输出;h为隐层输出;v为隐层输出权值。通过调用 LabVIEW软件中数学计算控件,经过一系列数学计算,分别得到网络隐层输出权值调整量Δv以及隐层输入权值调整量Δw,如图9、图10所示。
图8 网络误差函数程序框图
图9 Δv的图形化程序
图10 Δw的图形化程序
(6) 完整的学习算法的图形化程序。将以上各个程序模块综合在一起,可以得到完整的学习算法实现程序,如图 11所示。
图11 完整的图形化程序
通过设定网络的输入样本x、输出期望t、 隐层输入权值w,输出v的初始值,经过一系列的矩阵运算,获得调整后隐层权值w,v参数值。
运行结果如图12所示,由图可以非常直观看出,网络输出与网络理想输出相当接近,说明网络训练的结果是满意的。
3 结 语
在利用LabVIEW实现BP神经网络的计算,方法一通过直接调用Matlab程序,简单易行,只是事先需要装有Matlab5.0以上的版本。方法二运用图形化编程对BP神经网络进行仿真,具有形象、直观、便于使用和理解的优于传统文本编程语言的特点。
图12 运行结果
参 考 文 献
[1]Allerhand A,Galuska A D.Implementation of LabVIEW forComputer Controlled Experiments in General Chemistry Laboratory Instruction [J].Chem.Educator,2000,5(2):71-76.
[2]飞思科技产品研发中心。神经网络理论与Matlab7实现[M].北京:电子工业出版社,2005.
[3]常晓丽。基于Matlab的BP神经网络的设计[J].机械工程与自动化,2006(4):36-37.
[4]郭红梅,于佐军。LabVIEW与Matlab混合编程的过程控制应用 [J].控制工程,2007(14):131-132.
[5]蔡清华,杨世锡,罗锡梁。基于虚拟仪器编程的BP神经网络学习算法仿真 [J].现代机械,2006(2):6-8.
[6]周丽霞,熊瑞平,杨荣松。LabVIEW在BP神经网络故障诊断系统中的应用 [J].机床与液压,2007,35(4):215-216.
[7]昝涛,王民,费仁元,等。LabVIEW中人工神经网络计算的实现及应用[J].微计算机信息,2006,22(6):122-124.
[8]粟钧,吴拓。基于虚拟仪器编程的BP神经网络算法学习算法仿真[J].广东轻工职业学院学报,2005,4(1):26-28.
[9]殷莹。BP网络在设备故障诊断中的应用与实现 [J].微计算机信息,2007,23(10):31-34.
[10]张雅丽,王宝光,赵海文,等。虚拟仪器在故障诊断中的应用 [J].机床与液压,2005(1):124-126.
[11] 曾祥学,罗卫华,张斌。基于LabWindows/CVI的人工神经网络BP算法的实现\.现代电子技术,2005(2):21-23.
作者简介 廖慎勤 女,1984年出生,湖南醴陵人,湖南师范大学硕士研究生。主要研究方向为模拟电路故障诊断。
彭良玉 女,1965年出生,湖南湘乡人,湖南师范大学教授,硕士生导师,北京航空航天大学博士后。主要研究方向为源滤波器的设计,模拟电路故障诊断,已80余篇。
江 勇 男,1985年出生,湖南醴陵人,凌阳科技公司通信部工程师。主要研究方向为通信终端设备开发,已1篇。
Abstract: The artificial neural network has a strong nonlinear mapping ability, has been applied to various fields such as pattern recognition, intelligent control, image processing and time series etc., in this paper, the heuristic improvement of BP algorithm was proposed aimed at the deficiencies of BP algorithms, and a common type of improvement was introduced aimed at the main drawback of the genetic algorithm through analysis and research on genetic neural network model and its algorithm.
关键词: BP算法;神经网络;遗传算法;改进
Key words: BP algorithm;neural network;genetic algorithm;improvement
中图分类号:TP39 文献标识码:A 文章编号:1006-4311(2012)34-0209-02
1 BP神经网络
1.1 BP神经网络概述 在神经网络模式识别系统中,应用最广泛的要算是BP网络,它是基于误差反向传播算法的一种具有非线性连续转移函数的多层前馈网络。由于多层前馈网络的训练经常采用误差反向传播算法,人们常把多层前馈网络直接称为BP网络。
BP算法可以小结为以下三个步骤:
①通过网络输入反向传播:
a0=p
am+1=fm+1(Wm+1am+bm+1),m=0,1,…,M-1
a=aM
②通过网络将敏感性反向传播:
sm=Fm(nm)(Wm+1)Tsm+1,m=M-1,…,2,1
③使用近似均方误差的BP算法更新权值和偏置值:
Wm(k+1)=Wm(k)-αsm(am-1)T
bm(k+1)=bm(k)-αsm
1.2 BP神经网络存在的问题 尽管BP网络有很多显著的优点,但也存在着一定的局限性。其主要问题如下:
①随着训练样本维数的增大,使收敛速度缓慢,从而降低学习效率。
②从数学角度上看BP算法是一种梯度最速下降法,这就可能出现局部极小值的问题,而得不到全局最优。
③网络中隐节点个数的选取缺乏理论指导,尚无明确的定义。
由于BP神经网络存在局部性,因此利用BP网络进行模式识别时,所得网络模型的参数容易陷入局部极小,因此需要对BP神经网络容易陷入局部极小的缺陷进行改进。
2 遗传算法
2.1 遗传算法概述 遗传算法(Genetic Algorithm——GA)正是以达尔文的自然进化论与遗传变异理论为基础的求解复杂全局优化问题的仿生型算法。该算法摒弃了传统的搜索方式,模拟自然界生物进化的过程,采用人工进化的方式对目标函数空间进行随机导向优化搜索。遗传算法求解问题的基本思想是:从问题的解出发的,将问题的一些可行解进行编码,这些已编码的解即被当做种群中的个体,每个个体实际上是染色体带有特征的实体;个体对环境适应能力的评价函数就是问题的目标函数;模拟遗传学中的杂交、变异、复制来设计遗传算子,用优胜劣汰的自然选择法则来指导学习和确定搜索方向;对由个体组成的中却进行演化,利用遗传算子来产生具有更高平均适应值和更好个体的种群,经过若干代后,选出适应能力最好的个体,它就是问题的最优解或满意解[1]。
2.2 遗传算法的缺陷及改进 遗传算法作为一种通用性好、鲁棒性强的新型优化搜索算法,为求解很多困难的问题打开了局面,但是在实际应用中,存在着:①早熟问题;②局部搜索能力差;③控制参数难以确定缺陷。
针对上述问题,目前已经提出的一些改进方法,概括起来主要有如下几种类型:
①改进遗传算法的使用技术或者组成成分,如选用适合问题特性的编码技术、优化控制参数等。
②采用混合遗传算法,即融合一些优化方法来提高遗传算法运行效率。如将遗传算法和模拟退火算法、爬山法等方法结合的混合遗传算法。
③采用非标准的遗传操作算子,如记忆算子、顶端增强算子等。
④采用动态自适应技术,在遗传过程中自适应的调整控制参数和编码精度,在保持种群多样性的同时保证遗传算法的收敛。
⑤采用并行遗传算法。
3 BP算法与遗传算法的结合
BP神经网络的学习是基于梯度下降法的,由于该算法搜索速度缓慢以及对初始值的依赖,导致存在局部最小值问题。而遗传算法作为一种具有较强全局搜索能力的算法,其搜索能够遍及整个寻优空间,因此容易接近全局最优解;且遗传算法有很强的鲁棒性,不要求目标函数连续可微,甚至不要求目标函数具有显函数形式,只要求问题可以计算[2]。因此将擅长全局搜索的遗传算法和具有很强局部寻优能力的BP算法结合起来,可以避免局部极小值问题并提高收敛速度,很快获得全局最优解。本文利用改进的遗传算法对BP神经网络同时进行权值和阈值的同步学习优化,提高算法的收敛速度和收敛精度,构造了一个能够获得待求问题满意解的三层GA-BP神经网络。
3.1 GA-BP神经网络的模型 GA-BP神经网络的基本构造思想就是先通过遗传算法在解空间中搜索到一个较优的网络形式,再利用BP算法在这个较优的解空间内定位最优解或满意解[3];具体地说就是先通过遗传算法对最佳的网络权值和阈值做快速的全局性搜索,当群体收敛至全局最优解附近区域时,以群体中的最优个体作为BP算法的初始点,利用BP算法进行进一步的局部搜索,同步学习网络的权值和阈值。当几代内遗传算法进化的目标函数不再减小或目标函数小于预设值时,表示两种算法需要进行切换。由于在实际应用中,求得的网络目标误差函数往往为人们预先设定的一个满意值,因此利用这种GA-BP顺序寻优的方法是切实可行的。
3.2 BP算法与GA-BP算法的仿真比较 利用传统的BP算法及本文提出的GA-BP算法分别对两种算法的时间收敛曲线进行对比研究,考虑故障诊断问题。应用样本训练后的节点连接权值,向网络输入待诊断的样本征兆参数,计算得出网络的实际输出值,根据输出值的大小,从而确定故障的类别。
BP算法与GA-BP算法的训练误差曲线如图1和图2所示。
GA-BP算法训练后的总误差为0.000417。通过两个实验时间训练曲线可以得出,基于GA-BP算法的神经网络能够有效地实现故障预测数据的训练,具有较快的学习速度及一定适用性。
4 总结
本文针对BP算法训练多层前馈网络模式识别系统的缺陷,提出了结合遗传算法的BP改进算法——GA-BP算法,并建立了对应的模式识别系统模型。然后利用该模型对实际的问题进行了模式分类训练和测试,测试结果表明GA-BP算法有效克服了网络训练时容易陷入局部极小值,导致网络训练失败的不足。
参考文献:
[1]杨南达,李世平。遗传算法研究[J].兵工自动化,2008,27(9):60~62.
[2]孙全玲,李莹莹。遗传算法优化神经网络结构的研究[J].福建电脑,2006(11):1~2.
关键词:网络安全;态势评估;BP算法
中图分类号:TP393文献标识码:A文章编号:1009-3044(2011)14-3265-02
Using Back Propagation to Achieve The Rating of The Network Security Posture
TANG Jin-min
(Hongli Network Limited Company of Changchun, Changchun 130051, China)
Abstract: In order to alleviate the increasingly serious problem of network security, we can use assessment technology of the network security situation, optimized the factors that affect network security in advance. we try to used Back Propagation in network security situation assessment, and used a lot of experimental data in the training model, tested some of the data.
Key words: network security; situation assessment; BP
随着互联网时代的来临,网络的规模和应用领域不断发展,人们对网络依赖程度不断增加,网络已经成为社会、经济、军事等领域中不可或缺的重要组成部分。但同时,我国网络安全问题日益突出,目前网络系统的安全现状已经清楚地表明:传统的网络安全防护技术已无法为网络系统的安全提供根本的可靠保障。要在错综复杂的网络环境中切实有效地提高网络安全,迫切需要探索新的理论和方法,网络安全技术研究已经步入一个全新的时代。网络安全态势评估(Network Security Situational Assessment,NSSA)研究就是顺应这个需求而生并迅速发展成为网络信息安全领域一个新的研究热点。网络安全态势评估技术能够从整体上动态反映网络安全状况,并对安全状况的发展趋势进行预测和预警,为增强网络安全性提供可靠的参照性依据。
1 相关研究
网络安全态势是指由各种网络设备运行状况、网络行为以及用户行为等因素所构成的整个网络的当前状态和变化趋势。网络安全态势感知,即是在大规模网络环境中,对能够引起网络态势发生变化的安全要素进行觉察、理解、显示以及预测未来的发展趋势。态势强调环境、动态性以及实体间的关系,是一种状态,一种趋势,一个整体和宏观的概念,任何单一的情况或状态都不能称之为态势。
1999年,Bass等人首次提出了网络态势感知概念,即网络安全态势感知。国国家能源研究科学计算中心(NERSC)所领导的劳伦斯伯克利国家实验室于2003年开发了“Spinning Cube of PotentialDoom”系统,该系统在三维空间中用点来表示网络流量信息,极大地提高了网络安全态势感知能力。2005年,CMU/SEI领导的CERT/NetSA开发了SILK,旨在对大规模网络安全态势感知状况进行实时监控,在潜在的、恶意的网络行为变得无法控制之前进行识别、防御、响应以及预警,给出相应的应付策略,,该系统通过多种策略对大规模网络进行安全分析,并能在保持较高性能的前提下提供整个网络的安全态势感知能力。国内方面,网络态势感知也是在起步阶段,主要是从军事信息与网络安全的角度来研究,这对我军在新形势下的信息安全保护和信息战有重大的战略意义。
2 网络安全态势评估系统
下面介绍一个网络安全态势评估系统,它的工作流程图如图1所示。
这其中的关键技术就是态势评估过程,在这里我们使用BP算法来完成网络安全态势评估。
2.1 BP算法
BP算法,也就是误差反向传播(Error Back Propagation, BP)算法,BP算法的最早提出是在1986年,两位科学家Rumelhart和McCelland他们领导的科学小组通过长时间的分析,弄清了非线性连续转移函数的多层前馈网络的误差反向传播算法,并且在《Parallel Distributed Processing》一书中进行了非常详细的阐述,这个分析阐述实现了Minsky的设想。我们也经常把BP算法称之为BP网络。
下面简单介绍一下BP算法的基本思想,在学习也就是网络训练过程中,信号的传播分为正向传播和反向传播,其中反向传播的是误差信号。在进行正向传播时,将训练样本输入,也就是从神经网络的输入神经元输入,样本数据经各隐藏层逐层处理后,最后从输出层传出。如果从输出层输出的数据与期望的输出(事先给定的)不一样,这就说明计算出现了误差,为了解决这个误差问题,训练就会进行反向传播。反向传播就是将输出数据与期望数据的误差以某种形式通过隐层向输入层逐层反向传,在这个过程之中,会把误差值分摊给各隐层的所有神经元上,这样就能获得各层每个神经元的误差信号,我们可以通过这些误差信号来修改各个神经元上的权值。上面所讲的训练样本信号正向传播和误差信号的反向传播是不断地进行的,这个不断进行的过程也就是BP网络的学习和训练过程,经过了这个过程,误差信号逐步减小,达到了一个我们事先约定的限度,或者完成了所有训练样本的输入,这时就可以结束训练过程,同时整个网络确定了下来,网络中的神经元上的权值也固定了下来,这样就可以进入实际的应用阶段,可以用这个网络来进行工作了。
2.2 指标体系的建立
安全态势评估的核心问题是确定评估指标体系。指标体系是否科学、合理,直接关系到安全态势分析的质量。为此指标体系必须科学地、客观地、合理地、尽可能全面地反映影响系统安全性的所有因素。指标体系的建立必须按照一定的原则去分析和判断,指标体系建立过程中所遵循的原则并不是简单的罗列,它们之间存在着密切的关系。指标体系设立的目的性决定了指标体系的设计必须符合科学性的原则,而科学性原则又要通过系统性来体现。在满足系统性原则之后,还必须满足可操作性以及时效性的原则。进一步,可操作性原则还决定了指标体系必须满足可比性的原则。上述各项原则都要通过定性与定量相结合的原则才能体现。此外,所有上述各项原则皆由评估的目的性所决定,并以目的性原则为前提。
根据查找资料等,发现在不同的攻击下一下一些指标有明显变化,就选择这些指标组成指标体系,CPU占用率、内存占用率、端口流量、丢包率、网络可用带宽、平均往返时延、传输率、吞吐率。我们就选择这8种指标作为我们的评价指,根据原系统的设计将网络的安全态势分为五个级别分别是:Good、OK、Warning、Bad、Critical。这5种状态由高到底的标示出整个网络安全状态。
2.3 评级系统的实现
因为有8个评测指标,所以网络的输入层有8个神经元,输出因为要求的评估等级为5,所以输出层的神经元为5个,对应的网络输出模式为(1,0,0,0,0)(0,1,0,0,0)(0,0,1,0,0)(0,0,0,1,0)(0,0,0,0,1),隐含层的神经元个数也要确定,在这里我们将隐含层的神经元个数设为8*2+1=17个,这个也是BP神经网络常用的原则。
同取样本数据100组解决BP神经网络的训练问题,,进行学习训练,同样使用MatlabR2007b作为平台训练BP神经网络,隐藏层神经元的传递函数选择的是S型对数函数logsig,输出层神经元的传递函数选则purelin,性能目标采用MSE,设为0.01,训练步数设为500,学习速率设为0.1,经过多次迭代运算后达到收敛目标,这时候结束训练过程,保存该训练好的网络。然后将25组测试数据代入网络进行网络状态评估。
3 结论
关键词:BP神经网络;气水识别;预测效果
中图分类号:TP21 文献标识码:A
人工神经网络是人类通过模拟脑神经系统的记忆存储与再现、联想思维、目的行为以及更为不易捉摸的情感和灵感等信息活动,揭示脑物理平面与认知平面的相互联系的作用机理,通过计算机实现学习 、训练、修正、确认和计算的一种计算机信息处理系统。自50年代以来,神经网络技术经历了萌芽、探索、学科的诞生和茁壮成长,成为当今全世界关注的高科技热点,显示出了广阔的应用前景。
BP人工神经网络(Back Propagation Network)是由大量的神经元相互连接而成的自适应非线性动态系统。人工神经网络作为生物控制论的一个成果,其触角已延伸到各个工程领域,吸引着不同专业领域放入专家从事这方面的研究和开发工作,并且在这些领域中形成了新的生长点。人工神经网络从理论探索进入大规模工程实用阶段,到现在也只有短短十几年的时间。它的工作原理和功能特点接近于人脑,不是按给定的程序一步一步地机械执行,而是能够自身适应环境,总结规律,完成运算、识别和控制工作。一般人工神经网络的主要特征为:大规模的并行处理和分布式的信息储存;极强的自学、联想和容错能力;良好的自适应性和自组织性;多输入、多输出的非线性系统。这些特征使它基本符合工程的要求。
1.BP神经网络的基本原理
神经网络系统由大量的神经元广泛连接形成。每一个神经元都是一个基本处理单元, 将从其它众多神经元中接收到的信息, 经过非线性计算,输出给另一些神经元。简单的人工神经元如图4-1所示:X1,X2,...,Xi,...,Xn是第j个神经元接收到的信息ω1j,ω2j,...,ωij,...,ωnj为该神经元与提供信息神经元之间的连接权;θj为单元激活值,为该神经元计算处理后输出的信息,神经元的计算处理函数可选阶跃函数、分段线性函数、函数、 S函数,通常人们选S函数。
对于算法BP网络对神经网络的训练过程,实质上是通过计算输出值与期望值的误差(E),求解输出层单元的一般化误差(dj),再将dj逆传播,求出隐层单元的一般化误差(ei)。通过调整输出层和隐含层及输入层间连接权与隐层、输出层的阀值,直到系统误差降到可接受为止。这时,网络间的连接权和阀值不再改动,以此预测出与训练信息相类似条件的未知信息。
图1给出一个基本的BP神经元模型,它有R个输入,每一个输入都通过一个适当的权值W和下一层相连,网络输出可表示为:
图1 BP神经元模型
2.子洲气藏山西组产层分类
本文以子洲气田山2段储层为研究对象,根据储层产流体性质及其典型井的测井响应综合特征,考虑到生产井的动态生产特征和出水特点,将子洲气藏生产井划分为气井、水井、气水同产井和干井四类,相应的储集层为气层、水层、气水同层和干层。将试气产量大于1×104m3/d,含水率小于10%的储集层归为1类气层;将产气量0.2×104m3/d-1×104m3/d,产水量小于4m3/d的储集层归为2类气层;若储集层仅含残余气和少量可动水,砂层分类中作为干层对待,产气量小于0.2×104m3/d,产水量小于4m3/d;试气产量大于0.2×104m3/d而小于1×104m3/d,产水量大于4m3/d;试气产量大于1×104m3/d,含水率大于10%的储集层归为气水层;试气产量产气小于0.2×104m3/d,产水大于4m3/d,或含水率高于90%的储集层为水层。
依据上述原则选择具有代表性的各类产层:
气层:榆10、榆11、榆12、榆13、洲06、洲07、洲08、洲09、洲10、洲11、洲12、洲13、洲14、洲15、洲16、洲17、洲18、洲19、洲20、洲22、洲23、洲24;
干层:榆14、榆15;
气水层:榆09、榆07、榆08、洲05、洲02、洲03、洲04;
水层:榆01,榆02、榆03;榆04、榆05、洲01。
3.BP神经网络模型的建立和预测
3.1 BP神经网络流程图
在进行BP神经网络的建立和运用时,实际流程如图2。
3.2 BP神经网络的建立
(1)根据试气结果,从24口井,挑选出气层,气水层,水层,干层共24组样本,以补偿中子(comL),密度(DEN),声波时差(AC),自然伽马(GR),深浅侧向电阻率差(Rt-Rs),5条测井曲线作为样本输入参数。
(2)BP神经网络输入层设为5个节点,分别代表补偿中子(comL),密度(DEN),声波时差(AC),自然伽马(GR),深浅侧向电阻率差(Rt-Rs),5条测井曲线。含一个隐层,隐层为8个节点,隐层采用S型神经元函数logsig()。输出层为4个节点,分别代表气层,气水层,水层,干层。建立程序,输入样本参数,对样本学习,训练,修正权值和阀值。在对样本进行训练和学习过程中的网络结构如图3。
(3)在训练过程中,取网络动量因子α=0.7,学习因子η=0.9,误差精度ξ=0.0001。开始训练,经过260次训练,误差达到万分之一以下,停止学习,气水识别模型已经建立,此时得到储层类型识别模型。其中输入层到隐层的连接权值和阀值为:
隐层到输出层的连接权值和阀值为:
[-24.562,-2.116,-3.379,22.653,-23.136,-4.673,6.582,-8.383,7.582];
[-1.680,-2.879,-2.743,13.058,-3.695,-2.538,1.274,1.487,8.891];
[13.618,-5.297,7.349,0.597,21.638,-3.294,6.842,4.348,-11.230];
[-10.310,8.314,-2.610,6.840,5.369,-13.568,21.330,5.613,3.637]
3.3 BP神经网络模型预测效果
根据试气结果,我们从30口井选取43个样本,以补偿中子(comL),密度(DEN),声波时差(AC),自然伽马(GR),深浅侧向电阻率差(Rt-Rs),5条测井曲线数据作为输入数据,利用已经建立的BP神经网络模型进行预测,预测效果如下表:
从上表可以看出,利用该BP神经网络模型在对43个样本进行预测中,其中40个正确,3个错误(与试气结果不符合),符合率达到93.02%,所以该识别模型的预测效果较比较理想,可以弥补交会图只能定性识别储层的缺陷,因此该BP神经网络气水识别模型可以较为精确划分该区域的气水层,可以达到定量识别气层、水层、气水层、干层的目的。
结论
利用该BP神经网络模型预测气水层,符合率达到93.02%,弥补了传统测井解释气水层的弊端,通过网络学习建立模型,避免了大量杂乱信息对分析的影响,预测效果真实可靠。
参考文献
[1]Baldwin.J.L.Bateman,R.M.Weatley,C.L.Application of a neural network to the problem of mineral identification from well logs,3rd Mgls.Borehole Geophys,for Mineral, Geotech&Groundwater Appl.Int.Symp.2002.10.The Log Anslyst,30,2002:121-235.
[2]Kukal G C. A Systematic Approach for the Log Analysis of Tight Gas Sands. SPE 11857:21-30.
[3]Kasko B. Neural networks and fuzzy systems.Pretice-Hall,1991:15-25.