1、matlab神经网络工具箱常用命令
MATLAB笔记之神经网络基础篇
MATLAB笔记之神经网络基础篇
2、matalb神经网络工具箱之感知器
MATLAB笔记之神经网络基础篇MATLAB笔记之神经网络基础篇
重要:分类线(或分类面)的确定与输出
MATLAB笔记之神经网络基础篇
重要:将其中一个输入设置为全1,则可以将权值w1等价于偏置b
MATLAB笔记之神经网络基础篇
MATLAB笔记之神经网络基础篇
MATLAB笔记之神经网络基础篇MATLAB笔记之神经网络基础篇MATLAB笔记之神经网络基础篇MATLAB笔记之神经网络基础篇
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);

MATLAB笔记之神经网络基础篇

相关文章:

  • 2021-08-21
  • 2021-06-07
  • 2022-01-01
  • 2022-01-20
  • 2021-04-13
  • 2021-07-28
  • 2022-01-23
  • 2021-05-24
猜你喜欢
  • 2021-06-22
  • 2021-06-02
  • 2021-04-29
  • 2021-05-05
  • 2021-11-03
  • 2021-08-22
相关资源
相似解决方案