基于BP算法的异或运算的实现(共10页).doc
《基于BP算法的异或运算的实现(共10页).doc》由会员分享,可在线阅读,更多相关《基于BP算法的异或运算的实现(共10页).doc(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上基于BP算法的异或运算的实现刘政宇 摘 要:在人工神经网络理论的基础上,利用多层感知器对异或问题进行解决。分析了BP算法的学习过程,采取BP算法编制一个C+语言的程序,实现基于BP算法的异或运算,并描述了使用BP算法实现异或问题的具体学习过程,给出了程序运行后的结果,验证了BP网络通过若干简单非线性处理单元的复合映射,可获得复杂的非线性处理能力。关键词:人工神经网络 多层感知器 BP算法 异或运算 作为一门活跃的边缘性交叉学科,神经网络的研究与应用正成为人工智能、认识科学、神经生理学、非线性动力学等相关专业的热点。近十几年来,针对神经网络的学术研究大量涌现,上百种神经
2、网络模型被提出,其应用涉及模式识别、联想记忆、信号处理、自动控制、组合优化、故障诊断及计算机视觉等众多方面,取得了令人瞩目的进展。经过近半个世纪的发展,神经网络理论在模式识别、自动控制、信号处理、辅助决策、人工智能等众多研究领域取得了广泛的成功。关于学习、联想和记忆等具有智能特点过程的机理及其模拟方面的研究正受到越来越多的重视。学习功能是神经网络最主要的特征之一。各种学习算法的研究,在人工神经网络理论与实践发展过程中起着重要作用。当前,人工神经网络研究的许多课题都致力于学习算法的改进、更新和应用。1958年,美国学者Frank Rosenblatt首次定义了一个具有单层计算单元的神经网络结构,
3、取名为感知器(Perceptron)。经过论证,单层感知器只能进行线性分类,对非线性样本的划分无法实现,例如异或问题在二维空间中就是一个非线性的样本空间分类的问题,就需要用到多层感知器,即网络应具有隐层,但对隐层神经元的学习规则尚无所知。就感知器学习规则来说,其权值的调整取决于网络期望输出与实际输出之差,而对各隐层节点来说,不存在期望输出,因而该学习规则对隐层权值调整不适用。此时需要用到误差反向传播的BP学习规则。BP(Back Propagation)网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经
4、网络模型之一。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP神经网络模型拓扑结构包括输入层(input)、隐层(hide layer)和输出层(output layer)。BP算法由数据流的前向计算(正向传播)和误差信号的反向传播两个过程构成。正向传播时,传播方向为输入层隐层输出层,每层神经元的状态只影响下一层神经元。若在输出层得不到期望的输出,则转向误差信号的反向传播流程。通过这两个过程的交替进行,在权向量空间执行误差函数梯度下降策略,动态迭代搜索一
5、组权向量,使网络误差函数达到最小值,从而完成信息提取和记忆过程。BP算法的学习目的是对网络的连接权值进行调整,使得调整后的网络对任一输入都能达到所期望的输出。学习过程由正向传播与反向传播组成。正向传播用于对前向网络进行计算,即对某一输入信息,经过网络计算后得出它的输出结果;反向传播用于逐层传递误差,修改神经元间的连接权值,以使网络对于输入信息经过计算后得到的输出能达到期望的误差要求。学习的方法是使用一组训练样例对网络的连接权值进行训练,每一个样例中,都包括输入及期望的输出两部分。在正向传播算法中,首先将训练样例的输入信息输入到网络中,输入信息从输入层经过隐层节点逐层计算处理后,传至输出层。在计
6、算处理过程中,每一层神经元的状态只影响下一层神经元的状态,如果在输出层得到的结果不是所期望的输出,那么就转为反向传播。反向传播把误差信号沿路径方向传回,并按一定的原则对各层神经元的权值进行修正,直到第一个隐层,这时再开始进行正向传播,利用刚才的输入信息进行正向网络计算,如果网络的输出达到了误差要求,则学习过程结束,如果达不到要求,则再进行反向传播的连接权值调整。这一过程不断反复,直到网络正向计算的输出结果达到误差要求的结果为止,这时学习过程结束。具体算法过程见右图。一旦网络进行训练后,在用于求解实际问题时就只需要使用正向传播,而不需要使用反向传播了。使用BP算法实现异或问题的具体学习过程按以下
7、步骤顺序进行:(1)网络状态初始化:用较小的随机数对网络的权值(Wji)和(Vkj)以及偏置值(j)和(k)赋初值。(2)输入第一个模式。(3)把学习模式的值作为输入层单元i的输出(Ii),用输入层到中间层的权值(Wji)和中间层单元的偏置值(j),求出对中间单元j的输入Uj以及相应的输出Hj:Uj=Ii +j,Hj= f(Uj)。上式中的f()是Sigmoid函数。(4)用中间层的输出(Hj),中间层到输入层的连接权值(Vkj)以及输出层单元的偏置值(k)求出对输出层单元k的输入Sk以及相应的输出Ok:Sk=Hj +k,Ok= f(Sk)。(5)根据学习模式的教师信号Tk和输出层的输出Ok的
8、差,求出有关输入层单元k的偏置值以及连接到其上权值的误差(k):k=(Ok-Tk) Ok(1- Ok)。(6)根据误差k,从中间层到输入层的权值(Wkj)以及中间层的输出(Hj),求出有关中间层j的偏置值以及连接到其上的权值的误差(j):j =Vkj Hj(1- Hj)。(7)根据由第(5)步求出的k以及Hj和常数,对从中间层单元j到输出层单元k的权值(Vkj)加以调整。另外,根据k和常数对输出层单元k的偏置值k加以调整:Vkj= Vkj+k Hj,k=k+k。(8)根据误差j,输入单元i的输出(Ii)以及常数对从输入单元i到中间层单元j的连接权值(Wji)加以调整。根据误差(j)和常数对中间
9、层单元j的偏置值(j)加以调整:Wji = Wji +j Ii,j =j +j。(9)输入下一个模式。(10)若有学习模式,则返回(3)。(11)更新学习次数。(12)若学习次数小于规定的次数,则返回(2)。程序运行过程及结果:程序运行后,在提示下输入“学习率”为0.999,输入“误差控制精度”为0.0001,输入“循环的最大次数”为20000,程序执行后,可以看到在result.txt中结果如下:网络学习20000次结束,误差为:0.,各层的权值如下:隐藏层到输出层权值:W00 = 10.9247,W10 = 10.8454,输入层到隐藏层权值:V00 = 6.2442,V01 = -6.7
10、187,V10 = -6.46219,V11 = 6.56169,对应着样本实际输出为:000.010.100.110.通过这个程序实例,使用多层感知器解决了单层感知器不能解决的异或问题,也从侧面验证了BP网络通过若干简单非线性处理单元的复合映射,可获得复杂的非线性处理能力。但是从给入不同的学习率、误差控制精度和学习次数得到了不同的结果,从中也暴露了BP算法的一些局限性。第一,该学习算法的收敛速度慢,常常需要成千上万次的迭代,而且随着训练样例的增多,网络性能会变差;第二,网络中隐节点个数的选取上无理论上的指导;第三,从数学角度上看,BP算法是一种梯度最速下降法,这就有可能出现局部最小的问题。当
11、出现局部最小时,从表面上看,符合误差的要求,但这时所得到的解并不一定是问题的真正解。所以BP算法是不完备的。参考文献1 徐丽娜. 神经网络控制(第三版).电子工业出版社.2009.72 王伟. 人工神经网络原理入门与应用.北京航空航天大学出版社.1995.103 杨建刚. 人工神经网络实用教程. 浙江大学出版社.2001.14 朱大奇. 人工神经网络研究现状及其展望. 江南大学学报,2004,3(1):103110 5 宋宜斌,王培进. 多层前馈神经网络改进算法及其应用.计算机工程.2003.86Bulsari A. Some Analytical Solutions to the Gener
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 BP 算法 运算 实现 10
限制150内