铺垫
线性可分:
称两个集合线性可分
最大间隔超平面:
能将两个线性可分的集合正确划分开的平面就是超平面:$\omega^Tx+b=0$
为了使这个超平面更具鲁棒性,我们会去找最佳超平面,以最大间隔把两类样本分开的超平面,也称之为最大间隔超平面。
- 两类样本分别分割在该超平面的两侧;
- 两侧距离超平面最近的样本点到超平面的距离被最大化了。
支持向量(Support Vector):
样本中距离超平面最近的一些点,这些点叫做支持向量。
SVM最优化问题
找到一个最优超平面划分两类样本$y\in{1,-1}$。
对任意超平面:
任一点$x$到其上的距离为:
设支持向量到超平面的距离为$d$(为了便于区分),对样本集${x,y}$有:
也就是
对支持向量${x’,y’}$有:
我们的目标是在样本集中,选取最大的$d$,即
在此我们做一些处理:
探究一下距离会如何变换:
发现并不影响距离。
那么我们可令:
由此我们可以重写以上的优化问题:
其等价于
这就是最后我们要优化的约束问题。
拉格朗日数乘法
KKT条件
只看不等式的约束条件(无推导直接用):
要优化:
KKT条件给出了判断$\pmb{x^*}$是否为最优解的必要条件,即:
若要求解上述优化问题,必须满足条件:
其实都能解释的,只挑第四个必要条件解释,分两种情况:1:解在不等式约束条件外部,则可无视该不等式约束条件;2:解在不等式边界条件的边界上,此时不等式为0。
对偶化
假定有m个样本。
其拉格朗日数乘函数:
要得:
可以先去go to
插入一个小插曲,其实很重要,但是可能会产生困扰,先在这打个标记
在这之前,插入一个对偶化,这一步可以暂时不看,推出超平面后可以回来看看。
我们记一个函数:
对任意点(不止是样本点)满足:
则
那么:
与我们的优化目标相同。
一般而言,有:
如果问题是凸优化问题,则有强对偶关系:
由此我们的优化问题可为:
go to
由KKT条件:
又有:
解得:
注意$\omega\in R^n$以及$x_i\in R^n$
有:
还有未知系数$\mu_i$,此时可以回看小插曲。
有:
好了只要解决最后这个问题就可以了。
SMO(Sequential Minimal Optimization) 算法求解
选择需要更新的两个参数
固定其他参数,由等式约束条件解得
对于仅有一个约束条件的最优化问题
只要让对于其的导数为0即可,求出$\mu_i$
多次迭代直至收敛。
最后可得:
对任意一个支持向量$x_s$,都满足:
当然,取均值最好。
决策
已经获得超平面,将其带入决策函数即可得样本的分类。
软间隔
实际中,完全线性可分的样本是很少的。那么我们可以允许一些样本落在隔离带内,即允许有部分样本:
为了度量我们的松弛程度引入松弛变量
对每个样本:
由此,优化目标为:
C为惩罚因子,越大对离群的样本惩罚就更大,也就是越不关注异常样本。
构造拉格朗日函数
由之前的强对偶化,可有:
求导
有:
带回原函数
有:
则无需最大化$\lambda$:
最后SMO优化即可
这边要注意一个问题,在间隔内的那部分样本点是不是支持向量?
我们可以由求参数$\omega=\sum^m_{i=1}\mu_iy_ix_i$ 的那个式子可看出,只要$\mu_i>0$ 的点都能够影响我们的超平面,因此都是支持向量。(??)
核函数
我们刚刚讨论的硬间隔和软间隔都是在说样本的完全线性可分或者大部分样本点的线性可分。但我们可能会碰到的一种情况是样本点不是线性可分的。
把样本映射到高维空间去:
常见核函数
- 线性核函数
- 多项式核函数
- 高斯核函数
优缺点
6.1 优点
- 有严格的数学理论支持,可解释性强,不依靠统计方法,从而简化了通常的分类和回归问题;
- 能找出对任务至关重要的关键样本(即:支持向量);
- 采用核技巧之后,可以处理非线性分类/回归任务;
- 最终决策函数只由少数的支持向量所确定,计算的复杂性取决于支持向量的数目,而不是样本空间的维数,这在某种意义上避免了“维数灾难”。
6.2 缺点
- 训练时间长。当采用 SMO 算法时,由于每次都需要挑选一对参数,因此时间复杂度为$O(N^2)$ ,其中 N 为训练样本的数量;
- 当采用核技巧时,如果需要存储核矩阵,则空间复杂度为$O(N^2)$ ;
- 模型预测时,预测时间与支持向量的个数成正比。当支持向量的数量较大时,预测计算复杂度较高。
因此支持向量机目前只适合小批量样本的任务,无法适应百万甚至上亿样本的任务。