欢迎来到天天文库
浏览记录
ID:18529934
大小:200.50 KB
页数:21页
时间:2018-09-18
《人工智能导论实验指导书》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验一感知器的MATLAB仿真感知器(Pereceptron)是一种特殊的神经网络模型,是由美国心理学家F.Rosenblatt于1958年提出的,一层为输入层,另一层具有计算单元,感知器特别适合于简单的模式分类问题,也可用于基于模式分类的学习控制和多模态控制中。一、感知器神经元模型感知器神经元通过对权值的训练,可以使感知器神经元的输出能代表对输入模式进行的分类,图1.1为感知器神经元模型。x1x2xRoo┇oiwi1wi2wiRθ1o图1.1感知器神经元模型感知器神经元的每一个输入都对应于一个合适的权值,所有的输入与其对应权值的加权和作为阀值函数的输入。由于阀值函数的引入,从而使得感知
2、器可以将输入向量分为两个区域,通常阀函数采用双极阶跃函数,如:(1.1)而感知器神经元模型的实际输出为(1.2)其中b为阀值二、感知器的网络结构图1.2所描述的是一个简单的感知器网络结构,输入层有R个输入,Q个输出,通过权值wij与s个感知器神经元连接组成的感知器神经网络。21PoN1obR×QS×RS×1S×QnS×Qa图1.2感知器神经网络结构根据网络结构,可以写出感知器处理单元对其输入的加权和操作,即:(1.3)而其输出ai为ai=f(ni+bi)(1.4)由式2.1易知(1.5)则当输入ni+bi大于等于0,即有ni≥-bi时,感知器的输出为1;否则输出为0。上面所述的单层感知器
3、神经网络是不可能解决线性不可分的输入向量分类问题,也不能推广到一般的前向网络中去。为解决这一问题,我们可以设计多层感知器神经网络以实现任意形状的划分。图1.3描述了一个双层感知器神经网络。其工作方式与单层感知器网络一样,只不过是增加了一层而已,具体的内容这里不做讨论。Pow11obR×QS×RS×1a1W2a2图1.3感知器神经网络结构ob三、感知器神经网络的学习规则感知器的学习规则主要是通过调整网络层的权值和阀值以便能够地网络的输入向量进行正确的分类。21如图1.2所示的输入向量P、输出和量a和目标向量为t的感知器神经网络,感知器的学习规则是根据以下输出矢量a可能出现的几种情况未进行参
4、与调整的: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可以证明当前输入样本来自线性可分的模式时,上述学习算法在有限步同收敛,这时所得的权值能对所有样本正确分类,这
5、一结论被称为感知器收敛定理。四、感知器神经网络的训练要使前向神经网络模型实现某种功能,必须对它进行训练,让它逐步学会要做的事情,并把所学到的知识记忆在网络的权值中。感知器神经网络的训练是采用由一组样本组成的集合来进行。在训练期间,将这些样本重复输入,通过调整权值使感知器的输出达到所要求的理想输出。感知器的训练主要是反复对感知器神经网络进行仿真和学习,最终得到最优的网络阀值和权值。我们可以用以下方法训练网络:1)确定我们所解决的问题的输入向量P、目标向量t,并确定各向量的维数,以及网络结构大小、神经元数目。假定我们采用图2.2的网络结构。2)初始化:权值向量w和阀值向量b分别赋予[-1,+
6、1]之间的随机值,并且给出训练的最大次数。3)根据输入向量P、最新权值向量w和阀值向量b,计算网络输出向量a。214)检查感知器输出向量与目标向量是否一致,或者是否达到了最大的训练次数,如果是则结束训练,否则转入(5)。5)根据感知器学习规则调查权向量,并返回3)。五、重要的感知器神经网络函数的使用方法对于感知器的初始化、训练、仿真,在MATLABP神经网络工具箱中分别提供了init(),trainp()和sim()函数。1.初始化函数init()感知器初始化函数init()可得到R个输入,S个神经元数的感知器层的权值和阀值,其调用格式为:[w,b]=init(R,S)另外,也可以利用输
7、入向量P和目标向量t来初始化。[w,b]=init(p,t)在介绍trainp()函数前,让我们先介绍一下训练的控制参数tp。tp=[disp_freqmax_epoch]其中disp_freq指定两次显示间训练次数,缺省值为1;map_epoch指定训练的最大次数,缺省值为100。2.训练函数trainp()调用训练函数trainp()函数后又得到新的权值矩阵,阀值向量以及误差te。trainp()函数所需要的输入变量为:输入向量
此文档下载收益归作者所有