感知机模型

2019-04-13 21:41发布

一、感知机概述
1、定义:感知机就是一个二分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别。
2、感知机对应于将输入空间中的实例分为正负两个类别的分离超平面,其属于判别分类模型。其基于误分类的分类损失函数,利用梯度下降法计算分类损失函数的极小值,得到感知机模型。
感知机学习算法分为原始形式和对偶形式。感知机就是利用学习到的感知机模型对新输入的数据进行预测分类。
二、感知机模型
1、假设输入空间为xRn" role="presentation" style="position: relative;">xRn ,输出为y={-1,1}。输入xRn" role="presentation" style="position: relative;">xRn就代表的实例输入向量,而输出就是实例的类别y。由输入到输出的函数可以表示为:
这里写图片描述
感知机是一种线性分类模型,属于判别模型.
感知机模型的假设空间是定义在特征空间中的所有线性分类模型或线性分类器,函数集合{f|f(x)=w.x+b}。
2。感知机的几何解释
线性方程w.x+b=0,解释如下:
其对应着空间Rn" role="presentation" style="position: relative;">Rn中的一个超平面,其中w是超平面的法向量,b为截距。该平面特征空间分为两个部分,位于空间中的实例被分为正负两个类别。因此该平面成为分离超平面。如下图:
这里写图片描述
三、感知机的学习策略
1、数据集的线性可分性
假设数据集为T={(x1,y1),…,(xn,yn)},分离超平面为w.x+b=0。对于所有y=1的点都有w.x+b>0,对于所有y=-1的点都有w.x+b<0,则成为该数据及线性可分,否则线性不可分。
2、感知机策略
(1)假设给定数据集是线性可分的,那么我们的目标应该是找出一个超平面将数据集中的正例点和负例点完全正确的分开。为了找出分离超平面,我们需要确定系数w和b。然后确定一个学习策略,即定义损失函数,并将损失函数极小化。
(2)损失函数
定义损失函数最简单的方式就是计算误分类点的数量,但是这种计算方式不是连续的,不可导,因而难优化。另一种方式就是定义误分类点到分离超平面的距离。因此我们首先定义一个误分类点到分离超平面的距离为:
1||ω||(ω.x+b)" role="presentation" style="position: relative;">1||ω||(ω.x+b)
其中||w||是w的L2范数。
并且误分类点对于yi(ω.xi+b)<0" role="presentation" style="position: relative;">yi(ω.xi+b)<0成立。因此假设误分类点集合为M,则损失函数可以记为:
1||ω||iMyi(ω.xi+b)" role="presentation" style="position: relative;">1||ω||iMyi(ω.xi+b)
其中M为误分类点的集合这个损失函数就是感知机学习的经验风险函数,显然, 损失函数L(ω" role="presentation" style="position: relative;">ω ,b)是非负的。如果没有误分类点, 损失函数值是0。而且, 误分类点越少, 误分类点离超平面越远, 损失函数值就越小。 一个特定的样本点的损失函数在误分类时是参数w,b 的线性函数, 在正确分类时是0。因此,给定训练数据集T,损失函数L(w,b)是w,b 的连续可导函数。
3、感知机学习算法的原始形式
给定训练数据集T={(x1,y1),…,(xn,yn)},其中xRn" role="presentation" style="position: relative;">xRn ,输出为y={-1,1}。求解参数w,b使其成为损失函数极小化问题的解,损失函数或者目标函数如下:
minL(w,b)=iMyi(ω.xi+b)" role="presentation" style="position: relative;">iMyi(ω.xi+b) (前面的负号是将误分类点计算的值取正),其中M为误分类点的集合。
感知机学习算法是误分类驱动的,其使用梯度下降法进行计算。首先,任意选择w0,b0的超平面,然后根据梯度下降法不断的极小化目标函数,在极小化的过程中,并不是同时使得M中的所有误分类点的梯度下降,而是一次随机选择一个误分类点使得其梯度下降。算法描述如下:
假设输入为:训练数据集T={(x1,y1),(x2,y2)…(xn.yn)},其中xRn" role="presentation" style="position: relative;">xRn ,y={-1,1},学习率为η" role="presentation" style="position: relative;">ηη" role="presentation" style="position: relative;">η介于0到1之间。
输出为:w,b。感知机模型f(x)=sign(wx+b) 。
Step1:选出初值w0,b0
Step2:在训练集中随机选出点(xi,yi)
Step3:若yi(wxi+b)<=0,则对w,b进行调整:
ω=ω+ηxiyi" role="presentation" style="position: relative;">ω=ω+ηxiyi
b=b+ηyi" role="presentation" style="position: relative;">b=b+ηyi
Step4:转至Step2,直至没有误分类点。
算法描述:当一个实例点被误分类到错误的超平面一侧时,通过调整超平面系数w和b,使得分离超平面向实例点一侧移动,减少误分类点与超平面的距离,直至实例点越过超平面到正确一侧为止。
注意:感知机选择初值及误分类点的选择顺序都会导致最终的分离超平面不同,因此分离超平面可以是多个不同的解。
4、感知机学习算法的对偶形式
对偶形式的思想就是通过使用实例点的数据即(xi,yi),将系数w和b表示出来。由感知机的原始形式可知每次选择误分类实例点对w和b进行调成的时候都是通过以下计算完成的:
ω=ω+ηxiyi" role="presentation" style="position: relative;">ω=ω+ηxiyi
b=b+ηyi" role="presentation" style="position: relative;">b=b+ηyi
因此假设经过N词调整,得到最终结果w和b,则w和b可以以下形式进行表示:
ω=i=1Nαixiyi" role="presentation" style="position: relative;">ω=i=1Nαixiyi
b=i=1Nαiyi" role="presentation" style="position: relative;">