bp网络解决xor分类问题

bp网络解决xor分类问题

ID:27537408

大小:207.50 KB

页数:15页

时间:2018-12-03

bp网络解决xor分类问题_第1页
bp网络解决xor分类问题_第2页
bp网络解决xor分类问题_第3页
bp网络解决xor分类问题_第4页
bp网络解决xor分类问题_第5页
资源描述:

《bp网络解决xor分类问题》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、《智能计算》课程设计报告BP网络解决XOR分类问题姓名.•班级:学号:指导老师:完成时间:2011/12/26设计目的:木实验课程是与《智能优化算法及其应用》理论课程配套的实践性课程,用实验的方法帮助学生更好地熟悉和掌握智能优化算法的基本原理和方法;通过综合应用所学知识,实现一些智能优化算法的经典方法,以及智能优化算法的基本应用;同时提高学生编写实验报告、总结实验结果的能力;使学生对裨能优化算法的相关理论和方法有更深刻的认识。完成的主要任务:BP网络是目前前馈式祌经网络屮应用最广泛的网络之一,实现BP算法训练神经网络完成XOR的分类问题。设计要求:1.能够设置网络的输入节点数、隐节点数

2、、网络层数、学习常数等各项参数;2.能够输入训练样木;3.实现BP算法的训练过程;4.实现训练过程的动态演示;5.训练完成后可输入测试数据进行测试。解决的主要问题:根据感知器的的相关理论易知感知器善于解决线性可分问题,而不能解决XOR问题,所以引进了BP网络,并通过相关知识來解决分类问题。反向传播网络(Back-PropagationNetwork,简称BP网络)是将W_H学习规则一般化,对非线性可微分函数进行权值训练的多层网络。BP网络主要用于函数逼近,模式识别,分类,数据压缩。在人工神经网络的实际应用中,80%~90%的人工神经网络模型是采用BP网络或它的变化形式,也是前行网络的核

3、心部分,体现/人工神经网络最精华的部分。一个具有r个输入和一个隐含层的神经网络模型结构如图所示下图所示是S型激活函数的图型,可以看到f()是一个连续可微的函数,一阶导数存在。对于多层网络,这种激活函数所划分的区域不再是线性划分,而是有一个非线性的超平而组成的区域。它还可以严格利用梯度算法进行推算,他的权值修正的解析式十分明确,其算法被称为误差反向传播法,简称SP算法。BP算法是有两部分组成:信息的正内传递与误差的反向传播。在正向传播过程中,输入信息从输入经隐含层逐层计算传向输出层,每一层神经元的状态值影响下一层神经元的状态。如果在输出层没有得到期望的输出,则计算输出层的误差变化值,然后

4、转向反向传播,通过网络将误差信号沿原来的连接通路反传回来修改各层神经元的权值直至达到期望的目标。设计的基本概念和原理:XOR问题就是如何用神经网络实现异或逻辑关系,即Y=AXORB。对于这个问题用单个神经元模型无法解决,因为该问题是线性不可分的,对于两维输入空间,神经元的作用可以理解为对输入空间进行一条直线划分。多层神经网络可以解决这个问题,因为多层网络引入了中间隐含层,每个隐含神经元可以按不同的方法来划分输入空间抽取输入空间中包含的某些特征,从而形成更为复杂的分类区域。理论上已经证明三层神经网络足以解决任意复杂的分类问题。XOR问题的样本只有4个样本,它们的输入分别是{(0,0),(

5、0,1),(1,0),(1,1)},对应的输出是{0,1,1,0}。输入是2维向量,故输入层用2个神经元,由于输入层神经元的输入与输出相同,其单元不需要进行数学处理,可直接将输入神经元的输入接到隐含层神经元的输入。网络输出是1维向量,故输出层用1个神经元。对于这个简单问题,隐含层神经元的个数确定为2个。经过简单的训练后即可得到网络结构总体设计:在进行BP网络设计前,一般应从网络的层数、每层中的神经元个数、初始值以及学习方法等方面来进行考虑。1.网络的层数理论上早已证明:具有偏差和至少一个S型隐含层加上一个线性输出层的网络,能够逼近任何有理函数。增加层数主要可以更进一步的降低误差,提高精

6、度,但同时也使网络复杂化,从而增加了网络权值的训练时间。而误差精度的提高实际上也可以通过增加隐含层中的神经元数目来获得,其训练效果也比增加层数更容易观察和调整,所以一般情况下,应优先考虑增加隐含层中的神经元数。2.隐含层的神经元数网络的层数网络训练精度的提高,可以通过釆用一个隐含层,而增加其神经元个数的方法来获得,这在结构实现上要比增加更多的隐含层要简单得多。那么宄竟选取多少个隐含节点才合适?这在理论上并没有一个明确的规定。在具体设计时,比较实际的做法是通过对不同神经元数进行训练比较对比,然后适当的加上一个余量。1.初始权值的选取由于系统是非线性的,初始值对于学习是否达到局部最小、是否

7、能够收敛以及训练时间的长短关系很大。如果初始值太大,使得加权后的输入落在激活函数的饱和区,从而导致其导数非常小,而在加权值修正公式屮,调节过程几乎停顿下来。所以一般总是希望经过初始加权后的每个神经元的输出值都接近于零,这样可以保证每个神经元的权值都能够在他们的S型激活函数变化最大之处进行调节。所以一般取初始权值在(-1,1)之间的随机数。另外,为了防止上述现象的发生,已有学者在分析了两层网络是如何对一个函数进行训练以后,提出一种选定初始权值的策

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。