• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

MATLAB笔记之神经网络基础篇

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap