2[1].2_单层感知器模型与学习算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.2感知器神经网络模型 2.2感知器神经网络模型 与学习算法
智能中国网提供学习支持 www.5iai.com
2.2.1单层感知器 2.2.1单层感知器
概述
由美国学者Rosenblatt在1957年首次提出 学习算法是Rosenblatt在1958年提出的 包含一个突触权值可调的神经元 属于前向神经网络类型 只能区分线性可分的模式 IEEE设立以其名字命名的奖项
w (1) = 0.1
1 2
样本2与3同样本1,因输出为0省略 样本2 同样本1 因输出为0 对于样本4 输出神经元的输入为: 对于样本4,输出神经元的输入为:
1 1 w1 (3) x1 (4) + w2 (3) x2 (4) = 0.1 × 1 + 0.1 × 1 = 0.2
2011-9-21
2.2.2单层感知器的学习算法 2.2.2单层感知器的学习算法
单层感知器学习算法
第一步,设置变量和参量。 为激活函数, 为网络实际输出, d 为期望输出, 为网络实际输出, (n)为期望输出, η为学习 f(⋅)为激活函数, y(n)
速率, 为迭代次数, 为实际输出与期望输出的误差。 速率,n 为迭代次数, e为实际输出与期望输出的误差。
第二步,初始化
) 的各个分量赋一个较小的随机非零值, 给权值向量 W (1 的各个分量赋一个较小的随机非零值,置 n=1
2011-9-21
单层感知器的MATLAB MATLAB实现 2.2.3 单层感知器的MATLAB实现
mae() 功能 平均绝对误差性能函数 格式 perf=mae(E,w,pp) 说明 perf表示平均绝对误差和, E 为误差矩阵或向量(网络的目标向量与 输出向量之差), w为所有权值和偏值 向量(可忽略), pp为性能参数(可忽 略)。
单层感知器工作原理
单层感知器可将外部输入分为两类。 单层感知器可将外部输入分为两类。当 感知器的输出为+1 +1时 感知器的输出为+1时,输入属于 l1类,当感知 器的输出为器的输出为-1时,输入属于 l2类,从而实现两 类目标的识别。在二维空间, 类目标的识别。在二维空间,单层感知器进行 模式识别的判决超平面由下式决定: 模式识别的判决超平面由下式决定:
2011-9-21
单层感知器的MATLAB MATLAB实现 2.2.3 单层感知器的MATLAB实现
sim()
功能 对网络进行仿真 格式
[Y,Pf,Af, sim(NET, Pi,Ai, (1) [Y,Pf,Af,E,perf] = sim(NET,P,Pi,Ai,T) [Y,Pf,Af, sim(NET, TS},Pi,Ai, (2) [Y,Pf,Af,E,perf] = sim(NET,{Q TS},Pi,Ai,T) [Y,Pf,Af, sim(NET, Pi,Ai, (3) [Y,Pf,Af,E,perf] = sim(NET,Q,Pi,Ai,T)
1 2 m
m
i=0
i
i
根据误差判断目前输出是否满足条件, 根据误差判断目前输出是否满足条件,一般为对所有样本误差为零或者均 小于预设的值,则算法结束,否则将值增加1,并用下式调整权值: 小于预设的值,则算法结束,否则将值增加1 并用下式调整权值:
w( n +1) = w( n) +ηd ( n) − y( n) x( n)
2011-9-21
功 生成一个感知器 硬限幅激活函数 感知器的学习函数 神经网络训练函数 神经网络仿真函数

平均绝对误差性能函数 在坐标图上绘出样本点 在已绘制的图上加分类线
单层感知器的MATLAB MATLAB实现 2.2.3 单层感知器的MATLAB实现
newp() 功能:创建一个感知器神经网络的函数 格式:net = newp(PR,S,TF,LF) 说明:net为生成的感知机神经网络;PR为一个R×2的矩阵,由 R组输入向量中的最大值和最小值组成;S表示神经元的个数; TF表示感知器的激活函数,缺省值为硬限幅激活函数hardlim; LF表示网络的学习函数,缺省值为learnp hardlim() 功能 硬限幅激活函数 格式 A = hardlim(N) 说明 函数hardlim(N)在给定网络的输入矢量矩阵N时,返回该 层的输出矢量矩阵A。当N中的元素大于等于零时,返回的值为l; 否则为0。也就是说,如果网络的输入达到阈值,则硬限幅传输 函数的输出为1;否则,为0。 learnp() 功能 感知机的权值和阈值学习函数
然后转到第三步, 然后转到第三步,进入下一轮计算过程
2011-9-21
2.2.2单层感知器的学习算法 2.2.2单层感知器的学习算法
学习算法实例: 学习算法实例: 构建一个神经元, 构建一个神经元,它能够实现逻辑与操作
逻辑“与”真值表 逻辑“
x1 0 0 1 1
x2 0 1 0 1
d 0 0 0 1
X ( n ) = +1, x1 ( n ) , x2 ( n ) , …,xm ( n )
T
T
w ( n ) = b ( n ) , w1 ( n ) , w2 ( n ) ,…,wm ( n )
别超平面。
2011-9-21
令上式等于零,可得到在维空间的单层感知器的判
2.2.2单层感知器的学习算法 2.2.2单层感知器的学习算法
2011-9-21
单层感知器的MATLAB MATLAB实现 2.2.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] 用""表示。 ×
2011-9-21
单层感知器的MATLAB MATLAB实现 2.2.3 单层感知器的MATLAB实现
MATLAB中单层感知器常用工具函数名称 MATLAB中单层感知器常用工具函数名称 和基本功能
函数名 newp() hardlim() learnp() train() sim() mae() plotpv() plotpc()
2011-9-21
2.2.2单层感知器的学习算法 2.2.2单层感知器的学习算法
确定权值和阈值
w1= w2= b=
2011-9-21
2.2.2单层感知器的学习算法 2.2.2单层感知器的学习算法
设阈值为0.6,初始权值均为0.1, 设阈值为0.6,初始权值均为0.1,学习 0.6 0.1 率为0.5 误差值要求为0 0.5, 率为0.5,误差值要求为0,神经元的激活 函数为硬限幅函数,求权值w 函数为硬限幅函数,求权值w1与w2
2011-9-21
2.2.2单层感知器的学习算法 2.2.2单层感知器的学习算法
w (3) x1 (4) + w (3) x2 (4) = 0.6 × 1 + 0.6 × 1 = 1.2
2 1 2 2
y 2 (4) = sgn{[W T 2 (3) X (4)] − b}
2 = sgn{w12 (3) x1 (4) + w2 (3) x2 (4) − 0.6}
=1
w12 (4) = w12 (3) + η ( d (4) − y1 (4)) x1 = 0.6 + 0.5 × 0 × 1 = 0.6
2 w2 (4) = 0.6
2011-9-21
2.2.2单层感知器的学习算法 2.2.2单层感知器的学习算法
计算误差时,对所有的样本, 计算误差时,对所有的样本, 网络的输出误差均为0 网络的输出误差均为0,达到 预定的要求, 预定的要求,训练结束
2011-9-21
2.2.1单层感知器 2.2.1单层感知器
单层感知器模型
x1 x2
· · · xi · · · xm
2011-9-21
w1 w2 wi wm
u = ∑ wi xi
i =1
m
ቤተ መጻሕፍቲ ባይዱ
b
v = ∑ wi xi + b
i =1 m
f(v)
y=f(v)
2.2.1单层感知器 2.2.1单层感知器
i =1
2011-9-21
∑ wi xi + b = 0
m
2.2.1单层感知器 2.2.1单层感知器
单层感知器工作原理
对于只有两个输入的判别边界是直线(如下式 所示),选择合适的学习算法可训练出满意的 w , 和 1 w 当它用于两类模式的分类时,相当于在高维样本空 2 间中,用一个超平面将两类样本分开。
说明 Y为网络的输出;Pf表示最终的输入延时状态; Af表示最终的层延时状态;E为实际输出与目标矢量之间 的误差;perf为网络的性能值;NET为要测试的网络对象; P为网络的输入向量矩阵;Pi为初始的输入延时状态(可 省略);Ai为初始的层延时状态(可省略);T为目标矢 量(可省略)。式(1)、(2)用于没有输入的网络,其中Q 为批处理数据的个数,TS为网络仿真的时间步数。
输出神经元的输出为: 输出神经元的输出为:
y1 (4) = sgn{[W T 1 (3) X (4)] − b} = sgn{w (3) x1 (4) + w (3) x2 (4) − 0.6}
1 1 1 2
=0
权值调整: 权值调整:
1 1 w1 (4) = w1 (3) + η ( d (4) − y1 (4)) x1 = 0.1 + 0.5 × 1 × 1 = 0.6
2011-9-21
单层感知器的MATLAB MATLAB实现 2.2.3 单层感知器的MATLAB实现
train() 功能 神经网络训练函数 格式
[net,tr,Y,E,Pf,Af] = train(NET,P,T,Pi,Ai,VV,TV)
说明 net为训练后的网络;tr为训练记录;Y为网络输 出矢量;E为误差矢量;Pf为训练终止时的输入延迟状 态;Af为训练终止时的层延迟状态;NET为训练前的网 络;P为网络的输入向量矩阵;T表示网络的目标矩阵, 缺省值为0;Pi表示初始输入延时,缺省值为0;Ai表示 初始的层延时,缺省值为0; VV为验证矢量(可省略); TV为测试矢量(可省略)。网络训练函数是一种通用的 学习函数,训练函数重复地把一组输入向量应用到一个 网络上,每次都更新网络,直到达到了某种准则,停止 准则可能是达到最大的学习步数、最小的误差梯度或误 差目标等。
第三步,输入一组样本 X ( n) =1, x ( n) , x ( n) ,L,x ( n),并给出 它的期望输出 d (n)。 y(n) = f ∑ (n)x (n) w 第四步,计算实际输出: 第五步,求出期望输出和实际输出求出差 e = d(n) − y(n)
w (4) = 0.6
1 2
2011-9-21
2.2.2单层感知器的学习算法 2.2.2单层感知器的学习算法
此时完成一次循环过程, 此时完成一次循环过程,由于误差没有 达到0 返回第2步继续循环, 达到0,返回第2步继续循环,在第二次循 环中,前三个样本输入时因误差均为0 环中,前三个样本输入时因误差均为0, 所以没有对权值进行调整, 所以没有对权值进行调整,各权值仍保持 第一次循环的最后值, 第一次循环的最后值,第四个样本输入时 各参数值如下: 各参数值如下:
迭代次数 变量 样本标号
Π (3)
2 1
输入或权值标号
2011-9-21
2011-9-21
0 w10 (0) x1 (1) + w2 (0) x2 (1) = 0.1 × 0 + 0.1 × 0 = 0
对于样本1 输出神经元的输入为: 对于样本1,输出神经元的输入为: 输出神经元的输出为: 输出神经元的输出为:
y1 (1) = sgn{[W T 0 (0) X (1)] − b}
0 = sgn{w10 (0) x1 (1) + w2 (0) x2 (1) − 0.6}
=0
2011-9-21
2.2.2单层感知器的学习算法 2.2.2单层感知器的学习算法
权值调整 1 0 1 w1 (1) = w1 (0) + η (d (1) − y (1)) x1 = 0.1
wx1 + w2x2 + b = 0 1
2011-9-21
2.2.2单层感知器的学习算法 2.2.2单层感知器的学习算法
单层感知器学习算法思想
基于迭代的思想,通常是采用误差校正学习规则的 学习算法。 可以将偏置作为神经元权值向量的第一个分量加到 权值向量中,也可以设其值为0 输入向量和权值向量可分别写成如下的形式:
相关文档
最新文档