![用BP神经网络解决徽章问题_第1页](http://file4.renrendoc.com/view/a9aeb849662ba750f075931628db8ccc/a9aeb849662ba750f075931628db8ccc1.gif)
![用BP神经网络解决徽章问题_第2页](http://file4.renrendoc.com/view/a9aeb849662ba750f075931628db8ccc/a9aeb849662ba750f075931628db8ccc2.gif)
![用BP神经网络解决徽章问题_第3页](http://file4.renrendoc.com/view/a9aeb849662ba750f075931628db8ccc/a9aeb849662ba750f075931628db8ccc3.gif)
![用BP神经网络解决徽章问题_第4页](http://file4.renrendoc.com/view/a9aeb849662ba750f075931628db8ccc/a9aeb849662ba750f075931628db8ccc4.gif)
![用BP神经网络解决徽章问题_第5页](http://file4.renrendoc.com/view/a9aeb849662ba750f075931628db8ccc/a9aeb849662ba750f075931628db8ccc5.gif)
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、用BP神经网络解决“徽章”问题江南(福建信息职业技术学院,福建福州,350003)摘要:神经网络具有大规模并行处理、自适应性、自组织性及容错性等其他算法无法比拟的优点,在处理分类问题中得到了广泛的应用。BP算法已成为目前应用最为广泛的神经网络学习算法,绝大部分的神经网络模型是采用BP算法或它的变化形式,它是前向神经网络的核心部分,体现了神经网络最精华的部分。文章介绍了利用BP算法解决一个典型的分类问题徽章问题。关键词:BP神经网络、分类问题、学习与训练、徽章问题、matlab0前言徽章问题是一个典型的分类问题。它可以用一个具体的例子描述:在某个国际会议上,参加会议的280名代表都收到会议组织者
2、发给的一枚徽章,徽章的标记为“”或“”。会议的组织者声明:每位代表得到徽章“”或“”的标记只与他们的姓名有关,并希望代表们能够找出徽章“”与“”的分类方法。由于客观原因,有14名代表没能参加此次会议。按照代表们找出的方法判断,如果他们参加会议将得到的徽章类型。分类问题是数据挖掘中的一个重要问题,旨在生成一个分类函数或分类模型,该模型能把数据库中的数据项映射到给定类别中的某一个。常用的分类方法主要有贝叶斯法、近邻学习法、决策树法、规则归纳法及神经网络法。而由于神经网络具有大规模并行处理、自适应性、自组织性及容错性等其他算法无法比拟的优点,而得到了广泛的应用。我们借助神经网络中的BP神经网络算法对
3、问题进行分析,P算法已成为目前应用最为广泛的神经网络学习算法,绝大部分的神经网络模型是采用BP算法或它的变化形式,它也是前向神经网络的核心部分,体现了神经网络最精华的部分。1.BP神经网络BP神经网络(Back-propagationNeutralNetwork)通常是指基于误差反向传播算法(BP算法)的多层前向神经网络,采用由导师的训练方式。由于它可以实现输入和输出的任意非线性映射,使得它在诸如函数逼近、模式识别、数据压缩等领域有广泛的应用。BP神经网络分类模型图如下:BP网络不仅有输入层节点和输出层节点,而且还有隐含层节点对于输入信号。要先前向传播到隐节点,经过作用函数后,再把隐节点的输出
4、信息传播到输出节点,最后输出结果。节点的作用函数通常选取S型函数,在matlab中,S型函数有tansig(正切S型传递函数)和logsig(对数S型传递函数)两种。BP分类算法的具体过程如下:(1)根据网络要求对输入进行预处理;(2)采用BP网络对已预处理的输入进行学习与训练;(3)用训练好的BP网络对待分类样本进行模式分类。其中,学习与训练过程是整个分类过程的重点,它由两部分组成,即网络输入信号正向传播和误差信号反向传播。在正向传播中,输入信息从输入层经隐含层逐层计算传向输出层,在输出层的各神经元输出对应输入模式的网络响应;如果输出层得不到期望输出,则误差转入反向传播,按减小期望输出与实际
5、输出的误差原则,从输出层经到中间各层,最后回到输入,层层修正各个连接权值。随着这种误差逆传播训练不断进行,网络对输入模式响应的正确率也不断提高,如此循环直到误差信号达到允许的范围之内或训练次数达到预先设计的次数为止。BP神经网络算法的学习训练过程如下:初始化网络,对网络参数及各权系数进行赋值,其中权系数应取随机数;输入训练样本,计算各层节点的网络输出值,并与真实值相比较,得出网络的输出误差;依据误差反向传播规则,调整隐层之间以及隐层与输入层之间的权系数;重复步骤(2)和(3),直至预测误差满足条件或训练次数达到规定次数。整个训练学习的过程可以由下面的框图表示:在建立了有关BP神经网络算法的基本
6、概念后,我们即可以运用Matlab已有的工具箱对BP网络进行训练并最终对所给的数据进行分类。Matlab神经网络工具箱提供了许多函数实现BP算法。2解决徽章问题神经网络数据挖掘方法只能处理数值数据,因此,需要将离散的符号数据转化为数值数据。最简单的方法是建立一个符号和数字值一一对应的对照表。另一种比较复杂的方法是采用合适的哈希函数,根据给定的字符串产生一个唯一的数字值。在这个模型中,由于徽章只和姓名有关,而姓名又是英文字符串,很自然的考虑到用英文字母编码作为特征值来考虑。给定参加会议代表的姓名及其徽章如下:+NaokiAbe-MyriamAbramson+DavidW.Aha+KamalM.A
7、li-EricAllender+DanaAngluin-ChidanandApte+MinoruAsada+LarsAsker+JavedAslam+HaralabosAthanassiou+JoseL.Balcazar+TimothyP.Barber+MichaelW.Barley-CristinaBaroglio+PeterBartlett-EricBaum+WeltonBecket(由于篇幅所限,在此忽略)未参加会议的代表如下:MerrickL.FurstJeanGabrielGanasciaWilliamGasarchRicardGavaldaMelindaT.GervasioYola
8、ndaGilDavidGillmanAttilioGiordanaKateGoelzPaulW.GoldbergSallyGoldmanDianaGordonGeoffreyGordonJonathanGratch模型一:我们先做第一种尝试,将人名的前五个字母进行编号,az分别对应025,即每个人名的特征值是一个长度为5的一维向量,总共280个人名就是个5*280的矩阵p,作为网络输入。将题目中的徽章问题量化,假设徽章为则为1,徽章为则为0,就形成一个1*280的矩阵t,作为目标输出。这一过程编写一个Java程序完成。将这些特征值作为训练样本,通过Matlab的工具箱对BP分类算法进行训练,并
9、确定权值,具体程序,注释及结果如下:net=newff(025;025;025;025;025,100,1,logsig,purelin,trainlm);/创建一个神经网络,每个字母所对应的量化值的输入范围025,神经网络有2层,第一层有100个神经元,第二层1个,传递函数分别是S型和线性,训练方式trainlm。net=init(net);/初始化神经网络net.trainParam.min_grad=1e-020;/设定最小梯度值,提高训练效果net=train(net,p,t);TRAINLM,Epoch0/100,MSE4.78695/0,Gradient4628.35/1e-020
10、TRAINLM,Epoch25/100,MSE0.000969475/0,Gradient4.93588/1e-020TRAINLM,Epoch50/100,MSE6.16266e-005/0,Gradient4.48141/1e-020TRAINLM,Epoch72/100,MSE4.00219e-031/0,Gradient1.53435e-013/1e-020TRAINLM,MaximumMUreached,performancegoalwasnotmet.得到的训练次数与训练精度的关系图如下:将用于训练的输入数据p代入训练后的神经网络,输出结果为a矩阵a=sim(net,p)a=Col
11、umns1through91.00000.00001.00001.00000.00001.0000-0.00001.00001.0000Columns10through181.00001.00001.00001.00001.0000-0.00001.0000-0.00001.0000(后面数据略)将它和用于训练的目标输出矩阵t对比可以看出,吻合得很好。下面将14个待分类的人名的前五个字母编码输入神经网络,得到的结果如下:a=sim(net,n)a=Columns1through81.38890.85041.00000.9551-0.0006-0.05151.0000-0.7714Columns
12、9through141.07760.99772.06550.46730.47941.0000可以看到,这个结果不是很好,由很多介于0和1之间的数字,从这里的分析可以看出,选取字母的编码作为特征值是合理的,但需要对特征值的选取方案进行细化。模型二:对所给出的280个人名取特征值,我们将人名的第一个字母的进行编号,az分别对应025,并将这些特征值带入到BP网络中去进行训练,具体程序如下:net=newff(025,100,1,logsig,purelin,trainlm);net=train(net,p,t);TRAINLM,Epoch0/100,MSE36.4541/0,Gradient101
13、11.3/1e-010TRAINLM,Epoch6/100,MSE0.115783/0,Gradient7.80296e-013/1e-010TRAINLM,Minimumgradientreached,.trainParam.min_grad=1e-020;net=train(net,p,t);TRAINLM,Epoch0/100,MSE0.115783/0,Gradient7.80296e-013/1e-020TRAINLM,Epoch3/100,MSE0.115783/0,Gradient1.18794e-012/1e-020TRAINLM,MaximumMUreached,perfor
14、mancegoalwasnotmet.从训练情况可以看出,在误差值比较大的时候训练就停止了,将输入p带入训练后的矩阵,发现输出结果与t很不一致,说明这里找不到分类的规律。模型三:我们将人名的第二个字母的进行编号,az分别对应025,得到特征值矩阵p,作为训练样本,具体程序及结果如下:net=newff(025,100,1,logsig,purelin,trainlm);net=init(net);net.trainParam.epochs=100;net.trainParam.min_grad=1e-020;net=train(net,p,t);TRAINLM,Epoch0/100,MSE1.
15、33712/0,Gradient889.071/1e-020TRAINLM,Epoch7/100,MSE0.00352734/0,Gradient2.11219e-012/1e-020TRAINLM,MaximumMUreached,performancegoalwasnotmet.a=sim(net,p)训练后的BP神经网络,输入参加训练的数据p,验证数据,可以看出,和所给人名所对应的徽章满足的很好,所得到的数据如下:a=Columns1through80.98770.00000.98770.9877-0.00000.98770.00001.0000Columns9through160.98
16、770.98770.98771.00001.00001.0000-0.00001.0000训I练次数和训练精度的关系图如下:可见收敛的速度相当之快。对于待分类的人名,先将其做同样的量化,如下:n=44884140190008414;a=sim(net,n)用已训练完的BP神经网络对其进行分类,得到的结果如下:a=Columns1through81.00001.00001.00001.00001.00001.00000.98770.0000Columns9through140.98770.98770.98771.00001.00001.0000可以看出,也是呈0-1的分布,和分类的要求比较接近。
17、分类方法的确定通过模型一,模型二和模型三的比较,我们可以看出模型三的特征值的取法所得的BP算法对于所给的280个数据的正确率为100,并且对于14个待分类的人名计算得到的特征值从数据本身看来非0即1,可见模型三所对应的分类方法有可能是可行的,即我们可以通过对名字的第二个字母的某种标准进行分类。我们通过对第二个字母的多种分类方法进行尝试,得到通过第二个字母的元辅音进行分类,即第二个字母是元音为,为辅音为,并对280个所给人名进行分类,结果与所给分类方式一致,可见这就是我们要找的分类方法。用这种分类方法对14个待分类人名进行分类得到的结果如下:11111110111111将这个分类结果与上面我们通过Matlab用BP算法得出的分类结果一致,这再一次证明我们所找到的分类方法就是最好的分类方法。结语从以上的分析可以看出,BP神经网络分类算法对解决分类的问题有着很好的效果,它可以达到很高的分类精度,实现了人工智能,而学习过程不需要太多人工的干预。但是在算法实际操作上,选择神经网络的复杂程度与效率有着较大的关系,如果神经网络较为简单,如只有10个节点,收敛速度将变慢,而复杂的网络就对计算机硬件提出了较高的要求,由于神经网络是采用并行计算,普通计算机在解决此类问题时需要较大的内存
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度高品质牛头梗犬繁殖基地合作协议
- 《PLC应用技术(西门子 下册)(第二版)》课件 课题二 PLC综合应用技术
- 2024年12月浙江武义县社会福利院公开招聘1人笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 烹饪工艺学(第2版) 课件 单元9调色和调香工艺
- 第二单元 习作【知识精研】写读后感【知识精研】【知识精研】五年级语文下册单元作文能力提升(统编版)
- 《世界奇花异草》课件
- 《责任心培训》课件
- 2025届高考【应试策略】化学
- 《电磁波的发现》课件
- (高清版)DB37∕T 3023.4-2017 工作场所空气有毒物质测定 第4部分:马拉硫磷 气相色谱法
- 友情 创可贴 课件 综合实践活动四年级下册
- 选择性必修中册写作任务·申论
- 《冠心病病人的护理》课件
- 红楼梦阅读单选题100道及答案解析
- 医用超声诊断装置相关项目实施方案
- 《Python程序设计基础教程(微课版)》全套教学课件
- 监理专题安全例会纪要(3篇)
- GB/T 17374-2024食用植物油销售包装
- 高级烟草制品购销员(三级)职业资格鉴定理论考试题及答案
- 河道清淤疏浚投标方案(技术方案)
- 护理部工作总结
评论
0/150
提交评论