感知器PLA算法

  看了台湾大学林轩田的机器学习第二章感知器算法,做一些笔记备忘。理论部分以后再补,直接上代码:

%感知器算法实例
% creat the value of w
x0 = ones(20, 1);
%creat datasets,(x_1,x_2)
x1 = rand(20, 2)*10;
x = [x0, x1];
test = rand(20, 1);
y = ones(20, 1);
for i=1:20
    if x1(i, 1)>6
        y(i) = -1;
    end
end

j=1;
for i=1:20
    if y(i)==-1
        u(j) = x1(i, 1);
        v(j) = x1(i, 2);
        j = j+1;
    end
end
scatter(u, v, ‘or‘);
hold on;

j=1;
u=[];
v=[];
for i=1:20
    if y(i)==1
        u(j) = x1(i, 1);
        v(j) = x1(i, 2);
        j = j+1;
    end
end
scatter(u, v, ‘xk‘);
hold on;
%Example of PLA algorithm
w = [0, 0, 0];
while true
    pd = false;
    for i=1:20
        t = x(i, :);
        if w*t‘*y(i)<=0
            w = w + y(i)*t;
            pd = true;
            break;
        end

    end

    if pd == false
        break;
    end
end
w
v = linspace(0, 10, 100);
u = -w(3)/w(2)*v - w(1)/w(2);
plot(u, v, ‘.‘);
hold on
%Next is the code of PLA algorithm by Nerual Network Toolbox
t = 1;
y(y==-1)=0;
net = newp([0, 10; 0, 10], t);
net = train(net, x1‘, y‘);

newt = sim(net, x1‘);
iw = net.iw;
b = net.b;
ww = [b{1}, iw{1}];
vv = linspace(0, 10, 100);
uu = -ww(3)/ww(2)*v - ww(1)/ww(2);
plot(uu, vv, ‘.k‘);

  得到的结果如下:

  黄色部分是按照理论写的代码,而黑色是根据神经网络工具箱跑出来的结果。

原文地址:https://www.cnblogs.com/txy19981002/p/8455555.html

时间: 2024-10-13 06:22:11

感知器PLA算法的相关文章

MachineLearning:二、感知器perception算法

简介 50年代末 F.Rosenblatt提出感知器算法.线性分类器的设计就是利用训练样本来计算线性函数的权向量 问题 设有两类问题的判别函数 g(X)=w1x1+w2x2+w3=0 训练样本XA,XB∈ω1, XC,XD∈ω2则 g(XA)>0,g(XB)>0 g(XC)<0,g(XD)<0 即: WX>0 其中: 权向量 各样本特征向量的增1矩阵 该线性联立不等式只对线性可分问题有解,且是多解,因而只有按不同条件取最优解 赏-罚训练算法是一个迭代过程: 1)取权向量W(1

机器学习--感知器数据分类算法步骤(慕课网-实现简单的神经网络)

权重向量W,训练样本X 1.把权重向量初始化为0,或把每个分量初始化为[0,1]之间的任意小数 2.把训练样本输入感知器,得到分类结果(-1或者1) 3.根据分类结果更新权重向量 感知器算法适用于图一的可线性分隔开的数据样本

Coursera机器学习基石 第2讲:感知器

第一讲中我们学习了一个机器学习系统的完整框架,包含以下3部分:训练集.假设集.学习算法 一个机器学习系统的工作原理是:学习算法根据训练集,从假设集合H中选择一个最好的假设g,使得g与目标函数f尽可能低接近.H称为假设空间,是由一个学习模型的参数决定的假设构成的一个空间.而我们这周就要学习一个特定的H——感知器模型. 感知器模型在神经网络发展历史中占有特殊地位,并且是第一个具有完整算法描述的神经网络学习算法(称为感知器学习算法:PLA).这个算法是由一位心理学家Rosenblatt在1958年提出

Python_sklearn机器学习库学习笔记(七)the perceptron(感知器)

一.感知器 感知器是Frank Rosenblatt在1957年就职于Cornell航空实验室时发明的,其灵感来自于对人脑的仿真,大脑是处理信息的神经元(neurons)细胞和链接神经元细胞进行信息传递的突触(synapses)构成. 一个神经元可以看做将一个或者多个输入处理成一个输出的计算单元.一个感知器函数类似于一个神经元:它接受一个或多个输入,处理 他们然后返回一个输出.神经元可以实时,错误驱动的学习,神经元可以通过一个训练样本不断的更新参数,而非一次使用整套的数据.实时学习可能有效的处理

统计学习方法(感知器)

感知机 假设:输入空间是 x?Rn 输出空间是 y={+1,-1} 由如下2.1函数进行分类称之为感知器 其中,w为权值向量,b为偏置 sign(.)是符号函数,记为如下所示: 感知机是一种线性分类模型,属于判别模型. 感知机模型的假设空间是定义在特征空间中的 所有线性分类模型(linear classification model)或 线性分类器(linear classifier) 即函数集合{f|f(x) = wx +b} 求感知机模型2.1,即求得模型参数w,b. 感知机预测,通过学习得

模式识别:感知器的实现

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

每月学习数理统计--《统计学习方法—李航》(2): 感知器

1. 感知器的介绍 2.感知器的算法 3.感知器的更新规则 4.感知器的收敛性 5.感知器的局限性 1. 感知器的介绍 首先 2. 感知器的算法 3. 感知器的更新规则 4. 感知器的收敛性 5. 感知器的局限性 原文地址:https://www.cnblogs.com/tjpeng/p/10326100.html

神经网络入门回顾(感知器、多层感知器)

神经网络属于“连接主义”,和统计机器学习的理论基础区别还是很不一样. 以我自己的理解,统计机器学习的理论基于统计学,理论厚度足够强,让人有足够的安全感:而神经网络的理论更侧重于代数,表征能力特别强,不过可解释性欠佳. 这两个属于机器学习的两个不同的流派,偶尔也有相互等价的算法. 本文回顾神经网络最简单的构件:感知器.多层感知器. 感知器 感知器是二类分类的线性分类模型,将实例划分为正负两类的分离超平面(separating hyperplane),属于判别模型. 感知器基于线性阈值单元(Line

python机器学习——感知器

最近在看机器学习相关的书籍,顺便把每天阅读的部分写出来和大家分享,共同学习探讨一起进步!作为机器学习的第一篇博客,我准备从感知器开始,之后会慢慢更新其他内容. 在实现感知器算法前,我们需要先了解一下神经元(neuron)的工作原理,神经元有很多树突和一个轴突,树突(Dendrites)可以从其他神经元接收信息并将其带到细胞体(Cell nucleus),轴突(Axon)可以从细胞体发送信息到其他神经元.树突传递过来的信息在细胞体中进行计算处理后,如果结果超过某个阈值,轴突会传递信号到其他的神经元