感知机:二类分类的线性模型,对应于输入空间将实例划分为正负两类的分离超平面,属于判别模型。其基本思想,基于误分类的损失函数,利用梯度下降法对损失函数极小化,求得感知机模型。
1.感知机模型perceptron
输入空间X,输出空间Y={-1,+1} x为实例的特征向量,感知机:
w为权重向量 b为偏置,sign为符号函数:
感知机的假设空间:
2.感知机学习策略
数据集的线性可分性:
给定数据集:
y={-1,+1}
若存在某个超平面S,使得数据集的正负实例点完全正确的划分到超平面两侧,则称数据集T线性可分:
感知机学习策略:
策略:误分类点到超平面的总距离
空间中某一点xo到超平面wx+b=0距离的计算:
过x0做超平面的垂线,相交于点x,点x在超平面上有:
假设点x0到超平面的距离为r,则
代入得:
对于误分类的数据点(xi,yi):
yi=-1, w*xi+b>0
yi=1, w*xi+b<0
结合有:
误分类点(xi,yi)到超平面的距离:
假设超平面S划分的误分类点结合为M,则所有误分类点到超平面的总距离:
||w||为超平面法方向的长度,可以采用中心化使得||w||=1
即感知机的损失函数定义为:
L(w,b)是w,b连续可导函数。
3.感知机学习算法
感知机优化的目标函数:
采用随机梯度下降,任意选取一个超平面w0,b0,一次随机选取一个误分类点使其梯度下降:
损失函数L(w,b)的梯度:
随机选择一个误分类点(xi,yi)对于权重系数更新:
其中为学习率,学习步长。
感知机学习算法原始形式:
1.选取初值w0,b0
2.在训练集中选取数据(xi,yi)
3.如果yi(wxi+b)<=0(说明分类错误)
w<---w+yixi
b<---b+ yi
4.转至2,直到训练集中没有误分类点
最终输出感知机模型 f(x)=sign(wx+b)
对于线性可分数据集感知机学习算法原始形式收敛证明:
误分类次数k有上界,经过有限次搜索可以找到将训练数据完全正确分开的分离超平面。
感知学习算法对偶形式:
对于错误点(xi,yi)的更新:
w<----w+yixi
b<----b+yi
取w0=0 b0=0 则迭代n次,有
w---yixi b---
yi 令
i=
有:
感知机学习算法对偶形式:
1.--0 b---0
2.在训练集中选取(xi,yi)
3.如果 <=0,分类错误:
4.----
+
b--b+
yi
5.转至2直到没有错误分类
输出最终感知机形式:
当训练集可分时,存在无穷多个解,可能由于初值以及迭代顺序不同而导致解不同
若想确定唯一解,需要对分离超平面增加约束条件,例如SVM