单层感知器模型与学习算法
2014-9-10
小结
单层感知器模型及工作原理 单层感知器的学习算法 单层感知器的MATLAB实现 单层感知器的应用示例 多层感知器概述
sim()
mae() plotpv()
神经网络仿真函数
平均绝对误差性能函数 在坐标图上绘出样本点
plotpc()
2014-9-10
在已绘制的图上加分类线
2.3.3 单层感知器的MATLAB实现
newp() 功能:创建一个感知器神经网络的函数 格式:net = newp(PR,S,TF,LF) 说明:net为生成的感知机神经网络; PR为一个R2的矩阵,由R组输入向量中 的最大值和最小值组成;S表示神经元 的个数;TF表示感知器的激活函数,缺 省值为硬限幅激活函数hardlim;LF表 示网络的学习函数,缺省值为learnp
说明 Y为网络的输出;Pf表示最终的输入延时状态; Af表示最终的层延时状态;E为实际输出与目标矢量之间 的误差;perf为网络的性能值;NET为要测试的网络对象; P为网络的输入向量矩阵;Pi为初始的输入延时状态(可 省略);Ai为初始的层延时状态(可省略);T为目标矢 量(可省略)。式(1)、(2)用于没有输入的网络,其中Q 为批处理数据的个数,TS为网络仿真的时间步数。
2014-9-10
2.3.3 单层感知器的MATLAB实现
mae() 功能 平均绝对误差性能函数 格式 perf=mae(E,w,pp)
说明 perf表示平均绝对误差和, E 为误差矩阵或向量(网络的目标向量与输 出向量之差), w为所有权值和偏值向量 (可忽略), pp为性能参数(可忽略)。
2.3感知器神经网络模型 与学习算法
2.3.1单层感知器
概述
由美国学者Rosenblatt在1957年首次提出 学习算法是Rosenblatt在1958年提出的 包含一个突触权值可调的神经元 属于前向神经网络类型 只能区分线性可分的模式 IEEE设立以其名字命名的奖项
2014-9-10
2014-9-10
2.3.3 单层感知器的MATLAB实现
[net,tr,Y,E,Pf,Af] = train(NET,P,T, Pi,Ai,VV,TV) 说明2 P为网络的输入向量矩阵;T表示网络的目 标矩阵,缺省值为0;Pi表示初始输入延时,缺省 值为0;Ai表示初始的层延时,缺省值为0; VV为 验证矢量(可省略);TV为测试矢量(可省略)。 网络训练函数是一种通用的学习函数,训练函数重 复地把一组输入向量应用到一个网络上,每次都更 新网络,直到达到了某种准则,停止准则可能是达 到最大的学习步数、最小的误差梯度或误差目标等。
2014-9-10
2.3.3 单层感知器的MATLAB实现
例2-1运行后在命令行窗口中得到的结果如下: >> TRAINC, Epoch 0/20 %使用TRAINC作为神经网络的训练函数,第0次训练,最 %大训练次数为20 TRAINC, Epoch 3/20 %达到目标误差要求,结束训练 TRAINC, Performance goal met. Y = 1 1 0 E1 = 0 Y1 = 0 0 1
BP算法
2014-9-10
2.3.4 多层感知机
多层感知器的特点 定理1 如隐层节点(单元)可任意设置, 则用三层阀值节点的网络可以实现任意的 二值逻辑函数。 定理2 若隐层节点(单元)可任意设置, 则用三层S型非线性特性节点的网络,可 以一致逼近紧急上的连续函数或按L2范数 逼近紧集上的平方可积函数
2014-9-10
2.3.3 单层感知器的MATLAB实现
train()
功能 神经网,Af] = train(NET,P,T, Pi,Ai,VV,TV)
说明 1、net为训练后的网络;tr为训练记录; Y为网络输出矢量;E为误差矢量;Pf为训练终 止时的输入延迟状态;Af为训练终止时的层延 迟状态; NET为训练前的网络;
2.3.1单层感知器
单层感知器模型
2014-9-10
2.3.1单层感知器
单层感知器工作原理
单层感知器可将外部输入分为两类和。当
感知器的输出为+1时,输入属于 l 类,当感知 1 器的输出为-1时,输入属于 l 2类,从而实现两 类目标的识别。在m 维空间,单层感知器进行
模式识别的判决超平面由下式决定: m
1 2
,xm n ,
第四步,计算实际输出:
第五步,求出期望输出和实际输出求出差
e d (n) y (n)
根据误差判断目前输出是否满足条件,一般为对所有样本误差为零或 者均小于预设的值,则算法结束,否则将值增加1,并用下式调整权值:
w n 1 w n d n y n x n
2.3.3 单层感知器的MATLAB实现
P= [-0.4 -0.5 0.6; 0.9 0 0.1]; %给定训练样本数据 T= [1 1 0]; %给定样本数据所对应的类别,用1和0来表示两种类别 %创建一个有两个输入、样本数据的取值范围都在[-1,1]之间,并且 %网络只有一个神经元的感知器神经网络 net=newp([-1 1;-1 1],1); net.trainParam.epochs = 20; %设置网络的最大训练次数为20次 net=train(net,P,T); %使用训练函数对创建的网络进行训练 Y=sim(net,P) %对训练后的网络进行仿真 E1=mae(Y-T) %计算网络的平均绝对误差,表示网络错误分类 Q=[0.6 0.9 -0.1; -0.1 -0.5 0.5]; %检测训练好的神经网络的性能 Y1=sim(net,Q) %对网络进行仿真,仿真输出即为分类的结果 figure; %创建一个新的绘图窗口 plotpv(Q,Y1); %在坐标图中绘制测试数据 plotpc(net.iw{1},net.b{1}) %在坐标图中绘制分类线
2014-9-10
2.3.3 单层感知器的MATLAB实现
plotpc()
功能 在存在的图上绘制出感知器的分类线函数 格式 (1) plotpc(W,B) (2) plotpc(W,B,H) 说明 硬特性神经元可将输入空间用一条直线(如果 神经元有两个输入),或用一个平面(如果神经元有三 个输入),或用一个超平面(如果神经元有三个以上输 入)分成两个区域。plotpc(w,b)对含权矩阵w和偏差 矢量b的硬特性神经元的两个或三个输入画一个分类 线。这一函数返回分类线的句柄以便以后调用。 plotpc(W,B,H)包含从前的一次调用中返回的句柄。 它在画新分类线之前,删除旧线。
2014-9-10
2.3.4 多层感知机
多层感知器的拓扑结构
2014-9-10
2.3.4 多层感知机
多层感知器的特点 含有一层或多层隐单元,从输入模式中 获得了更多有用的信息,使网络可以完 成更复杂的任务。 每个神经元的激活函数采用可微的函数
sigmoid函数
多个突触使得网络更具连通性 具有独特的学习算法
T
T
w n b n , w1 n , w2 n ,,wm n
别超平面。
2014-9-10
令上式等于零,可得到在维空间的单层感知器的判
2.3.2单层感知器的学习算法
单层感知器学习算法
第一步,设置变量和参量。
为网络实际输出, f() 为激活函数, y ( n ) d ( n ) 为期望
输出, 为学习速率, n 为迭代次数, e 为实际 输出与期望输出的误差。
第二步,初始化
给权值向量 W (0) 的各个分量赋一个较小的随机非 零值,置 n 0
2014-9-10
2.3.2单层感知器的学习算法
单层感知器学习算法
第三步,输入一组样本 X n 1, x n , x n , 并给出它的期望输出 d (n )。
i 1
2014-9-10
wi xi b 0
2.3.1单层感知器
单层感知器工作原理
对于只有两个输入的判别边界是直线(如下式 所示),选择合适的学习算法可训练出满意的 w 和 , 1 w2 当它用于两类模式的分类时,相当于在高维样本空 间中,用一个超平面将两类样本分开。
w1x1 w2 x2 b 0
m y (n ) f w i (n ) xi (n ) i 0
然后转到第三步,进入下一轮计算过程
2014-9-10
2.3.3 单层感知器的MATLAB实现
MATLAB中单层感知器常用工具函数名称 和基本功能
函数名 newp() hardlim() learnp() train() 生成一个感知器 硬限幅激活函数 感知器的学习函数 神经网络训练函数 功 能
2014-9-10
2.3.3 单层感知器的MATLAB实现
plotpv()
功能 绘制样本点的函数 格式 (1) plotpv(P,T) (2) plotpv(P,T,V) 说明 P定义了n个2或3维的样本,是一个2n维或3n维的 矩阵;T表示各样本点的类别,是一个n维的向量; V=[x_min x_max y_min y_max],为一设置绘图坐标值范 围的向量。利用plotpv()函数可在坐标图中绘出给定的样 本点及其类别,不同的类别使用不同的符号。如果T只含 一元矢量,则目标为0的输入矢量在坐标图中用符号"o" 表示: 目标为1的输入矢量在坐标图中用符号"+"表示。 如果T含二元矢量,则输入矢量在坐标图中所采用的符号 分别如下:[0 0]用"o"表示;[0 1]用"+"表示:[1 0] 用"*"表示;[1 1]用""表示。
2014-9-10
2.3.3 单层感知器的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)