之前跟着统计学习方法对支持向量机进行了推导和学习,这次跟着datawhale和西瓜书又对支持向量机进行了深入复习,发现很多没有注意到的点,更为理解一些操作。
6.1 间隔与支持向量
从几何角度,对于线性可分数据集,支持向量机就是找距离正负样本都最远的超平面,相比于感知机,其解是唯一的,且不偏不倚,泛化性能更好。
n维空间的超平面(, 其中 , )
(1)超平面方程不唯一
(2)法向量和位移项确定一个唯一超平面
(3)法向量垂直于超平面
(4)法向量指向的那一半空间为正空间
(5)任意点x到超平面的距离公式
由于几何间隔最大的超平面就是距离正负样本都最远的超平面,为了最大化该间隔,同时为了使最优解固定为一个,我们将优化目标定为
6.2 对偶问题
引入拉格朗日乘子对这个凸二次规划问题进行变形,得到
s.t.
为什么要转变成对偶问题:
1. 对偶问题一定为凸优化问题,更容易求解。
2.对偶问题的复杂度和数据量成正比,而原问题与特征的维度成正比,从这点上说,SVM特别适合数据集小但特征复杂的情况。
3.对偶问题可以自然而然的引入核函数,进而推广到非线性分类。
此时对
求偏导,代入上式,可以得到对偶问题
解出后, 求出后即可得到模型。上述过程需要满足KKT条件(附录B.1)。
因此,训练结束后,SVM模型仅与支持向量相关,大部分的训练样本都不需要保留。
为了高效逼近或者解决这个凸优化问题,一般会使用比较著名的SMO算法,基本思想是固定一个参数,来求得另一个参数的更新。
6.4 软间隔与正则化
当数据集不再是线性可分的,即不存在一个超平面可以很好地使得训练样本在特征空间中线性可分,或者即使可以也会面临过拟合的问题时,就需要允许SVM在一些样本上出错,也就是需要引入“软间隔”的概念。
从数学角度来说,软间隔就是允许某些样本不满足约束
但是,不满足约束的样本又应当尽可能少,所以这时候会加入一个参数,当它取有限值时,优化目标可以允许一些样本不满足约束。
这里L是损失函数,由于0/1损失函数不连续不可导,一般用替代损失函数,如合页损失,指数损失或者对率损失。
此时上式的第一项可以被称为结构风险,而第二项可以称为经验风险,参数用于对二者进行折中。
6.5 支持向量回归
一般来说,回归问题跟前面讨论的SVM根源不是那么一致。
相比于线性回归用一条线来拟合训练样本,SVR采用一个以 为中心,宽度为2的间隔带来拟合数据样本,不在袋子上的则以偏离带子的距离作为损失(类比均方误差),来迫使间隔带从样本最密集的中心穿过。
SVR将问题形式化为与SVM类似的形式,但与之不同的是,第一项的是L2正则项,其一可以防止过拟合,其二能保证优化目标与SVM一致,这也是不采用均方误差的原因之一。同时,SVR的间隔带两边可以采用不同的松弛变量,来实现可变的软间隔。