感知机是一种简单的二类分类的线性分类模型,用于处理可以线性可分的二分类问题。感知机对应于输入空间(特征空间)中将实例划分为正负两类的分离超平面,属于判别模型。
感知机模型
- 模型。从输入空间到输出空间有如下函数
f(x)=sign(wTx+b)
其中 w 为权值,b 为偏执。生成的超平面为
wTx+b=0
其中 w 为超平面的法向量,b 为超平面的截距,超平面到原点的距离为 −b||w|| .
感知机策略
- 策略。损失函数选取为误分类点到超明面的总距离
L(w,b)=−∑xi∈Myi(wTxi+b)
其中 M 为误分类点的集合。
感知机算法
原始算法
采用随机梯度下降法,极小化过程不是一次使用M中所有的误分类点进行梯度下降,而是每次随机选取一个误分类点使梯度下降。算法为
其中 0≤η≤1 为学习速率。
选取初值 w,b
while L>0
随机选一个样本:
if yi*(w*xi+b)<=0
w=w+eta*yi*xi
b=b+eta*yi
感知机学习算法由于采用不同的初值或选取不同的误分类点,解可以不同。
对偶算法
上述原始算法对权值修正为
w←w+ηyixib←b+ηyi
若修改n次,则 w,b 的关于 (xi,yi) 增量分别是 αiyixi 与 αiyi ,这里 αi=niη , ni 表示 (xi,yi) 被选为误分类点的次数。则最后的权值参数可以表示为
w=∑i=1Nαiyixib=∑i=1Nαiyi
实例点更次次数越多,意味着它距离分类超平面越近,也就越难正确分类,这样的点对学习结果影响最大。
算法:
1. α←0,b←0
2. 在训练集中选取数据 (xi,yi)
3. 如果 yi(∑j=1Nαjyjxj⋅xi+b)≤0
αi=αi+ηb=b+ηyi
4. 转到2,直到没有误分类数据
对偶形势中,训练实例仅以内积的形式出现,则可以离线的计算出内积并存储到矩阵中,这个矩阵则为Gram矩阵
G=[xi⋅xj]N×N