机器学习-白板推导6 SVM 上

1.SVM 核心知识点

Support Vector Machine(SVM) 有三宝,间隔,对偶,核技巧。其分类有:

  1. Hard-margin SVM
  2. Soft-margin SVM
  3. Kernel SVM

本文将介绍软硬间隔部分, 核技巧等将在下篇中介绍。

2. SVM模型引入

image-20210528173538769

SVM模型就是找到一个超平面将两类数据点分隔开,这个超平面记为。如上图所示,这样的超平面很多,如,那么哪个最好呢?直觉上,离这些点距离越远越好。间隔就是相对距离最近的点与超平面的距离,首先先将问题数学化定义。

对于数据集,其中。要将数据点分隔开的间隔最大化,并且要将所有点分类正确:

因为约束条件可改写为:

对于间隔,即样本空间点到超平面的最小距离可写作:

进一步简化问题,式2中约束是,那么。这时最小间隔就是, 对于所有点都应该大于等于最小间隔,。目标函数整理后:

但是有个问题函数间隔,就是放大为2倍时,函数间隔也会扩大。因此要约束。不妨令, 并且这时式4中等价于 (最大导数变为最小其互导数,并且为了简化计算改写下)。这时目标函数改写为:

3. SVM 模型求解(硬间隔)

上节中式5 是带约束的优化问题,可以用拉格朗日乘子法来求解。

其拉格朗日函数为:

其中. 如果其等于0,就没有约束条件了,变为直接取最小值。

关于原因:因为要目标函数的梯度和可行域的梯度要平行且同向,。如果小于0,就反向了。

image-20210530105847439

具体看这个KKT

那么式6和式5约束问题为什么等价呢?

有:

  • ,那么 将取到无穷大,所以

  • , 当时, 则取最大值0,因此

    综上所述,将取。这样隐式地保证了 来满足约束条件。

现在原问题:

将其转化为对偶问题是

简单介绍下对偶问题,具体看《统计学习方法》 P448。

式7中拉格朗日乘子法的极小极大问题的对偶问题是极大极小问题。

并满足,因为对于该不等式,最优解在最大值里面取最小的,而是最小值里面取最大的。类似于“宁为鸡头不为凤尾”。

弱对偶关系就是:

强对偶关系就是:

求解参数值

对于目标函数 (转换为求解其对偶问题):

简化下方便计算:

  1. 对参数求导:
  1. 对参数求导,先将式11代入式10,然后求导。

对其求导得:

这里是样本数据的线性组合。

  1. 求解 , 依旧将代入式12得:

现在问题简化为:

4. SVM KKT条件导出

KKT条件实际上由以下部分构成:

  1. 目标函数和所有约束条件组成的拉格朗日函数的梯度为0。
  2. 互补松弛条件(complementary slackness), 就是不等式约束和其拉格朗日系数积为0。
  3. 不等式约束条件
  4. 等式约束条件
  5. 拉格朗日系数约束

其中,互补松弛条件解释跟小节3中部分类似,还可以看看关于这个得解释拉格朗日乘子法 - KKT条件 - 对偶问题

导出式15的KKT条件为:

其中式16中第二排等式就是互补松弛条件。满足KKT条件是原问题的对偶问题具有强对偶关系的充分条件,当然也包括目标函数和不等式约束为凸函数,等式约束为仿射函数这些必备条件。

根据小节3中,

那么呢?这时使用互补松弛条件来求解,

再解释下具体SVM中这个条件是怎么来的。如下图,图来自于 Wiki SVM

image-20210528170838009

图中距离分割超平面最近的点都落在上,这些点叫支持向量。SVM算法最核心部分就是找支持向量。

对于支持向量,必然有,那么才有可能取值()。其它点的话,

不妨假设一个支持向量为那么,

总结

到此为止,我们求出了硬间隔的SVM的最优解,模型为:

其中,

并且KKT条件是原问题的对偶问题有强对偶关系的充要条件,利用支持向量求解SVM计算相对简单。支持向量寻找过程是通过代入数据点,从满足式15中当时,对应数据点就是是支持向量。具体计算算法看SVM SMO这节。

5. SVM 软间隔

上面介绍的SVM要求数据集能完全被分开,不能有数据点噪声落在硬间隔区间内,但是数据集必然有噪声等落在这个区间。Soft Margin就是允许一些点落在margin内。

image-20210531155653799

如上图中,对于要分类的两类数据点,落入蓝色实线之间的点就是被误分类的,图中A点,那么。如果有多个呢?我们引入指示函数有:

其中是指示函数,不连续,不可导。

不妨将其转换为距离来看损失函数。

  • ,正确分类,损失为0
  • ,距离为图中,

用max来合并下这些距离,,这个函数叫hinge loss。

现在式5,加上合页损失就是目标函数:

其中,C是惩罚系数,有点像正则化中的系数。

, 因为其是距离。式19就可以简化为:

如上图中,就是允许误分类点到分类边界的距离,也可以认为是允许误分类点的范围。接下来也可以用拉格朗日乘子法求解。

Inference

[1] 看了这篇文章你还不懂SVM你就来打我

[2] 支持向量机SVM(Support Vector Machine)笔记

[3] 支持向量机

[4] 拉格朗日对偶性