MATLAB笔记之神经网络基础篇

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);

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值