【城北徐公之机器学习】感知机模型

一、什么是感知机?

感知机最早由计算科学家Rosenblatt在1958年提出,他是一种单层(注意,输入层并不计算在内)神经网络。如图为一个二元输入的感知机模型。

其中x1,x2为输入,b为偏置,激活函数被称为符号函数(sign function),我们将激活函数的输出记为,其函数表达式及图像如下所示。

二、感知机可以用来干什么?

感知机可以用来处理线性可分类问题,线性可不可分简单来说,就是可不可以用一条直线把图上两类点划分开。如第二张图所示,无论怎么画直线都无法将两类点分区开。

线性可分

线性不可分

对于线性不可分问题一般用多层神经网络,SVM来处理。

三、感知机如何实现线性分类?

我们举一个最最最简单的分类问题,逻辑运算(这里我们用“与”运算)并且结合matlab代码来说明感知机如何实现线性分类。


X1


X2


y


0


0


0


0


1


0


1


0


0


1


1


1

也就是说,我们要在平面上找到这样一条直线,把点(1,1)与其它点划分开,而这条直线的方程为(decision boundary),如果把符号激活函数向右平移1各单位,那么这条直线方程则为

转化为最优化问题,那如何找这么一个函数来描述优化程度?因为激活函数不平滑,无法用误差的形式来描述。

这里我们提出一种点到直线距离的描述方法J=,对误分类点而言,J>0;

我们对数据集中的训练点逐一进行判别,训练权重,直至无误分类点。

权重训练方法采用的是梯度下降法。

matlab代码:

close all;
clear;
w=[1 0.5];b=0;%随机设置初始权值与阈值
%p,t为给定的训练样本,p为输入,t为对应的输出

%And计算网络迭代训练五次
p=[0 0;0 1;1 0;1 1];

t=[-1;-1;-1;1];

p1=[p;p;p;p;p];

t1=[t;t;t;t;t];

%训练过程传递函数为阶跃函数

for i=1:size(p1,1)
    n=0.5;%学习率
    a=unitstep(p1(i,1:2)*w‘+b);
    if t1(i)*(p1(i,1:2)*w‘+b)<0
        w=w+n*p1(i,1:2)*t1(i);
        b=b+n*t1(i);   
        
        figure(1)
        plot(i,w(1),‘*‘);
        hold on;
     
    
        figure(2)
        plot(i,w(2),‘^‘);
        hold on;
        
        figure(3)
        x1=0:0.1:1;
        x2=(-w(1)/w(2))*x1-b/w(2);
        plot(x1,x2)
        plot([0 0 1 1],[0 1 0 1],‘^‘);
        axis([0 1 0 1])
        hold on;
 
       
    end
end

%网络输出

a=unitstep(p(1:4,1:2)*w‘+b)

原文地址:https://www.cnblogs.com/xugong/p/9499098.html

时间: 2024-10-14 10:56:41

【城北徐公之机器学习】感知机模型的相关文章

(1)机器学习算法——分类问题:感知机模型

感知机模型是一个二分类的线性分类模型.其输入为实例的特征峰向量.输出是实例的类别,取+1和-1两种值.感知机对应于输入空间中讲实例划分为正负两类的分离超平面,属于判别模型.其判别函数为: w是超平面的法向量,b是超平面的截距. 如图 其损失函数的选择是误分点到决策面的距离.因此决策面可以有多个.感知机模型是无法解决异或问题的. 原文地址:https://www.cnblogs.com/yuanfuqiang/p/9759538.html

【统计学习】随机梯度下降法求解感知机模型

1. 感知机学习模型 感知机是一个二分类的线性分类问题,求解是使误分类点到超平面距离总和的损失函数最小化问题.采用的是随机梯度下降法,首先任意选取一个超平面w0和b0,然后用梯度下降法不断地极小化目标损失函数,极小化过程中不是一次使所有误分类点的梯度下降,而是一次随机选取一个误分类点使其梯度下降.假设误分类点集合M是固定的,那么损失函数L(w,b)的梯度: 随机选取一个误分类点,对w和b进行更新: 其中n是步长,又称为学习率(learning rate),这样通过迭代可以使损失函数L(w,b)不

感知机模型

感知机(perceptron)是二类分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,取+1和-1二值.感知机对应于输入空间(特征空间)中将实例划分为正负两类的分离超平面,属于判别模型.感知机旨在求出将训练数据进行线性划分的分离超平面.为此,导入基于误分类的损失函数,利用梯度下降法对损失函数进行极小化,求得感知机模型. 感知机模型 定义1(感知机) 假设输入空间(特征空间)是,输出空间是.输入表示实例的特征向量,对应于输入空间(特征空间)的点,输出表示实例的类别.由输入空间到输出空间

机器学习之模型评估与模型选择(学习笔记)

时间:2014.06.26 地点:基地 -------------------------------------------------------------------------------------- 一.训练误差和测试误差 机器学习或者说统计学习的目的就是使学习到的模型不仅对已知数据而且对未知数据都都很好的预测能力.不同的学习方法会得出不同的模型.在评判学习方法的好坏时,常用的是: 1.基于损失函数的模型的训练误差                          2.模型的测试误

感知机1 -- 感知机模型

声明: 1,本篇为个人对<2012.李航.统计学习方法.pdf>的学习总结,不得用作商用.欢迎转载.但请注明出处(即:本帖地址). 2,因为本人在学习初始时有非常多数学知识都已忘记,因此为了弄懂当中的内容查阅了非常多资料.所以里面应该会有引用其它帖子的小部分内容.假设原作者看到能够私信我.我会将您的帖子的地址付到以下. 3,假设有内容错误或不准确欢迎大家指正. 4.假设能帮到你,那真是太好了. 定义 感知机模型说白了就是推断"属于规定类?还是不属于规定类"的模型. 其函数为

【机器学习基础】从感知机模型说起

感知机(perceptron) 感知器(perceptron)1957年由Rosenblatt提出,是神经网络与支持向量机的基础.感知器是二类分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,取+1和-1二值.感知机对应于输入空间(特征空间)中将实例划分为正负两类的分离超平面,属于判别模型.感知机学习旨在求出将训练数据进行线性划分的分离超平面. 分离超平面分类法 分离超平面进行分类的过程是构造线性判定边界,试图显示地.尽可能好地将数据分到不同的类. 超平面分离定理 超平面分离定理是应

吴裕雄 python 机器学习——人工神经网络与原始感知机模型

import numpy as np from matplotlib import pyplot as plt from mpl_toolkits.mplot3d import Axes3D from sklearn.neural_network import MLPClassifier def creat_data(n): ''' 创建线性可分数据集 :param n: 正例样本的个数(同时也是负例样本的个数) :return: 返回一个线性可分数据集,数据集大小为 2*n ''' np.ra

机器学习——概率图模型(CPD)

CPD是conditional probability distribution的缩写,翻译成中文叫做 条件概率分布.在概率图中,条件概率分布是一个非常重要的概念.因为概率图研究的是随机变量之间的练习,练习就是条件,条件就要求条件概率. 对于简单的条件概率而言,我们可以用一个条件概率表来表达.如图1所示.图1 中表达的是p(g|i,d).幸运的是id都只有两个取值,是一个伯努利分布的函数.但是如果i d 有六个取值呢?比如骰子.那么这张表就会猛然增加到6^2那么长.这是不科学的.并且,常规情况下

[机器学习]感知机(Perceptron)算法的MATLAB实现

感知机是一种二类分类的线性分类模型,属于判别类型,它是神经网络和支持向量机的基础. 感知机的算法如图所示: 根据以上的算法,使用MATLAB对一组标签为"1"和"-1"的数据进行训练,得到的分类超平面. 数据为: %%perceptron clc clear %load the data 导入数据 data=load('testSet.txt'); %Sometimes you do not need too precise data % data=roundn(d