4.SVM
SVM(支持向量机)
包括:线性可分支持向量机(硬间隔最大化);
线性支持向量机(近似线性可分,软间隔最大化)
非线性支持向量机(kernel trick)
如图所示的分类演示。代码来源:机器学习实战。
图中圈出来的正是所谓的支持向量。SVM是一种决策机器,只提供分类的结果,并不提供后验概率。
补充一下(PRML):分类问题划分为2个阶段,推断阶段和决策阶段。推断阶段,我们使用训练数据学习后验概率模型。决策阶段使用这些后验概率进行分类。还有一种方式,同时解决两个问题,简单学习一个函数,做判断。该函数又称为判别函数。
相应的直接使用判别函数的有很多缺点,而使用后验概率有一下优点(具体见PRML 1.5节):
1、最小化风险。
2、拒绝选项
3、补偿先验概率
线性分类问题模型如:
y(x,w)=wTx+b (把b截距项拿出来)
假设空间是线性可分的,分离超平面 wTx+b=0(2维平面:w1x1+w2x2+b=0)
相应的决策函数 f(x)=sign(wTx+b) , wTx+b>0 去正例(y=+1),反之取负例(y=-1)。
如图很明显的,我们现在想让 wTx+b=−1 和 wTx+b=1 之间的距离最大化。
并且,对于所有的样本 y(wTx+b)>=1 (限制条件)。最小取1的点,即支持向量点。使分类效果更好,实际上是使两条平行线之间的距离最大,两平行线间的距离公式:即
l=|1−(−1)|||w||=2||w||
即转换成求w模的最小值。也是 min12||w||2
引入拉格朗日函数,
an
>=0是拉格拉日乘子,限制条件
y(wTx+b)>=1
,根据拉格朗日对偶性,原问题的对偶问题是极大极小问题,即先求
L(w,b,a)
对w,b的极小值,再求对
an
的极大值。
步骤1
求极小:
L(w,b,a)=12||w||2+∑Nn=1an{y(wTx+b)−1}
令 L(w,b,a) 的导数为0 ,对我们要求的分界面参数,求导等于0,得到:
w=∑Nn=1anynxn
0=∑Nn=1anyn
代入原式。得到:
minw,bL(w,b,a)=−12∑Mm=1∑Nn=1amanymyn(xmxn)+∑Nn=1an
步骤2:求 minw,bL(w,b,a) 对a的极大值。注意限制条件:
0=∑Nn=1anyn
an >=0
具体推导,见统计学习方法。
常用SMO,算法来寻找a值。统计学习方法(P128)