SVM(支持向量机)
1.支持向量
1.1 线性可分
首先咱们先来了解下什么是线性可分
在二维空间上,两类点被一条直线完全分开叫做线性可分。
严格的数学定义是:
D0与D1是 n 维欧氏空间中的两个点集。如果存在 n 维向量 w 和实数 b,使得所有属于D0的点x都有wx + b >0,而对于所有属于 D1的点x则有wx+b<0,则咱们称为D0与D1线性可分。
1.2 最大间隔超平面
从二维扩展到多维空间中时,将D0与D1完全划分开的wx+b=0就成了一个超平面。
为了使这个超平面更具鲁棒性,我们会去找最佳超平面,以最大间隔把两类样本分开的超平面,也称之为最大间隔超平面。
两类样本分别分割在该超平面的两侧;
两侧距离超平面最近的样本点到超平面的距离被最大化了。
1.3 支持向量
样本中距离超平面最近的一些点,这些点叫做支持向量。
1.4 SVM优化问题
2.对偶问题
2.1 拉格朗日乘数法
1.等式约束优化问题
拉格朗日程数法是等式约束优化问题:
2.不等式约束优化问题
而咱们现在面对的是不等式优化问题,针对这种情况其主要思想是将不等式约束条件转变为等式约束条件,引入松弛变量,将松弛变量也是为优化变量。
也就是说,最大的里面挑出来的最小的也要比最小的里面挑出来的最大的要大。这关系实际上就是弱对偶关系,而强对偶关系是当等号成立时,即:
如果f 是凸优化问题,强对偶性成立。而我们之前求的 KKT 条件是强对偶性的充要条件。
3. SVM优化
我们已知 SVM 优化的主问题是:
可以看出来这是一个二次规划问题,问题规模正比于训练样本数,常用 SMO(Sequential Minimal Optimization) 算法求解。
SMO(Sequential Minimal Optimization),序列最小优化算法,其核心思想非常简单:每次只优化一个参数,其他参数先固定住,仅求当前这个优化参数的极值。我们来看一下 SMO 算法在 SVM 中的应用。
4. 软间隔
4.1 解决问题
在实际应用中,完全线性可分的样本是很少的,如果遇到了不能够完全线性可分的样本,应该怎么办?比如下面这个:
于是咱们就有了软间隔,相比于硬间隔的苛刻条件,咱们允许个别样本点出现在间隔带里面,比如:
允许部分样本点不满足约束条件:
4.2 优化目标及求解
增加软间隔后咱们的优化目标变成了:
这边要注意一个问题,在间隔内的那部分样本点是不是支持向量?
5. 核函数
5.1 线性不可分
我们刚刚讨论的硬间隔和软间隔都是在说样本的完全线性可分或者大部分样本点的线性可分。
但我们可能会碰到的一种情况是样本点不是线性可分的,比如:
这种情况的解决方法就是:将二维线性不可分样本映射到高维空间中,让样本点在高维空间线性可分,比如
5.2 核函数的作用