1实验题目目的_第1页
1实验题目目的_第2页
1实验题目目的_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1实验题目/目的实验题目:基于感知器学习算法的神经学习系统实验目的:理解和掌握感知器模型及其学习过程,能够利用一编程语言建立一个基于感知器/BP学习算法的神经学习系统。矚慫润厲钐瘗睞枥庑赖賃軔。2规格说明(参数设置,环境设置)编程环境:VC+编程语言:C+参数设置:double x1=0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1; 输入向量 聞創沟燴鐺險爱氇谴净祸測。double x2=0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1;残骛楼諍锩瀨濟溆塹籟婭骤。double x3=0,0,0,0,0,0,1,0,0

2、,0,0,1,1,1,1,1,0,1,1,0,0,1;酽锕极額閉镇桧猪訣锥顧荭。double x4=0,0,1,0,0,1,1,0,0,1,1,0,0,1,1,1,1,0,1,0,1,0;彈贸摄尔霁毙攬砖卤庑诒尔。double x5=0,1,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,0,0;謀荞抟箧飆鐸怼类蒋薔點鉍。int d=0,0,0,0,0,0,1,0,0,0,1,0,1,1,1,1,0,0,0,1,1,1; 期待输出厦礴恳蹒骈時盡继價骚卺癩。double w仁0.5,w2=0.7,w3=0.6,w4=0.5,w5=0.8; 初始化联结权值茕桢广鳓鯡选块网羈

3、泪镀齐。double o=0.6,s=0.4;初始化阈值,增益因子3设计思想和步骤(包括适当的结构图和流程图)单层感知器模型:单层感知器学习实际上是一种基于纠错学习规则,采用迭代的思想对联结权值和阈值进行不断调 整,直到满足结束条件为止的学习算法。鹅娅尽損鹌惨歷茏鴛賴縈诘。单层感知器学习是一种有导师学习,它需要给出输出样本的期望输出。假设一个样本空间可被划分 为A , B两类。其激活函数的定义为:如果一个输入样本属于 A类,则激活函数的输出为 1,否则其输出为0。对 应的,也可将期望输出定义为:当输入样本属于 A类时,其期望输出为1,否则为-1。籟丛妈羥为贍债 蛏练淨槠挞。nW为联结权值,wx

4、为阈值)本实验使用五人表决系统的示例,共有32个示例,因为使用其中 16个示例无法使权值、阈值、学习因子稳定下来,,故总共使用包括 22个示例的训练集对单层感知器网络进行训练。預頌圣鉉儐歲龈讶骅籴買闥。i T=n实验步骤:1<8初始化联结权值和阈值,以及增益因子。d(t);提供样本输入xi(t)(i=1,2, 和期望输出计算网络的实际输出n若y(y=0,不需要调整连接权值,转)。否则1盅.(5) 调整连接权值:9Wi(t 1) =Wi(t)d(t) y(t)Xi(t)i =1,2,., n其中,n是一个增益因子,用于控制修改速度,其值如果太大,会影响wi(t)的收敛性;如果太小,又会使

5、wi(t)的收敛速度太慢;渗釤呛俨匀谔鱉调硯錦鋇絨。判断是否满足结束条件,若满足,算法结束;否则,将 t值加1,转(2)重新执行。结束条件一般是 指wi(t)对一切样本均稳定不变。铙誅卧泻噦圣骋贶頂廡缝勵。最后用示例对学习后的单层感知器网络进行使用,得到实验结果。4实验仿真和结果分析兄兄兄兄兄 圭冃主冃主目圭冃主冃 几表表表表表 卡二三四五过 攻次丛通 一请青请请隹(0否决,5否决 純否决5否决 舗否决丄通过):0 I通过:i 丄通过:1 丄通过:0 iSS): 1决决决决决 表袤表羹! 口音音音音可过 二三四五通 lAixlAlAIA未 请请请请况純否决 况5否决 况5否决, 况舗否决 况5

6、否决丄通过 t通过1通过丄通过 丄通过01106主冃吐冃主冃圭冃圭冃 表表表表表二三四五过 入入入入入通 m 请请请PM(0否决,(0否决(0否决5否决(0否决1通过)1通过)1通爸1通过11111请输入一号表决情况舗否决t通过:分别利用三个示例对网络进行验证:01101,01100,11111。结果分别是通过,未通过,通过。5实验体会 这次实验算是走了不少弯路,因为对单层感知器的实际应用的理解不是很清楚,所以一直无法找到 合适的多输入单输出的示例来作为神经网络的训练集。擁締凤袜备訊顎轮烂蔷報赢。后来终于有了一点想法,可以用五人表决器作为简单的示例。这个例子可以有32个示例,本来实验要求50%

7、作为训练集,50%作为验证示例。但实际实验中发现这个例子单用16个示例无法使权值、阈值稳定下来,所以不得不另外添加了几个示例来充实训练集,可以说是这次实验做下来 的一个遗憾。贓熱俣阃歲匱阊邺镓騷鯛汉。但通过这次实验,笔者还是学到很多东西的。首先对感知器的模型和基本原理、思想有了更深的了 解,同时通过这一神经网络结构较为简单的模型,也对其他较为复杂的模型的知识有了一些了解。 坛搏乡囂忏蒌鍥铃氈淚跻馱。单层感知器的学习过程就是不断调整阈值、联结权值以及增益因子的过程,它可以很好的解决线性 可分的问题。本身编程实现这一学习算法并不困难,但笔者认为,最重要的是理解算法本身的目的 和含义。它本身模拟了生

8、物神经的结构和工作原理,对人工智能这一学科有很大的影响。蜡變黲癟報伥铉锚鈰赘籜葦。笔者认为,学习并不能仅仅止于这次实验而已,我们要从最简单的知识中看出未来发展的路。 培养兴 趣,继续探索研究,以小见大,才能真正有所得。買鲷鴯譖昙膚遙闫撷凄届嬌。6 参考文献 王万森 . 人工智能原理及其应用(第2 版) .电子工业出版社, 2007谭浩强 C语言设计(第二版)清华大学出版社,20057 程序源码(核心) ,源码要求有清晰明确的注释 while (i!=22)/ 网络学习过程,即调整阈值、学习因子和权值的过程 i=0;for (int j=0;j<22;j+)/ 通过训练集中的 22个示例进

9、行网络学习 if (w1*x1j+w2*x2j+w3*x3j+w4*x4j+w5*x5j-o>=0) 綾镝鯛駕櫬鹕踪韦辚糴飙钪。 out=1;若和期望输出一致则输出为1else out=0; 否则为 0if (out=dj) i+;/ 输出符合期望输出的示例数 else/对阈值、权值、学习因子进行调整 o=o+s*(dj-out)*(-1); w1=w1+s*(dj-out)*x1j; w2=w2+s*(dj-out)*x2j; w3=w3+s*(dj-out)*x3j; w4=w4+s*(dj-out)*x4j; w5=w5+s*(dj-out)*x5j;/以下为使用网络的过程if (

10、i=22)/ 如果网络学习成功的话使用网络解决实际问题printf (" 五人表决系统 n");int x1,x2,x3,x4,x5;while (1) printf ("请输入一号表决情况( 0否决, 1 通过):"); scanf ("%d",&x1);if (x1!=1 && x1!=0) printf (" 非法输入! "); break;printf ("请输入二号表决情况( 0否决, 1 通过):"); scanf ("%d",&x

11、2);if (x2!=1 && x2!=0) printf (" 非法输入! "); break;printf (" 请输入三号表决情况( scanf ("%d",&x3);if (x3!=1 && x3!=0)printf (" 非法输入! ");break;printf (" 请输入四号表决情况( scanf ("%d",&x4);if (x4!=1 && x4!=0)printf (" 非法输入! ");break;printf (" 请输入五号表决情况( scanf ("%d",&x5);0 否决,0 否决,0 否决,通过):通过):通过):");");");if (x5!=1 && x5!=0)printf (" 非法输入! ");br

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论