收藏 分享(赏)

北京科技大学 信息工程学院付冬梅fdm2003@163.com ....ppt

上传人:oil007 文档编号:2888798 上传时间:2018-09-29 格式:PPT 页数:61 大小:1.01MB
下载 相关 举报
北京科技大学 信息工程学院付冬梅fdm2003@163.com ....ppt_第1页
第1页 / 共61页
北京科技大学 信息工程学院付冬梅fdm2003@163.com ....ppt_第2页
第2页 / 共61页
北京科技大学 信息工程学院付冬梅fdm2003@163.com ....ppt_第3页
第3页 / 共61页
北京科技大学 信息工程学院付冬梅fdm2003@163.com ....ppt_第4页
第4页 / 共61页
北京科技大学 信息工程学院付冬梅fdm2003@163.com ....ppt_第5页
第5页 / 共61页
点击查看更多>>
资源描述

1、北京科技大学 信息工程学院 付冬梅 62334967,第三章:感知器网络,单个感知器模型与解决问题的能力 单层感知器模型与解决问题的能力 单层感知器的学习算法 单层感知器的局限性问题 多层感知器的设计方法 有关的几个问题的讨论 单层感知器的MATLAB设计与实现,第三章:感知器网络,概述 由美国学者Rosenblatt在1957年首次提出 学习算法是Rosenblatt在1958年提出的 包含一个突触权值可调的神经元 属于前向神经网络类型 只能区分线性可分的模式 IEEE设立以其名字命名的奖项,第三章:感知器,人的视觉是重要的感觉器官,人通过视觉接受的信息占全部信息量的8085%。 感知器是

2、模拟人的视觉,接受环境信息,并由神经冲动进行信息传递的神经网络。 感知器分单层与多层,是具有学习能力的神经网络。本章的重点:感知器的结构、表达能力、学习算法。 本章的难点:感知器的表达能力 。,第三章:感知器,3.1 单个感知器模型与解决问题的能力,图2-3-1 单层感知器,布尔函数的M-P神经元表示: 利用带阈值的M-P人工神经元可以很方便地实现布尔代数中的许多功能。在布尔代数中,and、or、Not、xoR关系如下表1所示:,第三章:感知器,3.1 单个感知器模型与解决问题的能力,第三章:感知器,3.1 单个感知器模型与解决问题的能力,上面几个人工神经元都满足M-P模型。,第三章:感知器,

3、3.1 单个感知器模型与解决问题的能力,根据各个图及M-P模型,我们有,(1),(2),第三章:感知器,3.1 单个感知器模型与解决问题的能力,(3)显然是符合逻辑运算要求。,第三章:感知器,3.1 单个感知器模型与解决问题的能力,权系数和阈值不是0、1的M-P模型,第三章:感知器,3.1 单个感知器模型与解决问题的能力,例:试说明下列两个M-P人工神经元是等价的。,分析:对于(a),第三章:感知器,3.1 单个感知器模型与解决问题的能力,对与(b),第三章:感知器,3.1 单个感知器模型与解决问题的能力,此时感知器人工神经元结构及其数学描述如下:,当M-P人工神经元的输入X可以在R上取值时离

4、散感知器(简称感知器),第三章:感知器,3.1 单个感知器模型与解决问题的能力,第三章:感知器,3.1 单个感知器模型与解决问题的能力,用图所示三输入,/,单输出的单层感知器,输入输出:,即,可见,,输入输出为线性可分集合,一定可找到一个平面,,将输入模式分为两类,平面方程:,则,此平面与,权值及阈值,有关,见图。,第三章:感知器,3.1 单个感知器模型与解决问题的能力,感知器的分类定义,作为数学模型,我们对感知器作出如下归纳:,感知器是一个多输入、单输出的运算系统,表示一个神经元 的运算特性,它的输入状态向量记为:,权向量:,2. 感知器的状态值可以为感知器的输出值,3. 以,为分界线,实现

5、对输入的分类,连续感知器(简称感知器),第三章:感知器,3.1 单个感知器模型与解决问题的能力,连续感知器人工神经元结构及其数学描述如下:,若取,,则其成为一类最简单的连续人工感知神经元。,激活函数:,第三章:感知器,3.1 单个感知器模型与解决问题的能力,例 线性不可分集合。,二维平面上的两类模式异或(XOR)问题,见表。二维平面中不存在一条直线,将输入模式分为两类,此输入模式称线性不可分集合,见图。 可见:单层感知器不能解决异或问题。,第三章:感知器,3.1 单个感知器模型与解决问题的能力,结论:单个感知器不能对线性不可分问题实现两类分类。,单层感知器工作原理对于只有两个输入的判别边界是直

6、线(如下式所示),选择合适的学习算法可训练出满意的 和 ,当它用于两类模式的分类时,相当于在高维样本空间中,用一个超平面将两类样本分开。,第三章:感知器,3.1 单个感知器模型与解决问题的能力,第三章:感知器,3.2 单层感知器模型与解决问题的能力,在上一节中指出了线性单个感知神经网络只能实现两类分类,如果要进行多于两类的分类将怎么办?生物医学已经证明:生物神经系统是由一些相互联系的,并能互相传递信息的神经细胞互连构成。因此这就使我们自然地想到是否可将单个的感知神经元连成网络形成一个单层的网络?,结构,第三章:感知器,3.2 单层感知器模型与解决问题的能力,例 线性不可分集合。,二维平面上的两

7、类模式异或(XOR)问题,见表。二维平面中不存在一条直线,将输入模式分为两类,此输入模式称线性不可分集合,见图。 可见:单层感知器不能解决异或问题。,结论:单层感知器不能对线性不可分问题实现两类分类。,感知器的学习目标,感知机的基本功能是对外部信号进行“感知”与识别,这就是当外部n个刺激信号或来自其它n个神经元(的信号)处于一定的状态时,感知器就处于“兴奋”状态,而当外部n个信号或n个神经元的输出处于另一些状态时,感知器就呈现“抑制”状态。,若用,表示感知器的运算函数关系,那么,它们的运算目标就是:,第三章:感知器,3.3 单层感知器的学习算法,定义:感知器的学习目标:我们称(A,B)为感知器

8、的学习目标,如果A、B是,感知器的学习目标,中两个互不相交的集合,且下面方程成立。,等价于如下描述:,第三章:感知器,3.3 单层感知器的学习算法,第三章:感知器,3.3 单层感知器的学习算法,离散单个感知器的学习算法,设M-P模型的几何图形如右图:,设,为网络的广义权向量,,为输入向量且是二值的,,网络的训练样本集为,M-P神经元的权(广义的)的学习的基本方式和原则如下:,若M-P神经元的权值为,,则M-P神经元的输出为:,。,第三章:感知器,3.3 单层感知器的学习算法,如此调整后,第三章:感知器,3.3 单层感知器的学习算法,第三章:感知器,3.3 单层感知器的学习算法,用公式wij=w

9、ij+(yj-oj)xi取代离散单个感知器的学习算法 中的权值调整方法,可以得到如下连续单个感知器的学习算法 :,连续单个感知器的学习算法,第三章:感知器,3.3 单层感知器的学习算法,说明:yj与oj之间的差别对wij的影响由(yj-oj)xi表现出来:不仅使得算法的控制在结构上更容易理解,而且还使得它的适应面更宽 。,连续单层感知器的学习算法,第三章:感知器,3.3 单层感知器的学习算法,1.用适当的小伪随机数初始化权矩阵W; 2.初置精度控制参数,学习率,精度控制变量d=+1; 3. While d do3.1 d=0;3.2 for 每个样本(X,Y)do3.2.1 输入X( X =(

10、x1,x2,xn));3.2.2 求O=F(XW);3.2.3 修改权矩阵W:for i=1 to n,j=1 to m dowij=wij+(yj-oj)xi;3.2.4 累积误差for j = 1 to m dod=d+(yj-oj)2,连续单层感知器的学习算法,第三章:感知器,3.3 单层感知器的学习算法,1、程序实现:、d、i、j、n、m为简单变量来表示,W为n行m列的二维数组。样本集(X,Y)是二维数组。 2、Minsky在1969年证明,有许多基本问题是感知器无法解决的。 3 、很难从样本数据集直接看出问题是否线性可分。 4、未能证明,一个感知器究竟需要经过多少步才能完成训练。,连

11、续单层感知器的学习算法,第三章:感知器,3.3 单层感知器的学习算法,第三章:感知器,3.4 单层感知器网络的局限性,结论1:单个感知器不能对线性不可分问题实现两类分类。,结论2:单层感知器不能对线性不可分问题实现多类分类。,第三章:感知器,3.4 单层感知器网络的局限性,从前面的结论:“单层感知器不能对线性不可分问题实现分 类。”可以看出单层感知器是有局限性的。,第三章:感知器,3.4 单层感知器网络的局限性,单层感知器的二维分类能力如下表:,第三章:感知器,3.4 单层感知器网络的局限性,单层感知器的高维分类能力如下表:,R. O. Windner 1960年,用多个单级网组合在一起,并用

12、其中的一个去综合其它单级网的结果,我们就可以构成一个两级网络,该网络可以被用来在平面上划分出一个封闭或者开放的凸域来 一个非凸域可以拆分成多个凸域。按照这一思路,三级网将会更一般一些,我们可以用它去识别出一些非凸域来。,第三章:感知器,3.5 多层感知器的设计方法,当wij=1,=1,右图可实现“与”运算, 当wij=1,=n,右图可实现“或”运算,,第三章:感知器,3.5 多层感知器的设计方法,本章第三节中讨论了单层的感知器网络,本章第四节中指出了单层感知神经网络的局限性,如果要实现非线性数据分类,有必要构造多层感知器网络。,第三章:感知器,3.5 多层感知器的设计方法,例,1,0,0,u1

13、,u2,y,例3.1:假设某压力设备的正常与不正常运行状态是由设备内部的压力P和温度T决定的。当P和T位于图3.1的阴影部分(包括边界)时设备运行正常,否则该设备不正常。问能否用感知器网络来实现该设备运行状态的识别(即运行正常与运行不正常的分类)。,第三章:感知器,3.5 多层感知器的设计方法,第三章:感知器,3.6 有关的几个问题,M-P模型在人工神经网络中的地位,首先M-P模型是所有人工神经元中第一个被建立起来的,它在多个方面都显示出生物神经元所具有的基本特性。其次,目前其它形式的人工神经元已有很多,但大多数都是在M-P模型的基础上经过不同的修正,改进变换而发展起来。因此M-P人工神经元是

14、整个人工神经网的基础。,1、神经元的内部改造:对不同的人工神经元取不同的非线性函数F();对人工神经元的输入和输出做不同的限制:离散的(某些离散点)和连续的(整个实数域)。 2、人工神经元之间的联接形式上进行改造神经网络的结构上的改造。 3、在人工神经网络权值和阈值取求的方法上改造算法的改进。 4、其它形式的改造,譬如(1)与(2)结合起来改进;(2)与(3)结合起来改进等等。,第三章:感知器,3.6 有关的几个问题,对M-P人工神经元进行改进的主要方式,1、单神经元(M-P模型、单感知器、单连续感知机); 2、单层前向连接的神经网络; 3、多层前向连接的神经网络(BP、RBF); 4、单层带

15、有反馈连接的神经网络(Hopfield网); 5、多层回归(递归)神经网络; 6、局部连接的人工神经网络(细胞神经网、小脑模型等)。,第三章:感知器,3.6 有关的几个问题,人工神经网络常见的连接形式有:方式,MATLAB中单层感知器常用工具函数名称和基本功能,第三章:感知器,3.7 单层感知器的MATLAB设计与实现,newp() 功能:创建一个感知器神经网络的函数 格式:net = newp(PR,S,TF,LF) 说明:net为生成的感知机神经网络;PR为一个R2的矩阵,由R组输入向量中的最大值和最小值组成;S表示神经元的个数;TF表示感知器的激活函数,缺省值为硬限幅激活函数hardli

16、m;LF表示网络的学习函数,缺省值为learnp hardlim() 功能 硬限幅激活函数 格式 A = hardlim(N) 说明 函数hardlim(N)在给定网络的输入矢量矩阵N时,返回该层的输出矢量矩阵A。当N中的元素大于等于零时,返回的值为l;否则为0。也就是说,如果网络的输入达到阈值,则硬限幅传输函数的输出为1;否则,为0。 learnp() 功能 感知机的权值和阈值学习函数,第三章:感知器,3.7 单层感知器的MATLAB设计与实现,第三章:感知器,3.7 单层感知器的MATLAB设计与实现,train() 功能 神经网络训练函数 格式 net,tr,Y,E,Pf,Af = tr

17、ain(NET,P,T,Pi,Ai,VV,TV) 说明 net为训练后的网络;tr为训练记录;Y为网络输出矢量;E为误差矢量;Pf为训练终止时的输入延迟状态;Af为训练终止时的层延迟状态;NET为训练前的网络;P为网络的输入向量矩阵;T表示网络的目标矩阵,缺省值为0;Pi表示初始输入延时,缺省值为0;Ai表示初始的层延时,缺省值为0; VV为验证矢量(可省略);TV为测试矢量(可省略)。网络训练函数是一种通用的学习函数,训练函数重复地把一组输入向量应用到一个网络上,每次都更新网络,直到达到了某种准则,停止准则可能是达到最大的学习步数、最小的误差梯度或误差目标等。,第三章:感知器,3.7 单层感

18、知器的MATLAB设计与实现,sim() 功能 对网络进行仿真 格式 (1) Y,Pf,Af,E,perf = sim(NET,P,Pi,Ai,T) (2) Y,Pf,Af,E,perf = sim(NET,Q TS,Pi,Ai,T) (3) Y,Pf,Af,E,perf = sim(NET,Q,Pi,Ai,T) 说明 Y为网络的输出;Pf表示最终的输入延时状态;Af表示最终的层延时状态;E为实际输出与目标矢量之间的误差;perf为网络的性能值;NET为要测试的网络对象;P为网络的输入向量矩阵;Pi为初始的输入延时状态(可省略);Ai为初始的层延时状态(可省略);T为目标矢量(可省略)。式(1

19、)、(2)用于没有输入的网络,其中Q为批处理数据的个数,TS为网络仿真的时间步数。,第三章:感知器,3.7 单层感知器的MATLAB设计与实现,mae() 功能 平均绝对误差性能函数 格式 perf=mae(E,w,pp) 说明 perf表示平均绝对误差和, E为误差矩阵或向量(网络的目标向量与输出向量之差), w为所有权值和偏值向量(可忽略), pp为性能参数(可忽略)。,plotpv() 功能 绘制样本点的函数 格式 (1) plotpv(P,T)(2) plotpv(P,T,V) 说明 P定义了n个2或3维的样本,是一个2n维或3n维的矩阵;T表示各样本点的类别,是一个n维的向量;V=x

20、_min x_max y_min y_max,为一设置绘图坐标值范围的向量。利用plotpv()函数可在坐标图中绘出给定的样本点及其类别,不同的类别使用不同的符号。如果T只含一元矢量,则目标为0的输入矢量在坐标图中用符号o表示: 目标为1的输入矢量在坐标图中用符号+表示。如果T含二元矢量,则输入矢量在坐标图中所采用的符号分别如下:0 0用o表示;0 1用+表示:1 0用*表示;1 1用表示。,第三章:感知器,3.7 单层感知器的MATLAB设计与实现,第三章:感知器,3.7 单层感知器的MATLAB设计与实现,使用MATLAB实现神经网络的步骤如下: 第一步 根据应用创建一个神经网络; 第二步

21、 设定神经网络的训练参数,利用给定样本对创建的神经网络进行训练; 第三步 输入测试数据,测试训练好的神经网络的性能。,clear clf figure(gcf) %setfsize(300,300); echo on %NEWP 建立一个感知器神经元 %INIT 对感知器神经元初始化 %TRAIN 训练感知器神经元 %SIM 对感知器神经元仿真 pause % 敲任意键继续 clc % P为输入矢量 P = -0.5 -0.5 +0.3 +0.0; -0.5 +0.5 -0.5 +1.0;,第三章:感知器,3.7 单层感知器的MATLAB设计与实现,Example 3.1,% T为目标矢量 T

22、 = 1 1 0 0; pause clc % 绘制输入矢量图 plotpv(P,T); pause clc,第三章:感知器,3.7 单层感知器的MATLAB设计与实现,第三章:感知器,3.7 单层感知器的MATLAB设计与实现,% 定义感知器神经元并对其初始化 net=newp(-0.5 0.5;-0.5 1,1); net.initFcn=initlay; net.layers1.initFcn=initwb; net.inputWeights1,1.initFcn=rands; net.layerWeights1,1.initFcn=rands; net.biases1.initFcn=

23、rands; net=init(net); echo off k = pickic;%选择训练方式 if k = 2net.iw1,1 = -0.8161 0.3078;net.b1 = -0.1680; end,echo on plotpc(net.iw1,1,net.b1) pause % 训练感知器神经元 net=train(net,P,T); net.iw1,1 net.b pause % 绘制结果分类曲线 plotpv(P,T) plotpc(net.iw1,1,net.b1); pause,第三章:感知器,3.7 单层感知器的MATLAB设计与实现,第三章:感知器,3.7 单层感知

24、器的MATLAB设计与实现,% 利用训练完的感知器神经元分类 p = -0.5; 0; a = sim(net,p) echo off,p = -0.5; 0; a = sim(net,p)a =1,第三章:感知器,3.7 单层感知器的MATLAB设计与实现,选择参数1计算机设置初始值,% 利用训练完的感知器神经元分类 p = -0.5; 0; a = sim(net,p) a = 1,第三章:感知器,3.7 单层感知器的MATLAB设计与实现,clear figure(gcf) echo on clc %NEWP 建立一个感知器 %INIT 初始化感知器神经元 %SIM 对感知器神经元仿真

25、%TRAIN 训练感知器神经元 pause % 键入任意键继续 P = -1 +1 -1 +1 -1 +1 -1 +1;-1 -1 +1 +1 -1 -1 +1 +1;-1 -1 -1 -1 +1 +1 +1 +1; T = 0 1 0 0 1 1 0 1;,Example 3.2,pause %敲任意键,绘制上述矢量 plotpv(P,T); pause %敲任意键,建立一个感知器神经并对其初始化然后绘制初始分类曲线 net=newp(-1 1;-1 1;-1 1,1); net.initFcn=initlay; net.layers1.initFcn=initwb; net.inputWe

26、ights1,1.initFcn=rands; net.layerWeights1,1.initFcn=rands; net.biases1.initFcn=rands; net=init(net); plotpc(net.iw1,1,net.b1),第三章:感知器,3.7 单层感知器的MATLAB设计与实现,pause % 键入任意键,训练感知器神经元 net.trainParam.show=1; net = train(net,P,T); net.iw1,1 net.b pause %绘制结果分类曲线 figure %setfsize(300,300) plotpv(P,T); plotpc(net.iw1,1,net.b1);,第三章:感知器,3.7 单层感知器的MATLAB设计与实现,第三章:感知器,3.7 单层感知器的MATLAB设计与实现,pause %利用训练完的感知器神经元分类 p = 0.7; 1.2; -0.2; a = sim(net,p) echo off,net.iw1,1 ans = 1.4764 -1.6475 0.8114 net.b ans = -0.1564,p = 0.7; 1.2; -0.2; a = sim(net,p) a = 0,本章结束,谢谢大家!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报