支持向量机(支持向量机 - 图1)是在深度学习崛起之前被大家广泛研究和使用的一种分类算法。关于SVM有一句口头禅:“SVM有三宝,间隔,对偶,核技巧”
SVM的分类:
1、Hard-Margin SVM(最大间隔分类器)
2、Soft-Margin SVM
3、Kernal SVM

1硬间隔SVM-模型定义

给定一个二分类数据集支持向量机 - 图2,如果两类样本是线性可分的,则存在一个超平面:
支持向量机 - 图3
svm chaopingmian.png
那么最终得到的决策函数就是:
支持向量机 - 图5
这里不涉及概率,是一个判别模型。
如果不同类别线性可分,那么这样的超平面就有无数个,那么哪一个才是最好的?我们希望得到的是一个鲁棒性好,泛化能力强的分类模型。
从几何意义上讲,我们希望数据离这个超平面的间隔足够大。
定义一个间隔函数支持向量机 - 图6,用数学语言表达“最大间隔分类器”:
支持向量机 - 图7
样本支持向量机 - 图8到分割超平面的距离为:
支持向量机 - 图9
我们定义间隔函数支持向量机 - 图10为最短距离:
支持向量机 - 图11
因此,数学描述可以表示成:
支持向量机 - 图12
支持向量机 - 图13支持向量机 - 图14无关,因此支持向量机 - 图15
支持向量机 - 图16
支持向量机 - 图17,原式可写成:
支持向量机 - 图18
进一步写成优化问题的标准形式:
支持向量机 - 图19
这是一个二次凸优化问题,在样本维度,样本个数,支持向量机 - 图20维度不是很高的情况下,可以使用现成的软件求解。
为什么能直接令支持向量机 - 图21,这里就涉及到几何间隔和函数间隔的差别问题。

2硬间隔SVM-模型求解-引出对偶问题

如果数据量比较大,或者维度较高(采用核函数映射到高维空间中)时,计算量会非常大,无法直接求解。既然这是个带约束的二次凸优化问题,我们希望引出其对偶问题支持向量机 - 图22
原问题支持向量机 - 图23
支持向量机 - 图24
既然这是个带约束优化问题,首先应写出其支持向量机 - 图25乘子,其拉格朗日函数为:
支持向量机 - 图26
那么,原问题就等价于
支持向量机 - 图27
从逻辑上理解:
支持向量机 - 图28支持向量机 - 图29的集合可以分成两部分:
svmdelta.png
对于样本点支持向量机 - 图31,如果支持向量机 - 图32支持向量机 - 图33
如果支持向量机 - 图34支持向量机 - 图35
因此,支持向量机 - 图36,相当于在求该问题是会将不满足支持向量机 - 图37的空间“丢掉”
引出对偶问题:

支持向量机 - 图38
关于对偶理论:
弱对偶关系:支持向量机 - 图39
强对偶关系:支持向量机 - 图40
由于本问题是一个凸优化问题,自然满足强对偶关系。(此处未证明)
求对偶问题,求偏导:
支持向量机 - 图41,将其带入支持向量机 - 图42得到:
支持向量机 - 图43
支持向量机 - 图44,将其带入支持向量机 - 图45得到:
支持向量机 - 图46
因此,对偶问题等价于:
支持向量机 - 图47

3硬间隔SVM-模型求解-引出KKT条件

将上述对偶问题的等价形式写成求最小化问题,即:
支持向量机 - 图48
已经求出支持向量机 - 图49
定理:原对偶问题满足强对偶关系支持向量机 - 图50满足KKT条件(此处未证明)
原问题的KKT条件包括:
支持向量机 - 图51
支持向量的含义:
根据 KKT 条件中的互补松弛条件, 最优解满足支持向量机 - 图52。如果样本支持向量机 - 图53不在约束边界上,支持向量机 - 图54,其约束失效;如果样本
支持向量机 - 图55在约束边界上,支持向量机 - 图56。这些在约束边界上的样本点称为支持向量(Support Vector),即离决策平面距离最近的点。如图所示:
image.png
已知存在样本点支持向量机 - 图58在约束边界上,满足支持向量机 - 图59,求出:
支持向量机 - 图60
我们重新看支持向量机 - 图61支持向量机 - 图62,由于不在约束边界上的样本支持向量机 - 图63以及支持向量机 - 图64,因此支持向量机 - 图65支持向量机 - 图66可以看作约束边界上点的线性组合(这是支持向量的真实含义)
最终我们找到了满足“最大间隔分类器”含义的超平面,即支持向量机 - 图67,决策函数为:
支持向量机 - 图68
支持向量机的决策函数只依赖于支持向量机 - 图69的样本点,即支持向量支持向量机 - 图70

4软间隔SVM-模型定义

我们回顾一下硬间隔SVM,它的前提条件就是:样本数据线性可分。因此如果样本数据无法满足线性可分条件,我们该怎么办?
再考虑另外一种情况,如果样本数据本身就具有噪声,这样的话我们得到的超平面其实是不具有鲁棒性的,这就是提出软间隔SVM的原因。
支持向量机 - 图71的思想就是允许一点点错误”,用数学语言描述就是:
支持向量机 - 图72
我们回顾一下原问题,这是一个带约束的优化问题,硬间隔的“硬”其实就体现在它的条件约束很强,要求所有样本点都分类正确。如果我们允许分类器犯一点点错误,一个直接的想法就是不要求所有的样本都分类正确,而是要求尽可能多的样本分类正确。
支持向量机 - 图73
因此,支持向量机 - 图74就可以用常见的损失函数来表示。
1、0-1损失函数
支持向量机 - 图75
但0-1损失函数的数学性质不太好,是不连续的。因此,我们不采取这种方法。
2、hinge损失函数
考虑到距离是连续的,我们定义如果满足约束条件支持向量机 - 图76,我们定义支持向量机 - 图77;如果不满足,我们定义支持向量机 - 图78,将二者合并,得到:
支持向量机 - 图79
3、指数损失函数
支持向量机 - 图80
4、对率损失函数
支持向量机 - 图81
loss functions.png
引入松弛变量支持向量机 - 图83,松弛因子支持向量机 - 图84,原问题可以记为:
支持向量机 - 图85

5约束优化问题-弱对偶性证明

前面涉及到了优化问题的对偶关系,此处证明一下弱对偶关系。考虑一个标准形式的优化问题(原问题):
支持向量机 - 图86
其中,自变量支持向量机 - 图87,该问题的定义域为支持向量机 - 图88该问题的支持向量机 - 图89函数支持向量机 - 图90为:
支持向量机 - 图91
则原问题等价于下列问题
支持向量机 - 图92
从逻辑上证明:
记原问题的可行域为支持向量机 - 图93,原优化问题也就是在支持向量机 - 图94中寻找一点支持向量机 - 图95,使得支持向量机 - 图96满足支持向量机 - 图97
如果支持向量机 - 图98,即存在支持向量机 - 图99使得支持向量机 - 图100支持向量机 - 图101,此时支持向量机 - 图102
如果支持向量机 - 图103,即支持向量机 - 图104满足原问题的所有约束条件,此时支持向量机 - 图105
因此,支持向量机 - 图106
上述等价问题的对偶问题为:
支持向量机 - 图107
定义支持向量机 - 图108对偶函数支持向量机 - 图109
支持向量机 - 图110
此对偶函数的意义就是构成了原问题最优值的下界,设原问题的最优值为支持向量机 - 图111:即对于任意的支持向量机 - 图112支持向量机 - 图113下式成立
支持向量机 - 图114
证明:
对于支持向量机 - 图115满足支持向量机 - 图116,则支持向量机 - 图117
因此
支持向量机 - 图118
即对于每一个可行点支持向量机 - 图119均满足支持向量机 - 图120,因此上述不等式成立。
因为不等式支持向量机 - 图121恒成立,因此不等式支持向量机 - 图122也成立,即:
支持向量机 - 图123
这就是弱对偶性。对偶问题支持向量机 - 图124原问题。

6约束优化问题-对偶关系之几何解释

我们定义一个集合:
支持向量机 - 图125
利用集合支持向量机 - 图126可以很容易表达优化问题的最优值支持向量机 - 图127
支持向量机 - 图128
为了求以支持向量机 - 图129为自变量的对偶函数,我们在支持向量机 - 图130上极小化仿射函数
支持向量机 - 图131
得到
支持向量机 - 图132
假设支持向量机 - 图133,如果支持向量机 - 图134则成立支持向量机 - 图135,因此有:
支持向量机 - 图136
即若对偶性成立。针对只有一个不等式约束的问题,下图描述了上述几何意义。
image.png
给定支持向量机 - 图138,在集合支持向量机 - 图139上极小化支持向量机 - 图140,得到斜率为支持向量机 - 图141的支撑超平面,在支持向量机 - 图142轴上的截距即为支持向量机 - 图143
image.png
对偶可行的三个支持向量机 - 图145对应的支撑超平面,这三个值中包含最优值支持向量机 - 图146,强对偶性此时不成立支持向量机 - 图147

7约束优化问题-对偶关系之Slater Condition

强对偶性:
如果等式
支持向量机 - 图148
成立,即最有对偶 间隙为0,则强对偶性成立。
一般情况下,强对偶性不成立。那么什么时候满足强对偶关系呢?如果原问题是凸问题,即可以表述为如下形式
支持向量机 - 图149
其中,函数支持向量机 - 图150是凸函数,强对偶性通常是成立的(不绝对)。除了凸性条件外,还有很多强对偶性成立的条件,这些条件称为约束准则。
这里给出满足强对偶关系的一个充分不必要条件
凸优化问题+Slater Condition支持向量机 - 图151满足强对偶关系
Slater Condition:
存在一点支持向量机 - 图152(定义域相对内部)使得下式成立
支持向量机 - 图153
松弛的Slater Condition:
当不等式约束函数支持向量机 - 图154中有一些是仿射函数时,可以弱化一些条件,这里我们假设前支持向量机 - 图155个不等式约束函数是仿射函数,弱化的Slater条件:存在一点支持向量机 - 图156使得
支持向量机 - 图157
从几何上看我们看Slater条件,也除了满足局部凸之外,还必须在支持向量机 - 图158的区域内至少存在一点,保证切线不是竖直的。
image.png
我们重新看SVM问题,这是个凸二次规划问题(目标函数是二次型函数,约束函数是仿射函数),天然满足Slater条件+凸优化问题,因此满足强对偶关系,可以使用KKT条件。

8约束优化问题-对偶关系之KKT条件

原问题为:
支持向量机 - 图160
假设目标函数和约束条件函数均可微。
其Lagrange函数为
支持向量机 - 图161
Lagrange对偶函数为:
支持向量机 - 图162
对偶问题为:
支持向量机 - 图163
又提出了一个满足强对偶关系的一个充分不必要条件:
支持向量机 - 图164
自然满足弱对偶关系:
支持向量机 - 图165
满足强对偶关系支持向量机 - 图166的条件
首先需要满足原始约束条件,即
支持向量机 - 图167
其次,由于支持向量机 - 图168,因此最后一个不等号取支持向量机 - 图169,需满足:
支持向量机 - 图170
第一个不等号取支持向量机 - 图171,需满足:
支持向量机 - 图172
因此KKT条件为:

支持向量机 - 图173