- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
使用MATLAB编写单层感知器
采用感知器学习规则,训练步骤如下:
Step 1:
对各权值w0j(0), w2j(0), …, wnj(0), j=1, 2, …, m (m 为计算层的节点数)赋予较小的
非零随机数,设置p=1;
Step 2:
输入样本对{X p,d p},其中X p = (-1, x1
p, x2
p , …, xn
p), d p = (d1
p, d2
p , …, dn
p)为期望
的输出向量(教师信号),上标p 表示样本对的模式序号,设样本总数为P,则p =
1, 2, …, P;
Step 3:
计算各节点的实际输出 p ( ) sgn( T ( ) p ), 1,2,...,
j j o t ? W t X j ? m
Step 4:
调整各节点对应的权值, ( 1) ( ) [ p p ( )] p
j j j j W t ? ?W t ?? d ? o t X
η为学习率,用于控制调整速度,η值太大会影响训练的稳定性,太小则使训练的
1 2 ( , ,..., ..., )T
j m 输出层 O ? o o o o
输入层 1 2 ( , ,..., ,..., ) j m W ? W W W W
0 1 2 ( , , ,..., ,..., )T
i n X ? x x x x x
单层感知器模型
1 ... ... j m o o o
1 j m W W W
0 1 2 ... ... i n x x x x x
2
收敛速度变慢,一般取0η≤1;
Step 5:
p=p+1,如果p ≤ P,返回到Step2 ,否则转到Step 6 ;
Step 6:
如果感知器对所有样本的实际输出与期望输出相等,则停止;否则设置p=1,返回
Step2。
四、实验步骤:
1. 用单层感知器实现“与”运算
“与”运算真值表:
x1 x2 y
0 0 0
0 1 0
1 0 0
1 1 1
得到输入样本和对应的期望输出:
X1=[-1, 0, 0] d1=0
X2=[-1, 0, 1] d2=0
X3=[-1, 1, 0] d3=0
X4=[-1, 1, 1] d4=1
(1) 打开Matlab
双击桌面,打开Matlab 主程序
(2) 建立新文件
通过菜单选择 File? New?M-File 或者点击左上角建立一个新文件
(3) 编程
*提示,在Matlab 主窗口输入help+空格+命令,可以看到关于该命令使用方法即
作用的的具体说明
流程:
Step1:
function main() %建立函数,可用其他名字
close all %关闭所有figure
rand(state,sum(100*clock)) %随机数种子用时钟进行初始化
Step 2:
设置样本数量 P,对输入样本和期望输出赋值
设置感知器参数(输入样本维数,输出维数,最大训练次数,学习率
%%%%%%%%%%%%%%%%%%%%%%%%%%%
3
%关于赋值的例程(黑色字体为程序,蓝色字体为Matlab 运行结果):
a=1; %单值赋值(注意:A 与a 是两个不同变量)
A=2;%分号:只运算不显示逗号或者结尾没有符号:即运算又显示
M=[1,2;3,4]; %矩阵赋值
M=[1,2;3,4];
M,
M =
1 2
3 4
M(1,:)%矩阵的第一行
ans =
1 2
M(:,1)%矩阵的第一列
ans =
1
3
M(:,1)=[0 0];%可单独操作一列一行或者一个元素(如M(1,1)=0;)
M
M =
0 2
0 4
Err=[];%Err 初始为空
Err=[Err 1];%加入新的元素
Err=[Err 2];%再次加入
Err=[Err 4];%向量的元素可以以这种方式不断增加
Err
Err =
1 2 4
%%%%%%%%%%%%%%%%%%%%%%%%%%%
Step 3:感知器训练
权值初始化
设置阈值
合并阈值与权值得到扩展权值
从 1 到最大迭代次数,不断迭代计算
每次均依次输入样本 1-4,由op-dp 得到误差,计算新的权向量
使用单极点二值变换函数
1 0
( )
0 0
x
f x
x
? ?
? ? ? ?
记录下每次调整后的权值
每次迭代计算后,计算并记录总误差,如果总误差为 0,则停止迭代
%%%%%%%%%%%%%%%%%%%%%%%%%%%
%关于循环和矩阵运算和其他一些涉及到运算的例程:
M=[];
for i=1:5
M=[M;[i,i.^2]];
4
end
M
M =
1 1
2 4
3 9
4 16
5 25
M.*M %点乘
ans =
1 1
4 16
9 81
16 256
25 625
M %“ ”为转置运算
ans =
1 2 3 4 5
1 4 9 16 25
您可能关注的文档
最近下载
- 江苏开放大学行政伦理学综合大作业.doc
- 政治选择性必修2一民事权利与义务.docx
- 启迪幼儿园防汛安全演练方案.doc VIP
- 学校安全工作台账(最完整版).doc VIP
- 第11课 整理信息资源 教案 义务教育人教版信息科技三年级全一册.pdf
- 4.3.2等比数列的前n项和公式(教案)-高中数学人教A版(2019)选择性必修第二册.docx
- 八上必读名著《昆虫记》《红星照耀中国》复习资料.doc VIP
- CQC1143-2019电力储能系统用电池连接电缆认证技术规范.pdf VIP
- 铁路机车车辆驾驶人员(J6类)考前通关必练题及答案.doc VIP
- 幼儿园小班科学活动《小动物找尾巴》课件.pptx
文档评论(0)