matlab感知器的局限性实例分析
更新:HHH   时间:2023-1-7


这篇文章主要介绍“matlab感知器的局限性实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“matlab感知器的局限性实例分析”文章能帮助大家解决问题。

对于线性不可分问题,单层感知器无法在有限时间内收敛。
         
%% 清理
clear,clc
close all
   
%%
n=0.2;                  % 学习率
w=[0,0,0]; 
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;                 % 最大迭代次数为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
    
            
%% 清理
clear,clc
close all
   
%%
n=0.1;                  % 学习率
w=[0,0,0]; 
P=[ -9,  1, -12, -4,   0, 5;...
   15,  -8,   4,  5,  11, 9];
d=[1,1,0,0,0,1];        % 期望输出

   
P=[ones(1,6);P];
MAX=100;                 % 最大迭代次数为100次
%% 训练
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
    

关于“matlab感知器的局限性实例分析”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注天达云行业资讯频道,小编每天都会为大家更新不同的知识点。

返回大数据教程...