1. 首页 > 汽车 >

bp神经网络控制算法 bp神经网络pid控制

bp算法在人工神经网络中的作用是什么?

BP算法是由学习过程由信号的正向传播与误的反向传播两个过程组成。由于多层前馈网络的训练经常采用误反向传播算法,人们也常把将多层前馈网络直接称为BP网络。

bp神经网络控制算法 bp神经网络pid控制bp神经网络控制算法 bp神经网络pid控制


虽然BP算法得到广泛的应用,但它也存在不足,其主要表现在训练过程不确定上,具体如下。

1,训练时间较长。对于某些特殊的问题,运行时间可能需要几个小时甚至更长,这主要是因为学习率太小所致,可以采用自适应的学习率加以改进。

2,完全不能训练。训练时由于权值调整过大使激活函数达到饱和,从而使网络权值的调节几乎停滞。为避免这种情况,一是选取较小的初始权值,二是采用较小的学习率。

3,易陷入局部极小值。BP算法可以使网络权值收敛到一个终解,但它并不能保证所求为误超平面的全局解,也可能是一个局部极小值。

这主要是因为BP算法所采用的是梯度下降法,训练是从某一起始点开始沿误函数的斜面逐渐达到误的小值,故不同的起始点可能导致不同的极小值产生,即得到不同的解。如果训练结果未达到预定精度,常常采用多层网络和较多的神经元,以使训练结果的精度进一步提高,但与此同时也增加了网络的复杂性与训练时间。

4,“喜新厌旧”。训练过程中,学习新样本时有遗忘旧样本的趋势。

扩展资料:

BP算法早由Werbos于1974年提出,1985年Rumelhart等人发展了该理论。BP网络采用有指导的学习方式,其学习包括以下4个过程。

1,组成输入模式由输入层经过隐含层向输出层的“模式顺传播”过程。

2,网络的期望输出与实际输出之的误信号由输出层经过隐含层逐层休整连接权的“误逆传播”过程。

3,由“模式顺传播”与“误逆传播”的反复进行的网络“记忆训练”过程。

4,网络趋向收敛即网络的总体误趋向极小值的“学习收敛”过程。

参考资料来源:

BP神经网络方法

人工神经网络是近几年来发展起来的新兴学科,它是一种大规模并行分布处理的非线性系统,适用解决难以用数学模型描述的系统,逼近任何非线性的特性,具有很强的自适应、自学习、联想记忆、高度容错和并行处理能力,使得神经网络理论的应用已经渗透到了各个领域。近年来,人工神经网络在水质分析和评价中的应用越来越广泛,并取得良好效果。在这些应用中,纵观应用于模式识别的神经网络,BP网络是有效、活跃的方法之一。

BP网络是多层前向网络的权值学习采用误逆传播学习的一种算法(Error Back Propagation,简称BP)。在具体应用该网络时分为网络训练及两个阶段。在网络训练阶段,根据给定的训练模式,按照“模式的顺传播”→“误逆传播”→“记忆训练”→“学习收敛”4个过程进行网络权值的训练。在网络的工作阶段,根据训练好的网络权值及给定的输入向量,按照“模式顺传播”方式求得与输入向量相对应的输出向量的解答(阎平凡,2000)。

BP算法是一种比较成熟的有指导的训练方法,是一个单向传播的多层前馈网络。它包含输入层、隐含层、输出层,如图4-4所示。

图4-4 地下水质量评价的BP神经网络模型

图4-4给出了4层地下水水质评价的BP神经网络模型。同层节点之间不连接。输入信号从输入层节点,依次传过各隐含层节点,然后传到输出层节点,如果在输出层得不到期望输出,则转入反向传播,将误信号沿原来通路返回,通过学习来修改各层神经元的权值,使误信号小。每一层节点的输出只影响下一层节点的输入。每个节点都对应着一个作用函数(f)和阈值(a),BP网络的基本处理单元量为非线性输入-输出的关系,输入层节点阈值为0,且f(x)=x;而隐含层和输出层的作用函数为非线性的Sigmoid型(它是连续可微的)函数,其表达式为

f(x)=1/(1+e-x) (4-55)

设有L个学习样本(Xk,Ok)(k=1,2,…,l),其中Xk为输入,Ok为期望输出,Xk经网络传播后得到的实际输出为Yk,则Yk与要求的期望输出Ok之间的均方误为

区域地下水功能可持续性评价理论与方法研究

式中:M为输出层单元数;Yk,p为第k样本对第p特性分量的实际输出;Ok,p为第k样本对第p特性分量的期望输出。

样本的总误为

区域地下水功能可持续性评价理论与方法研究

由梯度下降法修改网络的权值,使得E取得小值,学习样本对Wij的修正为

区域地下水功能可持续性评价理论与方法研究

式中:η为学习速率,可取0到1间的数值。

所有学习样本对权值Wij的修正为

区域地下水功能可持续性评价理论与方法研究

通常为增加学习过程的稳定性,用下式对Wij再进行修正:

区域地下水功能可持续性评价理论与方法研究

式中:β为充量常量;Wij(t)为BP网络第t次迭代循环训练后的连接权值;Wij(t-1)为BP网络第t-1次迭代循环训练后的连接权值。

在BP网络学习的过程中,先调整输出层与隐含层之间的连接权值,然后调整中间隐含层间的连接权值,后调整隐含层与输入层之间的连接权值。实现BP网络训练学习程序流程,如图4-5所示(倪深海等,2000)。

图4-5 BP神经网络模型程序框图

若将水质评价中的评价标准作为样本输入,评价级别作为网络输出,BP网络通过不断学习,归纳出评价标准与评价级别间复杂的内在对应关系,即可进行水质综合评价。

BP网络对地下水质量综合评价,其评价方法不需要过多的数理统计知识,也不需要对水质量监测数据进行复杂的预处理,操作简便易行,评价结果切合实际。由于人工神经网络方法具有高度的非线性函数映射功能,使得地下水水质评价结果较准确(袁曾任,1999)。

BP网络可以任意逼近任何连续函数,但是它主要存在如下缺点:①从数学上看,它可归结为一非线性的梯度优化问题,因此不可避免地存在局部极小问题;②学习算法的收敛速度慢,通常需要上千次或更多。

神经网络具有学习、联想和容错功能,是地下水水质评价工作方法的改进,如何在现行的神经网络中进一步吸取模糊和灰色理论的某些优点,建立更适合水质评价的神经网络模型,使该模型既具有方法的先进性又具有现实的可行性,将是我们今后研究和探讨的问题。

神经网络——BP算法

对于初学者来说,了解了一个算法的重要意义,往往会引起他对算法本身的重视。BP(Back Propagation,后向传播)算法,具有非凡的历史意义和重大的现实意义。

1969年,作为人工神经网络创始人的明斯基(Marrin M insky)和佩珀特(Seymour Papert)合作出版了《感知器》一书,论证了简单的线性感知器功能有限,不能解决如“异或”(XOR )这样的基本问题,而且对多层网络也持悲观态度。这些论点给神经网络研究以沉重的打击,很多科学家纷纷离开这一领域,神经网络的研究走向长达10年的低潮时期。[1]

1974年哈佛大学的Paul Werbos发明BP算法时,正值神经外网络低潮期,并未受到应有的重视。[2]

1983年,加州理工学院的物理学家John Hopfield利用神经网络,在旅行商这个NP完全问题的求解上获得当时成绩,引起了轰动[2]。然而,Hopfield的研究成果仍未能指出明斯基等人论点的错误所在,要推动神经网络研究的全面开展必须直接解除对感知器——多层网络算法的疑虑。[1]

真正打破明斯基冰封魔咒的是,Did Rumelhart等学者出版的《平行分布处理:认知的微观结构探索》一书。书中完整地提出了BP算法,系统地解决了多层网络中隐单元连接权的学习问题,并在数学上给出了完整的推导。这是神经网络发展史上的里程碑,BP算法迅速走红,掀起了神经网络的第二次。[1,2]

因此,BP算法的历史意义:明确地否定了明斯基等人的错误观点,对神经网络第二次具有决定性意义。

这一点是说BP算法在神经网络领域中的地位和意义。

BP算法是迄今成功的神经网络学习算法,现实任务中使用神经网络时,大多是在使用BP算法进行训练[2],包括近炙手可热的深度学习概念下的卷积神经网络(CNNs)。

BP神经网络是这样一种神经网络模型,它是由一个输入层、一个输出层和一个或多个隐层构成,它的激活函数采用sigmoid函数,采用BP算法训练的多层前馈神经网络。

BP算法全称叫作误反向传播(error Back Propagation,或者也叫作误逆传播)算法。其算法基本思想为:在2.1所述的前馈网络中,输入信号经输入层输入,通过隐层计算由输出层输出,输出值与标记值比较,若有误,将误反向由输出层向输入层传播,在这个过程中,利用梯度下降算法对神经元权值进行调整。

BP算法中核心的数学工具就是微积分的 链式求导法则 。

BP算法的缺点,首当其冲就是局部极小值问题。

BP算法本质上是梯度下降,而它所要优化的目标函数又非常复杂,这使得BP算法效率低下。

[1]、《BP算法的哲学思考》,成素梅、郝中华著

[2]、《机器学习》,周志华著

[3]、 Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现

2016-05-13 第一次发布

2016-06-04 较大幅度修改,完善推导过程,修改文章名

2016-07-23 修改了公式推导中的一个错误,修改了一个表述错误

神经网络BP算法求代码

输入节点数为3x3x5=45,输出节点数为3x3+2=11,隐节点数通过试凑法得出。

BP神经网络的Matlab代码见附件,修改节点数、增加归一化和反归一化过程即可。

BP算法,误反向传播(Error Back Propagation, BP)算法。BP算法的基本思想是,学习过程由信号的正向传播与误的反向传播两个过程组成。由于多层前馈网络的训练经常采用误反向传播算法,人们也常把将多层前馈网络直接称为BP网络。

1)正向传播:输入样本->输入层->各隐层(处理)->输出层

注1:若输出层实际输出与期望输出(教师信号)不符,则转入2)(误反向传播过程)

2)误反向传播:输出误(某种形式)->隐层(逐层)->输入层

其主要目的是通过将输出误反传,将误分摊给各层所有单元,从而获得各层单元的误信号,进而修正各单元的权值(其过程,是一个权值调整的过程)。

注2:权值调整的过程,也就是网络的学习训练过程(学习也就是这么的由来,权值调整)。

深入浅出BP神经网络算法的原理

深入浅出BP神经网络算法的原理

相信每位刚接触神经网络的时候都会先碰到BP算法的问题,如何形象快速地理解BP神经网络就是我们学习的高级乐趣了(画外音:乐趣?你在跟我谈乐趣?)

本篇博文就是要简单粗暴地帮助各位童鞋快速入门采取BP算法的神经网络。

BP神经网络是怎样的一种定义?看这句话:一种按“误逆传播算法训练”的多层前馈网络。

BP的思想就是:利用输出后的误来估计输出层前一层的误,再用这层误来估计更前一层误,如此获取所有各层误估计。这里的误估计可以理解为某种偏导数,我们就是根据这种偏导数来调整各层的连接权值,再用调整后的连接权值重新计算输出误。直到输出的误达到符合的要求或者迭代次数溢出设定值。

说来说去,“误”这个词说的很多嘛,说明这个算法是不是跟误有很大的关系?

没错,BP的传播对象就是“误”,传播目的就是得到所有层的估计误。

它的学习规则是:使用速下降法,通过反向传播(就是一层一层往前传)不断调整网络的权值和阈值,后使全局误系数小。

它的学习本质就是:对各连接权值的动态调整。

拓扑结构如上图:输入层(input),隐藏层(hide layer),输出层(output)

BP网络的优势就是能学习和储存大量的输入输出的关系,而不用事先指出这种数学关系。那么它是如何学习的?

BP利用处处可导的激活函数来描述该层输入与该层输出的关系,常用S型函数δ来当作激活函数。

我们现在开始有监督的BP神经网络学习算法:

1、正向传播得到输出层误e

=>输入层输入样本=>各隐藏层=>输出层

2、判断是否反向传播

=>若输出层误与期望不符=>反向传播

3、误反向传播

=>误在各层显示=>修正各层单元的权值,直到误减少到可接受程度。

算法阐述起来比较简单,接下来通过数学公式来认识BP的真实面目。

假设我们的网络结构是一个含有N个神经元的输入层,含有P个神经元的隐层,含有Q个神经元的输出层。

这些变量分别如下:

认识好以上变量后,开始计算:

一、用(-1,1)内的随机数初始化误函数,并设定精度ε,多迭代次数M

二、随机选取第k个输入样本及对应的期望输出

重复以下步骤至误达到要求:

三、计算隐含层各神经元的输入和输出

四、计算误函数e对输出层各神经元的偏导数,根据输出层期望输出和实际输出以及输出层输入等参数计算。

五、计算误函数对隐藏层各神经元的偏导数,根据后一层(这里即输出层)的灵敏度(稍后介绍灵敏度)δo(k),后一层连接权值w,以及该层的输入值等参数计算

六、利用第四步中的偏导数来修正输出层连接权值

七、利用第五步中的偏导数来修正隐藏层连接权值

八、计算全局误(m个样本,q个类别)

比较具体的计算方法介绍好了,接下来用比较简洁的数学公式来大致地概括这个过程,相信看完上述的详细步骤都会有些了解和领悟。

假设我们的神经网络是这样的,此时有两个隐藏层。

我们先来理解灵敏度是什么?

看下面一个公式:

这个公式是误对b的一个偏导数,这个b是怎么?它是一个基,灵敏度δ就是误对基的变化率,也就是导数。

因为?u/?b=1,所以?E/?b=?E/?u=δ,也就是说bias基的灵敏度?E/?b=δ等于误E对一个节点全部输入u的导数?E/?u。

也可以认为这里的灵敏度等于误E对该层输入的导数,注意了,这里的输入是上图U级别的输入,即已经完成层与层权值计算后的输入。

每一个隐藏层第l层的灵敏度为:

这里的“?”表示每个元素相乘,不懂的可与上面详细公式对比理解

而输出层的灵敏度计算方法不同,为:

而后的修正权值为灵敏度乘以该层的输入值,注意了,这里的输入可是未曾乘以权值的输入,即上图的Xi级别。

对于每一个权值(W)ij都有一个特定的学习率ηIj,由算法学习完成。

bp神经网络原理

BP神经网络被称为“深度学习之旅的开端”,是神经网络的入门算法。

开始发展——在人工神经网络的发展历史上,感知机网络曾对人工神经网络的发展发挥了极大的作用,它的出现曾掀起了人们研究人工神经元网络的热潮。单层感知网络(M-P模型)做为初的神经网络,具有模型清晰、结构简单、计算量小等优点。

只能解决线性可分——但是,随着研究工作的深入,人们发现它还存在不足,例如无法处理非线性问题,即使计算单元的作用函数不用阀函数而用其他较复杂的非线性函数,仍然只能解决解决线性可分问题.不能实现某些基本功能,从而限制了它的应用。

BP神经网络登场——20世纪80年代中期,Did Runelhart。Geoffrey Hinton和Ronald W-llians、DidParker等人分别独立发现了误反向传播算法,简称BP,系统解决了多层神经网络隐含层连接权学习问题,并在数学上给出了完整推导。人们把采用这种算法进行误校正的多层前馈网络称为BP网。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 12345678@qq.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息