关于SVM的笔记,因为涉及多次对偶问题以及线性规划问题的求解,故记录下公式公式推导过程,以便对SVM的基本原理有更进一步的了解。
样本点的表示
设有个样本点
。
其中每个样本点为 维
。
每个样本的标签取值为 ,
表示属于该标签,
表示不属于
超平面的表示
设存在d维的超平面:
令
超平面方程可以写成:
(1.1)
为超平面的法向量,
为超平面的位移。
特殊地,当d=2时超平面是一条直线: 斜率
,截距
正确分类的表示
如果一个样本正确分类,则必有:
(1.4)
也就是如果超平面能正确分类样本点,则当样本点时,代入
到超平面方程后得到的值是大于
的,反之当样本点
时,代入
到超平面方程后得到的值是小于
的。注意到
的取值仅仅是符号的作用,所以可以把式(1.4)简化为:
(1.5)
样本点到超平面的距离
一个点 到超平面的距离可表示为
(1.2)
用矩阵的形式表示W和X,同时用 表示
, 则式
可以写成:
(1.3)
目标函数的确立
当样本集严格线性可分时,存在不止一种和
的组合满足上式。因此必须找出最优的超平面来分割。设
的样本为正样本,
的样本为负样本, 则最优的定义就是离超平面最近的正样本和负样本的距离都最大。设间隔为离超平面最近的正样本和负样本的距离之和,则目标就是找出一组
和
使得间隔的值最大。
设经过最近正样本的超平面为 也即
, 经过最近负样本的超平面为
。由于
相等故两直线平行,间隔为两平行线的距离:
(1.6)
由于最大化比较难计算,因此转化成最小化
因为我们要在正确分类的前提下求间隔的最大值,也就是结合式(1.5)和(1.6)转化成一个在一定约束条件下的规划问题(1.7)。
(1.7)
整合约束和目标函数
在特定约束下求最值时麻烦的,因为不能直接求目标函数最值,然后再去比较是否符合约束。最简单的方式就是引入拉格朗日算子将目标函数和约束整合在一起。设是拉格朗日算子。
因为 可写成
,则有
(1.8)
原问题转化为一个对的最大最小值问题。也就是:
(1.9)
由于先求的最值较为困难,所以再转化为
(1.10)
对式(1.10)的求偏导数得到:
(1.11)
(1.12)
将式(1.11)和(1.12)代回(1.10)可得到仅关于的函数(1.13):
且
(1.13)
根据KTT采用SMO算法解出然后确定
和
。由于超平面是由
和
确定,因此超平面确定,至此模型训练完成。
从线性可分到不完全线性可分
为了使某些样本可以不满足约束, 引入松弛变量C。于是式(1.8)可以改写成
(1.8)
其中函数可以有以下选择:
- 0/1损失函数:
- hinge损失函数:
- 指数损失函数:
- 对率损失函数: