精华内容
下载资源
问答
  • 模式识别感知器算法

    2017-01-04 16:02:17
    模式识别中的感知器算法和判别函数原理
  • 模式识别-FISHER判别硬币问题与感知器模式识别-FISHER判别硬币问题与感知器
  • 模式识别 感知器算法

    2014-05-10 06:36:19
    模式识别中的感知器算法是一类简单而又重要的代数界面分类方法,本代码用c语言实习了其算法思想。对与线形可分问题,效果良好
  • 模式识别感知器算法VC++实现

    热门讨论 2009-12-25 10:57:05
    模式识别感知器算法的C++实现,求线性判别函数并绘制图形。
  • 实现模式模式识别中的感知器算法,结构比较简单,容易看懂,而且最后能够自己输入模式进行判断。
  • MATLAB下设计GUI界面模式识别分类器功能,通过鼠标选点感知器分类
  • 模式识别课程中感知器算法的实现。C#编写
  • 这是我们模式识别的作业,线性分类函数中的感知器及WH算法VC++实现,MFC实现。
  • 感知器算法来计算给定样本的判决函数的权向量,程序已封装为函数,可直接调用。调用格式见函数H1行注释。
  • C均值算法 感知器算法 MATLAB GUI编程
  • 模式识别】多层感知器 MLP

    万次阅读 多人点赞 2013-06-03 02:04:18
    由前面介绍看到,单个感知器能够完成线性可分数据的分类问题,是一种最简单的可以“学习”的机器。但他无法解决非线性问题。比如下图中的XOR问题:即(1,1)(-1,-1)属于同一类,而(1,-1)(-1,1)属于第二类的...

    由前面介绍看到,单个感知器能够完成线性可分数据的分类问题,是一种最简单的可以“学习”的机器。但他无法解决非线性问题。比如下图中的XOR问题:即(1,1)(-1,-1)属于同一类,而(1,-1)(-1,1)属于第二类的问题,不能由单个感知器正确分类。

    即在Minsky和Papert的专著《感知器》所分析的:感知器只能解决所谓一阶谓词逻辑问题:与(AND),或(OR)等,而不能解决异或(XOR)等高阶谓词罗辑问题。

    用多个感知器实现非线性

    单个感知器虽然无法解决异或问题,但却可以通过将多个感知器组合,实现复杂空间的分割。如下图:

    将两层感知器按照一定的结构和系数进行组合,第一层感知器实现两个线性分类器,把特征空间分割,而在这两个感知器的输出之上再加一层感知器,就可以实现异或运算。

    也就是,由多个感知器组合:

    来实现非线性分类面,其中θ(·)表示阶跃函数或符号函数。

    多层感知器神经网络 

    实际上,上述模型就是多层感知器神经网络(Multi-layer perceptron neural networks,MLP neural netwoks)的基础模型。神经网络中每个节点为一个感知器,模型生物神经网络中神经元的基础功能:来自外界(环境或其他细胞)的电信号通过突触传递给神经元,当细胞收到的信号总和超过一定阈值后,细胞被激活,通过轴突向下一个细胞发送电信号,完成对外界信息的加工。

    但是,感知器的学习算法并不能直接应用到多层感知器模型的参数学习上。因此,最初提出的学习方案是:除了最后一个神经元之外,事先固定其他所有神经元的权值,学习过程只是用感知器学习算法学习最后一个神经元的权系数。实际上,这相当于通过第一层神经元把原始的特征空间变换到一个新的特征空间,第一层的每个神经元构成新空间的一维,然后在新的特征空间用感知器学习算法构造一个线性分类器。显然,由于第一层的神经元权值需要人为给定,模型的性能很大程度取决于能否设计出恰当的第一层神经元模型,而这取决于对所面临的的问题和数据的了解,并没有针对任意问题求解第一层神经元参数的方法。

     

     

    (转载请注明作者和出处:http://blog.csdn.net/xiaowei_cqu 未经允许请勿用于商业用途)

     

     

     

     

    展开全文
  • 模式识别感知器的实现

    万次阅读 多人点赞 2015-04-23 09:40:03
    在之前的模式识别研究中,判别函数J(.)的参数是已知的,即假设概率密度函数的参数形式已知。本节不考虑概率密度函数的确切形式,使用非参数化的方法来求解判别函数。由于线性判别函数具有许多优良的特性,因此这里...

    在之前的模式识别研究中,判别函数J(.)的参数是已知的,即假设概率密度函数的参数形式已知。本节不考虑概率密度函数的确切形式,使用非参数化的方法来求解判别函数。由于线性判别函数具有许多优良的特性,因此这里我们只考虑以下形式的判别函数:它们或者是x的各个分量的线性函数,或者是关于以x为自变量的某些函数的线性函数。在设计感知器之前,需要明确以下几个基本概念:

    一、判别函数:是指由x的各个分量的线性组合而成的函数:

    这里写图片描述

    若样本有c类,则存在c个判别函数,对具有这里写图片描述形式的判别函数的一个两类线性分类器来说,要求实现以下判定规则:

    这里写图片描述

    方程g(x)=0定义了一个判定面,它把两个类的点分开来,这个平面被称为超平面,如下图所示。

    这里写图片描述

    二、广义线性判别函数

    线性判别函数g(x)又可写成以下形式:

    这里写图片描述

    其中系数wi是权向量w的分量。通过加入另外的项(w的各对分量之间的乘积),得到二次判别函数:

    这里写图片描述

    因为这里写图片描述,不失一般性,可以假设这里写图片描述。这样,二次判别函数拥有更多的系数来产生复杂的分隔面。此时g(x)=0定义的分隔面是一个二阶曲面。

    若继续加入更高次的项,就可以得到多项式判别函数,这可看作对某一判别函数g(x)做级数展开,然后取其截尾逼近,此时广义线性判别函数可写成:

    这里写图片描述

    或:

    这里写图片描述

    这里y通常被成为“增广特征向量”(augmented feature vector),类似的,a被称为“增广权向量”,分别可写成:

    这里写图片描述

    这个从d维x空间到d+1维y空间的映射虽然在数学上几乎没有变化,但十分有用。虽然增加了一个常量,但在x空间上的所有样本间距离在变换后保持不变,得到的y向量都在d维的自空间中,也就是x空间本身。通过这种映射,可以将寻找权向量w和权阈值w0的问题简化为寻找一个简单的权向量a。

    三、样本线性可分

    即在特征空间中可以用一个或多个线性分界面正确无误地分开若干类样本;对于两类样本点w1和w2,其样本点集合表示为:这里写图片描述 ,使用一个判别函数这里写图片描述来划分w1和w2,需要用这些样本集合来确定判别函数的权向量a,可采用增广样本向量y,即存在合适的增广权向量a,使得:

    这里写图片描述

    则称样本是线性可分的。如下图中第一个图就是线性可分,而第二个图则不可分。所有满足条件的权向量称为解向量。

    这里写图片描述

    这里写图片描述

    通常对解区限制:引入余量b,要求解向量满足:

    这里写图片描述

    余量b的加入在一定程度上可防止优化算法收敛到解区的边界。

    四、感知器准则函数

    这里考虑构造线性不等式这里写图片描述 的准则函数的问题,令准则函数J(.)为:

    这里写图片描述

    其中Y是被权向量a错分的样本集。当且仅当JP(a*) = min JP(a) = 0 时,a*是解向量。这就是感知器(Perceptron)准则函数。

    1.基本的感知器设计

    感知器准则函数的最小化可以使用梯度下降迭代算法求解:

    这里写图片描述

    其中,k为迭代次数,η为调整的步长。即下一次迭代的权向量是把当前时刻的权向量向目标函数的负梯度方向调整一个修正量。

    这里写图片描述

    即在每一步迭代时把错分的样本按照某个系数叠加到权向量上。这样就得到了感知算法。

    2.批处理感知器算法

    这里写图片描述

    3.固定增量感知器算法

    通常情况,一次将所有错误样本进行修正不是效率最高的做法,更常用是每次只修正一个样本或一批样本的固定增量法:

    这里写图片描述

    五、收敛性分析:只要训练样本集是线性可分的,对于任意的初值 a(1) ,经过有限次迭代运算,算法必定收敛。而当样本线性不可分时,感知器算法无法收敛。

    总结:感知器是最简单可以“学习”的机器,是解决线性可分的最基本方法。也是很多复杂算法的基础。感知器的算法的推广有很多种,如带裕量的变增量感知器、批处理裕量松弛算法、单样本裕量松弛算法等等。

    以下是批处理感知器算法与固定增量感知器算法实现的MATLAB代码,并给出四组数据以供测试:

    % 批处理感知器算法
    function BatchPerceptron(w1, w2)
    
    figure;
    plot(w1(:,1),w1(:,2),'ro');
    hold on;
    grid on;
    plot(w2(:,1),w2(:,2),'b+');
    
    % 对所有训练样本求增广特征向量y
    one = ones(10,1);
    y1 = [one w1];
    y2 = [one w2];
    w12 = [y1; -y2]; % 增广样本规范化
    y = zeros(size(w12,1),1); % 错分样本集y初始为零矩阵
    % 初始化参数
    a = [0 0 0]; % [0 0 0];
    Eta = 1; 
    time = 0; % 收敛步数
    while any(y<=0)
        for i=1:size(y,1)
            y(i) = a * w12(i,:)';
        end;
        a = a + sum(w12(find(y<=0),:));%修正向量a
        time = time + 1;%收敛步数
        if (time >= 300)
            break;
        end
    end;
    if (time >= 300)
            disp('目标函数在规定的最大迭代次数内无法收敛');
            disp(['批处理感知器算法的解矢量a为: ',num2str(a)]);
    else 
    disp(['批处理感知器算法收敛时解矢量a为: ',num2str(a)]);
    disp(['批处理感知器算法收敛步数k为: ',num2str(time)]);
    end
    
    %找到样本在坐标中的集中区域,以便于打印样本坐标图
    xmin = min(min(w1(:,1)),min(w2(:,1)));
    xmax = max(max(w1(:,1)),max(w2(:,1)));
    xindex = xmin-1:(xmax-xmin)/100:xmax+1;
    yindex = -a(2)*xindex/a(3)-a(1)/a(3);
    plot(xindex,yindex);
    title('批处理感知器算法实现两类数据的分类');
    % 固定增量感知器算法
    function FixedIncrementPerceptron(w1, w2)
    
    [n, d] = size(w1);
    figure;
    plot(w1(:,1),w1(:,2),'ro');
    hold on;
    grid on;
    plot(w2(:,1),w2(:,2),'b+');
    
    % 对所有训练样本求增广特征向量y
    one = ones(10,1);
    y1 = [one w1];
    y2 = [one w2];
    w12 = [y1; -y2]; % 增广样本规范化
    y = zeros(size(w12,1),1); % 错分样本集y初始为零矩阵
    % 初始化参数
    a = [0 0 0];
    Eta = 1; 
    % k = 0;
    time = 0; % 收敛的步数
    yk = zeros(10,3);
    
    y = a * w12';
    while sum(y<=0)>0
    %     for i=1:size(y,1)
    %         y(i) = a * w12(i,:)';
    %     end;
        y = a * w12';
        rej=[];
        for i=1:2*n    %这个循环计算a(K+1) = a(k) + sum {yj被错误分类} y(j)
            if y(i)<=0
                a = a + w12(i,:);
                rej = [rej i];
            end
        end
        %    fprintf('after iter %d, a = %g, %g\n', time, a);
        % rej
        time = time + 1;
        if ((size(rej) == 0) | (time >= 300))
            break;
        end
    end;
    if (time >= 300)
            disp('目标函数在规定的最大迭代次数内无法收敛');
            disp(['固定增量感知器算法的解矢量a为: ',num2str(a)]);
    else 
    disp(['固定增量感知器算法收敛时解矢量a为: ',num2str(a)]);
    disp(['固定增量感知器算法收敛步数kt为: ',num2str(time)]);
    end
    %找到样本在坐标中的集中区域,以便于打印样本坐标图
    xmin = min(min(w1(:,1)),min(w2(:,1)));
    xmax = max(max(w1(:,1)),max(w2(:,1)));
    xindex = xmin-1:(xmax-xmin)/100:xmax+1;
    % yindex = -a(2)*xindex/a(3)-a(1)/a(3);
    yindex = -a(2)*xindex/a(3) - a(1)/a(3);
    plot(xindex,yindex);
    title('固定增量感知器算法实现两类数据的分类');
    close all;
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    % 感知器实验
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    
    w1 = [ 0.1  1.1;...
           6.8  7.1;...
          -3.5 -4.1;...
           2.0  2.7;...
           4.1  2.8;...
           3.1  5.0;...
          -0.8 -1.3;...
           0.9  1.2;...
           5.0  6.4;...
           3.9  4.0];
    
    w2 = [ 7.1  4.2;...
          -1.4 -4.3;...
           4.5  0.0;...
           6.3  1.6;...
           4.2  1.9;...
           1.4 -3.2;...
           2.4 -4.0;...
           2.5 -6.1;...
           8.4  3.7;...
           4.1 -2.2];
    
    w3 = [-3.0 -2.9;...
          0.54  8.7;...
           2.9  2.1;...
          -0.1  5.2;...
          -4.0  2.2;...
          -1.3  3.7;...
          -3.4  6.2;...
          -4.1  3.4;...
          -5.1  1.6;...
           1.9  5.1];
    
    w4 = [-2.0 -8.4;...
          -8.9  0.2;...
          -4.2 -7.7;...
          -8.5 -3.2;...
          -6.7 -4.0;...
          -0.5 -9.2;...
          -5.3 -6.7;...
          -8.7 -6.4;...
          -7.1 -9.7;...
          -8.0 -6.3];
     BatchPerceptron(w1, w2);
     FixedIncrementPerceptron(w1, w3);
    展开全文
  • 模式识别的课程,第三章有设计感知器。该代码按照书上算法而设计,可以实现分类功能。并对算法进行了部分优化,当条件不满足时,即更新W时,就重新迭代,可以减小计算次数。本文档一个function文件,一个是调用的M...
  • 模式识别 感知器,fisher ,matlab实现 x1=[1.24,1.27;1.36, 1.74;1.38, 1.64;1.38, 1.82;1.38, 1.90;1.40, 1.70;1.48, 1.82;1.54, 1.82;1.56, 2.08;]; x2=[1.14, 1.82; 1.18, 1.96;1.20, 1.86;1.26, 2.0;1.28, 2.0...

    模式识别 感知器,fisher ,matlab实现
    x1=[1.24,1.27;1.36, 1.74;1.38, 1.64;1.38, 1.82;1.38, 1.90;1.40, 1.70;1.48, 1.82;1.54, 1.82;1.56, 2.08;];
    x2=[1.14, 1.82; 1.18, 1.96;1.20, 1.86;1.26, 2.0;1.28, 2.0;1.3, 1.96];
    1、感知机算法实现:利用以上数据,用matlab或者其他程序写出增广矩阵,规范化处理结果,以及a转置的更新结果;判定A[1.24, 1.8],B=[1.40, 2.04]的类别。
    源代码:

    clear;clc;
    %% 载入数据
    y1 = [1.24,1.27,1;
    1.36, 1.74,1;
    1.38, 1.64,1;
    1.38, 1.82,1;
    1.38, 1.90,1;
    1.40, 1.70,1;
    1.48, 1.82,1;
    1.54, 1.82,1;
    1.56, 2.08,1;];
     
    y2=[1.14, 1.82,-1;
    1.18, 1.96,-1;
    1.20, 1.86,-1;
    1.26, 2.0,-1;
    1.28, 2.0,-1;
    1.3, 1.96,-1];
    data=cat(1,y1,y2);
     
    X=data(:,[1,2]); y=data(:,3);
       m=size(X,1);  % m=样本点个数
       plotData1(X,y);%先在图上将样本画出来
       axis([1 2 1 2.5]);
       hold on
       x1=1:0.1:2.5; %x1坐标轴
       E=[1,1];
    X=cat(1,E,X);%增广矩阵
       W=[0;0];   b=0;
       p=1; %步长
    error=1;  
     while error>0
           error=0;
           for i=1:m
              if (((W'*X(i,:)'+b)*y(i))<=0)
                  error=error+1;
                   W=W+p*y(i)*X(i,:)';
                   b=b+p*y(i);
                   y1=(-W(1)*x1-b)/W(2);
                   plot(x1,y1,'-b','Linewidth',0.5); 
                   pause(0.5);
               end
           end
    end
    plot(x1,y1,'-r','Linewidth',2);
    hold on 
    A=[1.24,1.8];
    C=A;
    deal(C,A,W);
     
    B=[1.40,2.04];
    C=B;
    deal(C,B,W);
     
    function deal(C,A,W)
    if  W'.*A>=0
        k=1;
          plot(C(1,1),C(1,2),'c+','Linewidth',2,'MarkerSize',9);
    else k=-1;
         plot(C(1,1),C(1,2),'co','MarkerFaceColor','r','Linewidth',2,'MarkerSize',7);
    end
    end
      function plotData1(X,y)
      figure;hold on;
      pos=find(y==1);
      neg=find(y==-1);  
      plot(X(pos,1),X(pos,2),'k+','Linewidth',2,'MarkerSize',9);
      plot(X(neg,1),X(neg,2),'ko','MarkerFaceColor','r','Linewidth',2,'MarkerSize',7);
     hold off;
      end  
    

    结果输出:
    E=[1,1];
    X=cat(1,E,X);%实现增广矩阵,分类如上;
    所以A,B均属于x2类。
    2、fisher判别算法实现: 利用以上数据,写出判定函数g(x),用matlab或者其他程序实现判定程序,并判定A[1.24, 1.8],B=[1.40, 2.04]的类别。给出g(x)具体形式,程序和判定结果。

    clear;clc;
    %% 载入数据
    x1 = [1.24,1.27;
    1.36, 1.74;
    1.38, 1.64;
    1.38, 1.82;
    1.38, 1.90;
    1.40, 1.70;
    1.48, 1.82;
    1.54, 1.82;
    1.56, 2.08;];
    [m n]=size(x1);
    y1=[x1 ones(m,1)];
     
    y2=[1.14, 1.82,-1;
    1.18, 1.96,-1;
    1.20, 1.86,-1;
    1.26, 2.0,-1;
    1.28, 2.0,-1;
    1.3, 1.96,-1];
     
    A=[1.24,1.8];
    B=[1.40,2.04];
     
    data=cat(1,y1,y2);
    X=data(:,[1,2]); y=data(:,3);
       m=size(X,1);  % m=样本点个数
       plotData1(X,y);%先在图上将样本画出来
       axis([1 2 1 2.5]);
       hold on
     
    x2=y2(:,[1,2]);
    a=fisher(x1,x2,A);
    deal(A,a);
    b=fisher(x1,x2,B);
    deal(B,b);
    function deal(C,k)
    if   k==1;
         plot(C(1,1),C(1,2),'c+','Linewidth',2,'MarkerSize',9);
    else k==-1;
         plot(C(1,1),C(1,2),'co','MarkerFaceColor','b','Linewidth',2,'MarkerSize',7);
    end
    end
      function plotData1(X,y)
      figure;hold on;
      pos=find(y==1);
      neg=find(y==-1);  
      plot(X(pos,1),X(pos,2),'k+','Linewidth',2,'MarkerSize',9);
      plot(X(neg,1),X(neg,2),'ko','MarkerFaceColor','r','Linewidth',2,'MarkerSize',7);
     hold off;
     end
    function y=fisher(x1,x2,sample)
    %Fisher函数
    r1=size(x1,1);r2=size(x2,1);
    m1=mean(x1)';m2=mean(x2)';
    s1=cov(x1)*(r1-1);s2=cov(x2)*(r2-1);
    sw=s1+s2;
    w=inv(sw)*(m1-m2);
    y1=mean(w'*m1);
    y2=mean(w'*m2);
    y0=(r1*y1+r2*y2)/(r1+r2);
    g=w'*sample';
    if g>y0
          y=1;
    else
          y=-1;
    end
    End
    

    结果:A,B均为x2类。

    选做:在二维空间产生三分类问题的数据,实现多类线性判别函数算法,并用数据进行测试。
    并非用严格的线性判定函数实现而是用二类的多次判定实现二维3类的分类。

    Function main
    clc;clear;
     
    x1=[0.45,0.45;
    0.23,0.43;
    0.34,0.49;
    0.13,0.50;
    0.28,0.46;];
    x2=[1.23,0.35;
    1.42,0.45;
    1.22,0.50;
    1.37,0.12;
    1.80,0.44;];
    x3= [1.24,1.27;
    1.36, 1.74;
    1.38, 1.64;
    1.18, 1.82;
    1.28, 1.90;
    1.40, 1.70;
    1.48, 1.82;
    1.54, 1.82;
    1.56, 2.08;];
    [m1,n1]=size(x1);
    [m2,n2]=size(x2);
    [m3,n3]=size(x3);
     
    p1=ones(m1,1);
    p2=2*ones(m2,1);
    p3=3*ones(m3,1);
    p=cat(1,p1,p2,p3);
    data=cat(1,x1,x2,x3);
    plotData1(data,p);
    axis([0:0.01:2; 0:0.01:2]);
       hold on
       x1=0:0.01:2; %x1坐标轴
    class=3;%类别数
    n=m1+m2+m3;%样本点个数
    sample=[1.2,1,3];
    y1=fisher(x1,x2,sample);
    y2=fisher(x1,x3,sample);
    y3=fisher(x2,x3,sample);
    if y1*y2>0
          plot(sample(1,1),sample(fir1,2),'c+','Linewidth',2,'MarkerSize',9);
    else if y1*y3>0
              plot(sample(1,1),sample(1,2),'co','MarkerFaceColor','r','Linewidth',2,'MarkerSize',7);
    else  
                  plot(sample(1,1),sample(1,2),'c*','MarkerFaceColor','g','Linewidth',2,'MarkerSize',7);
    end
    function y=fisher(x1,x2,sample)
    %Fisher函数
    r1=size(x1,1);r2=size(x2,1);
    m1=mean(x1)';m2=mean(x2)';
    s1=cov(x1)*(r1-1);s2=cov(x2)*(r2-1);
    sw=s1+s2;
    w=inv(sw)*(m1-m2);
    y1=mean(w'*m1);
    y2=mean(w'*m2);
    y0=(r1*y1+r2*y2)/(r1+r2);
    g=w'*sample';
    if g>y0
          y=1;
    else
          y=-1;
    end
    end
            
    function plotData1(X,y)
      figure;hold on;
      fir=find(y==1);
      sec=find(y==2); 
      tri=find(y==3);
      plot(X(fir,1),X(fir,2),'k+','Linewidth',2,'MarkerSize',9);
      plot(X(sec,1),X(sec,2),'ko','MarkerFaceColor','r','Linewidth',2,'MarkerSize',7);
      plot(X(tri,1),X(tri,2),'k*','MarkerFaceColor','g','Linewidth',2,'MarkerSize',7);
     hold off;
    end
    
    展开全文
  • 模式识别中的感知器网络权值计算与MATLAB仿真.pdf
  • 模式识别感知器 Perceptron

    万次阅读 多人点赞 2013-06-01 13:41:03
    实际应用中直接使用感知器的场合并不多,但他是很多复杂算法的基础。     (转载请注明作者和出处: http://blog.csdn.net/xiaowei_cqu  未经允许请勿用于商业用途)      

    基本概念

    线性可分:在特征空间中可以用一个线性分界面正确无误地分开两 类样本;采用增广样本向量,即存 在合适的增广权向量 a 使得:

    则称样本是线性可分的。如下图中左图线性可分,右图不可分。所有满足条件的权向量称为解向量。权值空间中所有解向量组成的区域称为解区

    通常对解区限制:引入余量b,要求解向量满足:

     

    使解更可靠(推广性更强),防止优化算法收敛到解区的边界。

     

    感知准则函数及求解

    对于权向量a,如果某个样本yk被错误分类,则。我们可以用对所有错分样本的求和来表示对错分样本的惩罚:

    其中Yk是被a错分的样本集合。当且仅当JP(a*) = min JP(a) = 0 时,a*是解向量。这就是Rosenblatt提出的感知器(Perceptron)准则函数

    感知器准则函数的最小化可以使用梯度下降迭代算法求解:

    其中,k为迭代次数,η为调整的步长。即下一次迭代的权向量是把当前时刻的权向量向目标函数的负梯度方向调整一个修正量。

    因此,迭代修正的公式为:

    即在每一步迭代时把错分的样本按照某个系数叠加到权向量上。

    通常情况,一次将所有错误样本进行修正不是效率最高的做法,更常用是每次只修正一个样本或一批样本的固定增量法:

     

    收敛性讨论:可以证明,对于线性可分的样本集,采用这种梯度下降的迭代算法:

    经过有限次修正后一定会收敛到一个解向量。

    理论结论:只要训练样本集是线性可分的,对于任意的初值 a(1) ,经过有限次叠代,算法必定收敛。

    感知器是最简单可以“学习”的机器,可以解决线性可分的问题。当样本线性不可分时,感知器算法不会收敛。实际应用中直接使用感知器的场合并不多,但他是很多复杂算法的基础。

     

     

    (转载请注明作者和出处:http://blog.csdn.net/xiaowei_cqu 未经允许请勿用于商业用途)

     

     

     

    展开全文
  • 利用感知器算法对样本进行分类. 利用OpenGL实现分类绘图显示
  • 这学期在学模式识别,老师布置作业让实现一些比较基础简单的算法 下面是感知器算法的实现过程 感知器算法是线性分类器中一个比较基础但是比较重要的算法 W为权向量,g(x)为线性判别函数 通过对W的调整,可...
  • 本程序是利用VC6编写的基于对话框的MFC,实现模式识别课程中的C均值聚类及感知器算法。
  • 倾心推荐,模式识别 感知器学习算法 Widrow-Hoff算法 GUI界面程序 Java代码,可以自己选择样本的坐标(使用者首先在坐标面板上按类别标注点,当单选按钮选择类1时,表示此时标注的属于类1,单选按钮选择类2表示新...
  • 模式识别--感知器算法

    千次阅读 2018-06-06 00:30:36
    感知器算法步骤:(1)选择N个分属于ω1和ω2类的模式样本构成训练样本集 {X1, …, XN } 构成增广向量形式,并进行规范化处理。任取权向量初始值W(1),开始迭代。迭代次数k=1 。(2)用全部训练样本进行一轮迭代...
  • 给定样本如下 ^=(Xl,X2)={(1,0,1(0,1,1)} ?=(X3, X4)={(1,1,0(0,1,0)} 使用 matlab 编制程序如下 X1=[1,0,1];X2=[0,1,1];X3=[1,1,0];X4=[0,1,0]; %规格化 y1=[X1,1];y2=[X2,1];y3=[-X3,-1];y4=[-X4,-1];...
  • 模式识别的经典算法之一,感知器算法,用来对模式进行分类,采用matlab编写
  • 模式识别的几个经典分类器,附matlab程序。模式识别 分类器 贝叶斯 感知器 模式识别的几个经典分类器,附matlab程序。
  • 基于局部二值模式与多层感知器的中文车牌字符识别高效算法
  • 对分布于二维空间的线性可分样本进行分类,画出了其中每个类的判决函数、判决面。 并拓展到非线性可分或者不可分!

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 33,375
精华内容 13,350
关键字:

感知器模式识别