机器学习之感知机

原创 2016年05月31日 23:21:24

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

感知机模型:

f(x)=sign(w*x +b)
其中,w和b是感知机的模型参数,w属于Rn,叫做权值或者权值向量。b属于R,叫做偏置,w*x标识w和x的内积,sign是符号函数:x>=0 sign(x)=1;x<0,sign(x)=-1;

感知机几何解释:w*x+b=0;对应一个超平面,w是平面的法向量,b是截距;

感知机学习策略:

线性可分性:

对于一个数据集:T={(x1,y1),(x2,y2).....(xn,yn)}  xi属于X,yi属于Y属于{+1,-1},i=1,2,3......n;如果存在超平面S w*x+b=0 能够将数据集的正实例点和负实例点完全正确地划分到超平面的两侧,即对所有yi=+1的实例i,都有w*xi+b>0; 对于所有yi=-1的实例i,都有w*xi+b<0;则称数据集T为线性可分数据集,否则为线性不可分;

感知机学习策略:

目的是求一个超平面能否将正实例和负实例完全正确地分开;为了得到这个平面,需要确定w和b;需要定义一个学习策略,及定义(经验)损失函数并将损失函数极小化;
损失函数的一个自然选择是误分类的点数,但是这样的损失函数不是参数w和b的连续可导函数,不易优化,损失函数的另一个选择是误分类点到超平面的总距离,这是感知机所采用的,为此,首先写出输入空间中任一点x0到超平面S的距离:
                 是w的范数。


对于误分类的数据(xi,yi)来说,;因为w*xi+b>0时,yi=-1,而当w*xi+b<0时,yi=+1,因此,误分类点xi到超平面S的距离是:

假设误分类点集合为M,则误分类点到超平面S的总距离为:


对于训练集T={(x1,y1),(x2,y2).....(xn,yn)}  ,不考虑L2范式,损失函数定义为:

其中M为误分类点的集合,这个损失函数就是感知机学习的经验风险函数。

如果没有误分类点,损失函数值是0,而且误分类点越少,误分类点离超平面越近,损失函数就越小。一个特定的样本点的损失函数:在误分类时时参数w,b的线性函数,在正确分类时是0,因此,给定特定训练集T,损失函数L(w,b)是w,b的连续可导函数。

感知机学习算法:

感知机学习问题转化为求解损失函数式的最优化问题 ,最优化的方法是随机梯度下降法。

感知机学习算法的原始形式:


求解参数w,b,使其为以下损失函数极小化问题的解:

感知机学习算方法是误分类驱动的,具体采用随机梯度下降法,首先,任意选一个超平面w0,b0,然后用梯度下降法不断地极小化目标函数。极小化过程中不是一次使M中所有误分类点的梯度下降,而是一次随机选取一个误分类点使其梯度下降。

L(w,b)的梯度由给出。

随机选择一个误分类点(xi,yi),对w,b进行更新:



是步长,在统计学习中又称为学习率。这样,通过迭代可以期待损失函数L(w,b)不断减小,直到0.综上所述,得到如下算法:
1、选取初值:w0,b0;
2、在训练集中选取数据(xi,yi);
3、如果yi(w*xi+b)<=0

4、转至2,直至训练集中没有误分类点。




算法收敛性(这里不再证明了。)

举例子:
正实例点 x1=(3,3),x2=(4,3),负实例点x3=(1,1),试用感知机学习算法的原始形式求感知机模型f(x)=sign(w*x +b),这里w=(w1,w2),x=(x1,x2)
按照如上算法求解w b ,步长=1
1、 w0 = 0 b=0
2、对于x1=(3,3),y1*(w0*x1+b0)=0,未能正确分类,更新w,b
        w1 = w0+y1*x1=(3,3),b1=b0+y1=1
w1*x+b1=3x1+3x2+1
3、对于x1,x2 显然 损失函数>0被正确分类,不修改wb;对于x3(1,1)y3*(w1*x3+b1)<0被误分类

w2=w1+y3x3=(2,2),b2=b1+y3=0
得到
w2*x+b2=2x1+2x2

如此继续下去,直到w7*x+b7=x1+x2-3,对于所有点都被正确分类

f(x)=sign(x1+x2-3)

感知机算法对偶形式:

    对偶形式的基本想法是,将表示为实例和标记的线性组合的形式,通过求解其系数而求得
    通过上面的的更新公式,我们发现,是一个累加的过程。如果令,则可以表示为:
其中,
    此时的感知机模型就变为:
三、算法流程
  • 初始化
  • 选择误分类数据点,即,更新
  • 直到没有误分类的点,否则重复步骤2
  • 计算出

开始感觉不太理解对偶模式,后来自己计算了一下,大概明白了;
其实就是w0=0;b0=0;根据原始形式我们会得到(设步长为t)w=ty1x1+ty2x2+ty1x1+ty3x3
其实这里ai=ni*t;比如a1=2*t,2标识(x1,y1)被误分类了两次;a2=t标识第二个点误分类一次;其实和原始形式一样,只是另外一种标识方法;
至于那个G矩阵,就是为了得到点与点之间的乘积,然后比较好代码实现而已;



梯度下降

版权声明:本文为博主原创文章,未经博主允许不得转载。

机器学习-感知机perceptron

在机器学习中,感知机(perceptron)是二分类的线性分类模型,属于监督学习算法。输入为实例的特征向量,输出为实例的类别(取+1和-1)。感知机对应于输入空间中将实例划分为两类的分离超平面。感知机...

机器学习入门之感知机

感知机感知机是二类分类线性分类模型,输出的值为{+1, -1}两种类型;感知机是利用超平面将两类分离,再次我们将通过三个方面对感知机进行详细的阐述。分别是感知机模型,感知机学习策略,感知机学习算法。感...

机器学习基础(五十六)—— tanh、sign 与 softsign

tanh:hyperbolic functions;tanh(s)=exp(s)−exp(−s)exp(s)+exp(−s) \tanh(s)=\frac{\exp(s)-\exp(-s)}{\exp...

机器学习实战——感知机

感知机 学习策略 具体实现 数据集最大最小规范化 训练过程 测试 最终结果感知机是二分类的线性分类模型,由Rosenblatt于1957年提出,是支持向量机和神经网络的基础。感知机将学习到一个线性划分...

机器学习(五):w·x+b模型(2)

3. 支持向量机SVMSVM主要用于分类问题,w∈Rn,b∈R,y∈{−1,1}w\in R^n, b\in R, y\in \{-1,1\}(注意此处不再将b视为w0w_0)3.1 引言3.1.1 ...

感知机

概论: 感知机(perceptron)是二分类的线性分类模型            ——1957年Rosenlatt提出,神经网络与支持向量机的基础 感知机学习旨在求出将训练数据进行线性划...

机器学习笔记1—感知器(Perceptron)

1 用途感知器即单层神经网络,或者叫做神经元,是组成神经网络的最小单元。其作用即为“分类”,但是什么叫做“分类“?“分类”在实际中又有什么用途? 为了方便理解,我想把“分类”和“聚类”对比着来总结。...

感知机学习算法的对偶形式

% 感知机学习算法的对偶形式,算法2.2参考李航《统计学习方法》书中第二章的算法 % clear all; clc X=[3,3;4,3;1,1];Y=[1,1,-1];%训练数据集及标记...
  • sruixue
  • sruixue
  • 2014年10月31日 19:16
  • 1695

LSA算法简单理解

文本挖掘的两个方面应用: (1)分类: a.将词汇表中的字词按意思归类(比如将各种体育运动的名称都归成一类) b.将文本按主题归类(比如将所有介绍足球的新闻归到体育类) (2)检索:用户提出提问式(通...

机器学习(感知机)

  • 2015年10月16日 21:28
  • 3KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:机器学习之感知机
举报原因:
原因补充:

(最多只允许输入30个字)