今天给各位分享bp神经网络在权重优化中的应用的知识,其中也会对bp神经网络优化算法对比进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
研究区地下水流场神经网络模拟
人工神经网络(ANN)是近年来发展起来的十分热门的交叉学科,它涉及生物、电子、计算机、数学和物理等学科,有着广泛的应用领域。人工神经网络是一种自适应的高度非线性动力系统,在网络计算的宏祥基础上,经过多次重复组合,能够完成多维空间的映射任务,通过内部连接的自组织结构,具有对数据的高度自适应能力,由计算机直接从实例中学习获取知识,探求解决问题的方法,自动建立起复杂系统的控制规律及其认知模型。
BP网络是在1985年由PDP小组提出的反向传播算法的基础上发展起来的,是一种多层次反馈型网络(图11.46),它在输入和输出之间采用多层映射方式,网络按层排列,只有相邻层的节点直接相互连接,传递之间的信息。在正向传播中,输入信息从输入层经隐含层逐层处理,并传向输出层,每层神经元的状态只影响下一层神经元的状态。如果输出层不能得到期望的输出结果,则转入反向传播,将误差信号沿原来的连同通路返回,通过修改各层神经元的权值,使得误差最小。
BP网络的学习算法步骤(图11.47),详述如下:
图11.46 BP神经网络示意图
1)设置初始参数ω和θ(ω为初始权重,θ为临界值,均随机设为较小的昌春数)。
2)将已知的样本加到网络上,利用下式可算出它们的输出值yj,其值为
变环境条件下的水资源保护与可持续利用研究
图11.47 BP算法流程图
式中:xi为该节点的输入;ωij为从i到j的连接权;θj为临界值;yj为实际算出的输出数据。
3)将已知输出数据与上面算出的输出数据之差(dj-yj)调整权系数ω,调整量为
ΔWij=ηδjxj (11.17)
式中:η为比蔽迅搏例系数;xj为在隐节点为网络输入,在输出点则为下层(隐)节点的输出(j=1,2,…,n);δj为是一个与输出偏差相关的值,对于输出节点来说有
δj=ηj(1-yj)(dj-yj) (11.18)
对于隐节点来说,由于它的输出无法进行比较,所以经过反向逐层计算有
变环境条件下的水资源保护与可持续利用研究
其中K值要把上层(输出层)节点取遍。误差δj是从输出层反向逐层计算的。各神经元的权值调整后为
ωij(t)=ωij(t-1)+Vωij (11.20)
式中:t为学习次数。
这个算法是一个迭代过程,每一轮将各ω值调整一遍,这样一直迭代下去,直到输出误差小于某一允许值为止,一个好的网络就训练成功了。BP算法从本质上讲是把一组样本的输入、输出问题变为一个非线性优化问题,它使用了优化技术中最普遍的一种梯度下降算法,用迭代运算求解权值。
11.3.3.1 BP神经网络在地下水流场预测中的应用
预测是在积累了一定数量的历史数据的基础上,结合事物的发展规律和内在机理,分析得出事物未来的趋势和状态的过程。预测方法的选取应服从于预测的目的以及资料、信息的条件。
预测模型能以在现有资料、信息基础,准确反映研究区的自然背景条件、地下水开采与地下水流场过程之间的复杂联系,并能识别和适应不同影响因素随时间发生的改变。BP神经网络作为一个非线性系统,可用于逼近非线性映射关系,也可用于逼近一个极为复杂的函数关系,是解释和模拟地下水流场等高度复杂的非线性动力学系统问题的一种较好的方法。
(1)训练样本的确定
本文选择了现有资料最全的抽水井点处第四系地下水系统第Ⅱ含水组和第Ⅲ含水组地下水的年均水位和区域地下水开采量作为模型的输入变量,将前一年的开采量和年均水位作为输入,故模型的输入变量为3个。以收集到的研究区内每个地下水位抽水井点的年末地下水位作为模型的输出变量,通过选择适合的隐含层数和隐层神经单元数构建BP模型,对研究区第四系对地下水系统2010年、2011年、2012年、2015年和2020年地下水流场的趋势进行预测。
抽水井位置如图11.48所示,可以看出4个抽水井点在研究区内分布均匀,且相对集中;通过对这4个抽水井点的地下水水位进行预测,并分析了预测误差,反映出研究区第四系对地下水系统2010年、2011年、2012年、2015年和2020年地下水流场的变化趋势。
图11.48 研究区神经网络模型中抽水井分布示意图
(2)样本数据的预处理
由于BP网络的输入层物理量及数值相差甚远(不属于一个数量级),为了加快网络收敛的速度,在训练之前须将各输入物理量进行预处理。数据的预处理方法主要有标准化法、重新定标法、变换法和比例放缩法等等。本文所选用的是一种最常用的比例压缩法,公式为[72,73]
变环境条件下的水资源保护与可持续利用研究
式中:X为原始数据;Xmax、Xmin为原始数据的最大值和最小值;T为变换后的数据,也称之为目标数据;Tmax、Tmin为目标数据的最大值和最小值。
由于Sigmoid函数在值域[0,0.1]和[0.9,1.0]区域内曲线变化极为平坦,因此合适的数据处理是将各输入物理量归至[0.1,0.9]之间。本文用(式11.21)将每个样本输入层的3个物理量进行归一化处理
变环境条件下的水资源保护与可持续利用研究
处理后的数据见表11.13。
表11.13 BP神经网络模型数据归一化表
(3)网络结构的确定
BP神经网络的建立,其重点在于网络结构的设计,只要隐层中有足够多的神经元,多层前向网络可以用来逼近几乎任何一个函数。一般地,网络结构(隐层数和隐层神经元数)和参数(权值和偏置值)共同决定着神经网络所能实现的函数的复杂程度的上限。结构简单的网络所能实现的函数类型是非常有限的,参数过多的网络可能会对数据拟合过度。本文将输入层的神经元个数定为3个,输出层的神经元个数为1个。但是对于隐含层数及隐含层所含神经元个数的选择,目前为止还没有明确的方法可以计算出实际需要多少层或多少神经元就可以满足预测精度的要求,在选择时通常是采用试算的方法。
为了保证模型的预测精度和范化能力,根据收集到的资料的连续性,本次研究利用1991~2009年19组地下水位历史观测数据和对应的当年及前一年的开采量组织训练,选择三层BP网络作为模型结构,隐层神经元的个数设置为4。网络结构如图11.49所示,参数见表11.14。
图11.49 神经网络模型结构图
表11.14 BP神经网络模型参数一览表
(4)网络的训练与预测
采用图11.49的网络结构对数据进行训练,各井的训练和效果如图11.50和图11.51。
从图11.51可以看出,训练后的BP网络能很好地逼近给定的目标函数。说明该模型的泛化能力较好,模拟的结果比较可靠。
图11.50 各井训练过程图
(a)FN013点训练过程图;(b)FN021点训练过程图;(c)FN012点训练过程图;(d)FN202点训练过程图
图11.51 研究区各抽水井年均地下水位神经网络模型拟合图
图11.51 研究区各抽水井年均地下水位神经网络模型拟合图(续)
11.3.3.2 BP神经网络与 Modflow的预测结果对比
根据训练好的BP神经网络模型,对研究区内4个抽水井2010年、2011年、2012年、2015年和2020年的第四系地下水系统地下水位进行预测(图11.52)。从图11.52中可以看出,随着关停国丰和贝钢水源地的井以后,开采量减小,各点的地下水水位逐渐上升,变化趋势也基本一致。预测到2020年,各点的年均地下水位比2009年上升了3.68~15.22m。
图11.52 研究区各抽水井年均地下水位预测图
以2009年各抽水井的实测地下水水位为起点,预测2010年、2011年、2012年、2015年和2020年的地下水水位,并得到相应的第四系地下水系统地下水流场图,与Modflow数值模型的预测结果相对比(图11.53~图11.61)。从图中可以看出这两种方法在各抽水井地下水位的预测结果基本一致。在局部点处(FN013)相差较大,这主要是由于该点临近城区处,地下水位变化过程受到人们生活、生产用水较大的影响,使得BP网络模型的预测效果出现偏差。BP网络与 Modflow数值模型预测结果的相对误差见表11.15。从表中可以看出,各抽水井的相对误差在0.707%~3.346%之间,平均为2.057%。说明本次建立的BP神经网络模型基本可以达到Modflow数值模型的预测效果。
图11.53 研究区各抽水井地下水位BP神经网络与数值模拟预测对比图
图11.54 研究区2011年第四系第Ⅱ含水组地下水流场数值模拟与神经网络预测对比
图11.55 研究区2012年第四系第Ⅱ含水组地下水流场数值模拟与神经网络预测对比
图11.56 研究区2015年第四系第Ⅱ含水组地下水流场数值模拟与神经网络预测对比
图11.57 研究区2020年第四系第Ⅱ含水组地下水流场数值模拟与神经网络预测对比
图11.58 研究区2011年第四系第Ⅲ含水组地下水流场数值模拟与神经网络预测对比
图11.59 研究区2012年第四系第Ⅲ含水组地下水流场数值模拟与神经网络预测对比
图11.60 研究区2015年第四系第Ⅲ含水组地下水流场数值模拟与神经网络预测对比
图11.61 研究区2020年第四系第Ⅲ含水组地下水流场数值模拟与神经网络预测对比
表11.15 BP神经网络与 Modflow数值模型预测结果相对误差表
BP神经网络的梳理
BP神经网络被称为“深度学习之旅的开端”,是神经网络的入门算法。
各种高大上的神经网络都是基于BP网络出发的,最基础的原理都是由BP网络而来 [1] ,另外由于BP神经网络结构简单,算法经典, 是神经网络中应用最广泛的一种。
BP神经网络(back propagation neural network)全称是反向传播神经网络。
神经网络发展部分背景如下 [2] :
为解决非线性问题,BP神经网络应运而生。
那么什么是如颤BP神经网络?稍微专业点的解释要怎么说呢?
很喜欢 最简单的神经网络–Bp神经网络 一文对算法原理的解释,语言活泼,案例简单,由浅入深。
文中提到所谓的 AI 技术,本质上是一种数据处理处理技术,它的强大来自于两方面:1.互联网的发展带来的海量数据信息;2.计算机深度学习算法的快速发展。AI 其实并没有什么神秘,只是在算法上更为复杂 [3] 。
我们从上面的定义出发来解释BP神经网络的原理。
BP神经网络整个网络结构包含了:一层输入层,一到多层隐藏层,一层输出层。
一般说L层神经网络,指的是有L个隐层,输入层和输出层都不计算在内的 [6] 。
BP神经网络模型训练的学习过程由信号的 正向传播 和误差的 反向传播 两个过程组成。
什么是信号的正向传播?顾名思义,就是结构图从左到右的运算过程。
我们来看看结构图中每个小圆圈是怎么运作的。我们把小圈圈叫做神经元,是组成神经网络的基本单元。
正向传播就是输入数据经过一层一层的神经元运算、输出的过程,最后一层输出值作为算法预测值y’。
前面正向传播的时候我们提到权重w、偏置b,但我们并不知道权重w、偏置b的值应该是什么。关于最优参数的求解,我们在 线性回归 、 逻辑回归 两章中有了详细说明。大致来讲就是:
BP神经网络全称 back propagation neural network,back propagation反向传播是什么?
反向传播的建设本质上就是寻找最优的参数组合,和上面的流程差不多,根据算法预测值和实际值之间的损失函数L(y’,y),来反方向地计算每一层的z、a、w、b的偏导数,从而更新参数。
对反向传播而言,输入的内容是预测值和实际值的误差,输出的内容是对参数的更新,方向是从右往左,一层一层的更新每一层的参数。
BP神经网络通过先正向传播,构建参数和输入值的关系,通过预测值和实际值的误差,反向传播修复权重;读入新数据再正向传播预测,再反向传播修正,…,通过多次循环达到最罩行小损失值,此时构造的模型拥有最优的参数组合。
以一个简单的BP神经网络为例,由3个输入层,2层隐藏层,每层2个神经元,1个输出层组成。
【输入层】传入
【第一层隐藏层】
对于 神经元而言,传入 ,加权求和加偏置激活函数处理后,输出 ;
对于 神经元而言,传入 ,加权求和加偏置函数处理后,输出 ;
输出:
【第二层隐藏层】
对于 神经元而言,传入 ,加权求和加偏置激活函数处理后,输出 ;
对于 神经元而言,传入 ,加权求和加偏置激活函数处理后,输出 ;
输出:
【输出层】
对于输出层神经元而言,输入 ,加权求和加偏置激活函数处理后,输出 ,输出的是一个值
第一次运行正向传播这个流程时随用随机参数就好,通过反向传播不断优化。因此需要在一开始对 设置一个随机的初始值。
首先计算正向传播输出值 与实际值的损失 ,是一个数值。所谓反向是从物橡哗右到左一步步来的,先回到 ,修正参数 。
以此类推,通过对损失函数求偏导跟新参数 ,再跟新参数 。这时又回到了起点,新的数据传入又可以开始正向传播了。
keras可以快速搭建神经网络,例如以下为输入层包含7129个结点,一层隐藏层,包含128个结点,一个输出层,是二分类模型。
神经网络反向传播的优化目标为loss,可以观察到loss的值在不断的优化。
可以通过model.get_layer().get_weights()获得每一层训练后的参数结果。通过model.predict()预测新数据。
至此,BP神经网络的整个运算流程已经过了一遍。之前提到BP神经网络是为解决非线性问题应运而生的,那么为什么BP神经网络可以解决非线性问题呢?
还记得神经元里有一个激活函数的操作吗?神经网络通过激活函数的使用加入非线性因素。
通过使用非线性的激活函数可以使神经网络随意逼近复杂函数,从而使BP神经网络既可以处理线性问题,也可以处理非线性问题。
为什么激活函数的使用可以加入非线性因素 [7] ?
其实逻辑回归算法可以看作只有一个神经元的单层神经网络,只对线性可分的数据进行分类。
输入参数,加权求和,sigmoid作为激活函数计算后输出结果,模型预测值和实际值计算损失Loss,反向传播梯度下降求编导,获得最优参数。
BP神经网络是比 Logistic Regression 复杂得多的模型,它的拟合能力很强,可以处理很多 Logistic Regression处理不了的数据,但是也更容易过拟合。
具体用什么算法还是要看训练数据的情况,没有一种算法是使用所有情况的。
常见的前馈神经网络有BP网络,RBF网络等。
BP神经网络的一个主要问题是:结构不好设计。
网络隐含层的层数和单元数的选择尚无理论上的指导,一般是根据经验或者通过反复实验确定。
但是BP神经网络简单、易行、计算量小、并行性强,目前仍是多层前向网络的首选算法。
[1] 深度学习开端—BP神经网络:
[2] BP神经网络发展历史:
[3] 最简单的神经网络–Bp神经网络:
[4] 神经网络的基本概念:
[5] 神经网络中的 “隐藏层” 理解:
[6] AI学习笔记:神经元与神经网络:
[7] 线性模型和非线性模型的区别:
[8] BP神经网络是否优于logistic回归:
BP神经网络在权重优化中的应用
不好做没意思!
走错房间了!
这里是数学!
美邦建议您行胡举
去档碧别的地方看看!
bp神经网络的缺点
1)局部极小化问题bp神经网络在权重优化中的应用:从数学角度看bp神经网络在权重优化中的应用,传统的BP神经网络为一种局部搜索的优化方法,它要解决的是一个复杂非线性化问题,网络的权值是通过沿局部改善的方向逐渐进行调整的,这样会使算法陷入局部极值,权值收敛到局部极小点,从而导致网络训练失败。加上BP神经网络对初始网络权重非常敏感,以不同的权重初始化网络,其往往会收敛于不同的局部极小,这也是很多学者每次训练得到不同结果的根本原因。
2)BP神经网络算法的收敛速度慢:由于BP神经网络算法本质上为梯度下降法,它所要优化的目标函数是非常复杂的,因此,必然会出现“锯齿形现象”,这使得BP算法低效;又由于优化的目标函数很复杂,它必然会在神经元输出接近0或1的情况下,出现一些平坦区,在这些区域内,权值误差改变很小,使训练过程几乎停顿。
3)BP神经网络结构选择不一:BP神经网络结构的选择至今尚无一种统一而完整的理论指导,一般只能由经验选定。网络结构选择过大,训练中效率不高,可能出现过拟合现象,造成网络性能低,容错性下降,若选择过小,则又会造成网络可能不收敛。而网络的结构直接影响银盯网络的逼近能力及推广性质。因此,应用中如何选择合适的网络结构是一个重要的问题。
4)应用实例与网络规模的矛盾问题:BP神经网络难以解决应用问题的实例规模和网络规模间的矛盾问题,其涉及兆搏帆到网络容量的可能性与可行性的关系问题,即学习复杂性问题。
5)BP神经网族雹络预测能力和训练能力的矛盾问题:预测能力也称泛化能力或者推广能力,而训练能力也称逼近能力或者学习能力。一般情况下,训练能力差时,预测能力也差。
优化bp神经网络权值的作用
初消冲衫始权值。根据优化bp神经网查判陪询显示,优化bp神经网络权值的作用是初始权值。拿腔要使用遗传算法优化神经网络的权值,实现同时性结合。
关于bp神经网络在权重优化中的应用和bp神经网络优化算法对比的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。