感知机

感知机

感知机是二分类的线性分类模型,输入为实例的特征向量,输出为实例的类别(取+1和-1)。感知机对应于输入空间中将实例划分为两类的分离超平面。感知机旨在求出该超平面,为求得超平面导入了基于误分类的损失函数,利用梯度下降法对损失函数进行最优化(最优化)。感知机的学习算法具有简单而易于实现的优点,分为原始形式 和 对偶形式。感知机预测是用学习得到的感知机模型对新的实例进行预测的,因此属于判别模型。感知机是一种线性分类模型,只适应于线性可分的数据,对于线性不可分的数据模型训练是不会收敛的。
感知机模型

假设输入空间(特征向量)是 x∈Rn
输出空间为 Y={−1,+1},输入 x∈X表示表示实例的特征向量,对应于输入空间的点,输出 y∈Y

表示实例的类别,则由输入空间到输出空间的表达形式为:
f(x)=sign(w⋅x+b)

该函数称为感知机,其中w和b 称为模型的参数,w∈Rn称为权值,b 称为偏置,w⋅x 表示 w和x 的内积

这里

sign(x)={+1,x>0−1,x<0

如果我们将sign称之为激活函数的话,感知机与logistic regression的差别就是感知机激活函数是sign,logistic regression的激活函数是sigmoid。sign(x)将大于0的分为1,小于0的分为-1;sigmoid将大于0.5的分为1,小于0.5的分为0。因此sign又被称为单位阶跃函数,logistic regression也被看作是一种概率估计。
在神经网络以及DeepLearning中会使用其他如tanh,relu等其他激活函数。

感知机的学习策略

如下图: 线性可分数据集

 


 

对于一个给定的线性可分的数据集,如上面的数据点,红色代表正类,蓝色代表负类,感知机的主要工作就是寻找一个线性可分的超平面 S:{wx+b=0}

, 该超平面能够将所有的正类和负类完全划分到超平面的两侧。而这就是上图中的红色直线,也就是说,感知机算法实际上就是找一条直线将数据集进行正确划分。
如果数据集可以被一个超平面完全划分,则称该数据集是线性可分的数据集,否则称为线性不可分的数据集,如下图:

非线性可分数据集

感知机分类效果:

 


 

logistic regression分类效果:

 


 

为了寻找上面那条能够将数据集完全划分的超平面 S:wx+b=0

我们需要确定一个学习策略,也就是常说的loss function 以及梯度下降法迭代求解。

为了使用梯度下降法求解 wb

,我们的loss function必须是 wb 的连续可导函数,因此可以选择loss function为:误分类点到超平面 S 的总距离。令输入 x0 到超平面 S 的距离为 1||w|||wx0+b| ,其中 ||w|| 为 wL2

范数。

对误分类点(xi,yi)

来说,有 −yi(wxi+b)>0

,则可得loss function为:

L(w,b)=−1||w||∑xiMyi(wxi+b)

 

测重点讲下损失函数

1.损失函数
根据w与b,定义一个损失函数,并使得损失函数最小化。首先,Rn空间中任意一点x0

到超平面的距离为

1||w|||ωx0+b|

学习过程中,当点发生错误分类时,yi与(ωx0+b)的符号相反,且其乘积为1。那么假设超平面S的所有错误分类的点的集合为M,那么所有错误分类的点到超平面的距离总和为

−1||ω||∑xi∈Myi(ωxi+b)

不考虑||ω||,即得到了感知机学习的损失函数。对于给定的训练集T={(x1,y1),(x2,y2)...(xN,yN)}感知机sign(ωx+b)学习的损失函数定义为

L(ω,b)=−∑xi∈Myi(ωxi+b)


显然,损失函数是非负的,并且错误分类的点越少,错误分类的点离超平面的距离越小,损失函数的值越小。一个特定的样本点的损失函数,错误分类时是ω,b的线性函数,在正确分类时是0,因此,损失函数是ω,b的连续可到函数。

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

1.原始形式
对于给定的训练集T={(x1,y1),(x2,y2)...(xN,yN)}求解参数ω,b

是损失函数极小化。

minω,bL(ω,b)=−∑xi∈Myi(ωxi+b)


采用随机梯度下降算法,首先确定一个初始值,损失函数的梯度表示为:

∇ωL(ω,b)=−∑xi∈Myixi

 

∇bL(ω,b)=−∑xi∈Myi


则根据梯度下降规则, 当出现一个错误分类点时,更新ω=ω+ηyixi, b=b+ηyi其中η为学习率,通过迭代使得损失函数L(ω,b)不断减小,直至为零。

 

2.对偶形式
更新ω=ω+ηyixi

,b=b+ηyi其中η为学习率。逐步修改参数的过程中,易知对于一个点(xi,yi),其对参数的增量分别是αiyixi与αiyi,这里的αi=niη

.
则有

ω=∑i=1Nαiyixi

b=∑i=1Nαiyi


感知机的模型可表述为f(x)=sign(∑Nj=1αjyjxjx+b)其中α=(α1,α2...αN)T
对于一个实例(xi,yi)如果yi∑Nj=1αjyjxjx+b<=0即发生错误分类时,更新αi=αi+η, b=b+ηyi
在算法过程中,涉及到计算xixj,可以预处理Gram矩阵存储任意两个训练实例向量的内积。

 

感知机作为一个二分类线性分类器,同时也是支持向量机和神经网络的基础,可以推广到多分类和非线性分类。

 

感知机的对偶形式

基本思想:
w

b 表示为实例 xi 和标记 yi线性组合的形式,通过求解其系数而求得 wb 。假设 w0,b0为0,对误分类点(xi,yi)

通过

w=w+ηyixi

b=b+ηyi

逐步修改 w,b

,设修改 n 次,则 w,b 关于(xi,yi) 的增量分别为 αiyixiαiyi, 其中αi=niη ,则最后学习到的 w,b

可以分别表示为

w=∑i=1Nαiyixi

b=∑i=1Nαiyi

 

这里,αi≥0,=1,2,⋯N

, αi=niη ,ni 的意义是样本 i 被误分的次数,所以当 η=1 时,表示第 i 个样本由于被误分而更新的次数,实例点更新次数越多,表明它距离分离超平面越近,也就越难正确分类。

参考文章:https://blog.csdn.net/llp1992/article/details/50594349#%E6%84%9F%E7%9F%A5%E6%9C%BA%E7%9A%84%E5%8E%9F%E5%A7%8B%E5%BD%A2%E5%BC%8F

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值