- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验七 MATLAB神经网络工具箱
一、实验目的
1、掌握Matlab对感知器网络的构建与训练方法。
2、掌握Matlab对线性神经网络的构建与训练方法。
3、掌握Matlab对BP神经网络的构建与训练方法。
二、实验原理
1、感知器的MATLAB仿真
感知器(Pereceptron)是一种特殊的神经网络模型,是由美国心理学家F.Rosenblatt于1958年提出的,一层为输入层,另一层具有计算单元,感知器特别适合于简单的模式分类问题,也可用于基于模式分类的学习控制和多模态控制中。
(一)感知器神经元模型
感知器神经元通过对权值的训练,可以使感知器神经元的输出能代表对输入模式进行的分类,图1.1为感知器神经元模型。
图1.1 感知器神经元模型
感知器神经元的每一个输入都对应于一个合适的权值,所有的输入与其对应权值的加权和作为阀值函数的输入。由于阀值函数的引入,从而使得感知器可以将输入向量分为两个区域,通常阀函数采用双极阶跃函数,如:
(1.1)
而感知器神经元模型的实际输出为
(1.2)
其中b为阀值
(二)感知器的网络结构
图1.2所描述的是一个简单的感知器网络结构,输入层有R个输入,Q个输出,通过权值wij与s个感知器神经元连接组成的感知器神经网络。
根据网络结构,可以写出感知器处理单元对其输入的加权和操作,即:
(1.3)
而其输出ai为
ai=f (ni+bi) (1.4)
由式2.1易知
(1.5)
则当输入ni+bi大于等于0,即有ni≥-bi时,感知器的输出为1;否则输出为0。
上面所述的单层感知器神经网络是不可能解决线性不可分的输入向量分类问题,也不能推广到一般的前向网络中去。为解决这一问题,我们可以设计多层感知器神经网络以实现任意形状的划分。
图1.3描述了一个双层感知器神经网络。其工作方式与单层感知器网络一样,只不过是增加了一层而已,具体的内容这里不做讨论。
(三)感知器神经网络的学习规则
感知器的学习规则主要是通过调整网络层的权值和阀值以便能够地网络的输入向量进行正确的分类。
如图1.2所示的输入向量P、输出和量a和目标向量为t的感知器神经网络,感知器的学习规则是根据以下输出矢量a可能出现的几种情况未进行参与调整的:
1)如果第i个神经元的输出是正确的,即有ai=t1,则与第i个神经元联接的权值和阀值保持不变。
2)如果第i个神经元的输出是不正确,应该有两种情况。
i)实际输出为0,而理想输出为1,即有ai=0,而ti=1,则所有的输入j对权值和阀值进行调整,修正值Δw1j=pj,Δbj=1。
ii)实际输出为1,而期望输出为0,即有ai=1,而ti=0,则对所有的输入j进行权值和阀值调整,Δw1j=-pj,Δbi=-1。
基于感知器误差e=t-a,感知器学习规则可望写为:
Δw1j=ei·pj
可以证明当前输入样本来自线性可分的模式时,上述学习算法在有限步同收敛,这时所得的权值能对所有样本正确分类,这一结论被称为感知器收敛定理。
(四)感知器神经网络的训练
要使前向神经网络模型实现某种功能,必须对它进行训练,让它逐步学会要做的事情,并把所学到的知识记忆在网络的权值中。感知器神经网络的训练是采用由一组样本组成的集合来进行。在训练期间,将这些样本重复输入,通过调整权值使感知器的输出达到所要求的理想输出。感知器的训练主要是反复对感知器神经网络进行仿真和学习,最终得到最优的网络阀值和权值。
我们可以用以下方法训练网络:
1) 确定我们所解决的问题的输入向量P、目标向量t,并确定各向量的维数,以及网络结构大小、神经元数目。假定我们采用图2.2的网络结构。
2)初始化:权值向量w和阀值向量b分别赋予[-1,+1]之间的随机值,并且给出训练的最大次数。
3)根据输入向量P、最新权值向量w和阀值向量b,计算网络输出向量a。
4)检查感知器输出向量与目标向量是否一致,或者是否达到了最大的训练次数,如果是则结束训练,否则转入(5)。
5)根据感知器学习规则调查权向量,并返回3)。
(五)重要的感知器神经网络函数的使用方法
对于感知器的初始化、训练、仿真,在MATLABP神经网络工具箱中分别提供了init( ), trainp( )和sim( )函数。
1.初始化函数init( )
感知器初始化函数init( )可得到R个输入,S个神经元数的感知器层的权值和阀值,其调用格式为:
[w,b]=init(R,S)
另外,也可以利用输入向量P和目标向量t来初始化。
[w,b]=init(
文档评论(0)