神经网络算法原理

4.2.1概述

人工神经网络和计算机的研究几乎是同步发展的。1943年,心理学家麦卡洛克和数学家皮茨提出了形式神经元的数学模型。20世纪50年代末,罗森布拉特提出了感知机模型。Hopfiled在1982中引入了能量函数的概念,提出了神经网络的数学模型。1986年Rumelhart、LeCun等学者提出了多层感知器。

在众多研究者的努力下,神经网络技术在理论上越来越完善,算法的种类也越来越多。目前,关于神经网络的理论研究成果很多,关于基础理论的书籍也出版了很多,仍然是全球非线性科学研究的热点之一。

神经网络是模拟人脑的神经结构来实现人脑智能活动功能的信息处理系统。它具有人脑的基本功能,但不是人脑的真实写照。它是对人脑的一种抽象、简化和模拟的模型,故称人工神经网络(卞,2000)。

人工神经元是神经网络的节点,是神经网络最重要的组成部分之一。目前关于神经元的模型有很多种,最常用也是最简单的模型是由阈值函数和Sigmoid函数组成的模型(图4-3)。

图4-3人工神经元和两种常见的输出函数

神经网络学习和识别方法最初是由人脑神经元的学习和识别过程提出的。输入参数就像神经元接收到的信号,通过一定的权重(相当于刺激神经兴奋的强度)与神经元联系在一起。这个过程有点类似于多元线性回归,但模拟的非线性特征在下一步体现出来,即通过设置一个阈值(神经元的兴奋极限)来确定神经元的兴奋模式,通过输出运算得到输出结果。大量样本进入网络系统学习训练后,连接输入信号与神经元之间的权重是稳定的,能够最大程度地满足训练好的学习样本。在确认网络结构的合理性和学习效果的高精度后,将待预测样本的输入参数代入网络,达到参数预测的目的。

4.2.2反向传播算法(BP方法)

到目前为止,有十几种神经网络模型,如前馈神经网络、感知器、Hopfiled网络、径向基函数网络、反向传播算法(BP法)等。但在储层参数反演方面,目前比较成熟和流行的网络类型是误差反向传播神经网络(BP-ANN)。

BP网络是在前馈神经网络的基础上发展起来的,总有一个输入层(包含对应于每个输入变量的节点)和一个输出层(包含对应于每个输出值的节点),至少有一个隐层(也叫中间层),节点数不限。在BP-ANN中,相邻层中的节点都通过任意初始权重连接,但同一层中的节点彼此不连接。对于BP-ANN,隐含层和输出层节点的基函数必须连续且单调递增。当输入趋于正或负无穷大时,应该接近一个固定值,即基函数是“S”型(Kosko,1992)。BP-ANN的训练是一个监督学习过程,涉及两个数据集,即训练数据集和监督数据集。

将一组输入信息提供给网络的输入层,使其通过网络在输出层产生期望输出的过程,称为网络学习,或训练网络,实现这一步的方法称为学习算法。BP网络的学习过程包括两个阶段:第一阶段是正向过程,通过输入层和隐含层逐层计算出各个单元的输出值;第二阶段是反向传播过程,由输出误差逐步计算出隐含层各单元的误差,并以此误差修正上一层的权重。误差信息通过网络传播回来,按照误差逐渐减小的原则调整权值,直到达到满意的输出。网络学习后,固定一组合适稳定的权值,将待预测的样本作为输入层参数,网络向前传播后即可得到输出结果,这就是网络的预测。

反向传播算法的主要步骤如下:首先选取权系数的初始值,然后重复以下过程直到收敛(依次计算每个样本)。

(1)从前到后计算每个单元的Oj。

储层特征的研究和预测

(2)计算输出层的δj

储层特征的研究和预测

(3)由后向前计算各隐含层的δj。

储层特征的研究和预测

(4)计算并保存每个权重修正量。

储层特征的研究和预测

(5)修正权重

储层特征的研究和预测

上面的算法是对每个样本的权重进行修正,或者对每个样本计算δj并求和,根据总误差进行权重修正。