1、matlab神经网络工具箱常用命令
2、matalb神经网络工具箱之感知器
重要:分类线(或分类面)的确定与输出
重要:将其中一个输入设置为全1,则可以将权值w1等价于偏置b
e.t matalb神经网络工具箱之感知器命令实例使用代码
clear,clc;
close all;
P=[-1,1;-1,1]; %输入变量的范围 T=1; %输出节点个数 net=newp(P,T); %创建 p=[0 0 1 1;0 1 1 1]; %训练样本 t=[0 1 1 1]; %目标输出 或 逻辑 net=train(net,p,t); %训练 newp=[ -1:0.2:1;-1:0.2:1 ]; %新样本 newt=sim(net,newp); %测试 plot(newp(1,:),newp(2,:),'r.',newp(1,:),newt,'linewidth',3); title('判断数字符号的感知器')
|
perception_hand
%% 清理 clear,clc close all
%% n=0.2; %学习率 w=[0 0 0]; %权值和偏置值的初始化w=[b w1 w2] p=[-9 -1 -12 -4 0 5;... 15 -8 4 5 11 9]; %训练样本 d=[0 1 0 0 0 1]; %期望输出
p=[ones(1,6);p]; max=20; %最大迭代次数 %% 训练 i=0; while 1 v=w*p; y=hardlim(v); %更新 e=( d - y ); ee(i+1)=mae(e); if (ee(i+1) < 0.001 ) disp('we have got it'); disp(w); break; end % 更新权值和偏置(误差平方) w=w+n*(d-y)*p'; if (i >= max) disp('max times loop'); disp(w); disp(ee(i+1)); break; end i=i+1; end
%% 显示 figure(1); subplot(2,1,1); plot([-9 -12 -4 0],[15 4 5 11],'o'); hold on; plot([1 5],[-8 9],'*'); axis([-13 6 -10 16]); legend('第一类','第二类'); title('6个坐标点的二分类'); x=-13:.2:6; y=x*(-w(2)/w(3))-w(1)/w(3); %分类线的方程表达 plot(x,y); hold off;
subplot(2,1,2); x=0:i; plot(x,ee,'o-'); s=sprintf('mae的值(迭代次数:%d)', i+1); title(s);
|
|
请发表评论