昔闻一工具,广用于学者撰文也。凡用其者,皆叹妙哉。今吾得之,尽己之力学也。又闻一法,分类甚妙。学之既月矣,未尝少怠,仍难尽解其妙,故撰此文以记吾之所学。
SVM基础知识
SVM (Support Vector Machine),即支持向量机是在解决分类问题时常用的一种方法,尤其是解决二分类问题
假设存在一个样本集
D
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
.
.
.
,
(
x
m
,
y
m
)
}
,
y
i
∈
{
−
1
,
+
1
}
D = \{(\boldsymbol{x_1}, y_1), (\boldsymbol{x_2}, y_2), ... , (\boldsymbol{x_m}, y_m)\}, y_i \in \{-1, +1\}
D={(x1,y1),(x2,y2),...,(xm,ym)},yi∈{−1,+1}
在该样本空间中划分一个超平面将样本点分为两类,如图中紫色和黄色的两种类型的样本点。
该超平面表示为:
w
⊤
x
+
b
=
0
\boldsymbol{w^\top} \boldsymbol{x} + b = 0
w⊤x+b=0
通过该超平面使得超平面上方和下方的样本点分开,用代数表示如下:
{
w
⊤
x
i
+
b
≥
1
,
y
i
=
+
1
w
⊤
x
i
+
b
≤
−
1
,
y
i
=
−
1
\left\{ \begin{array}{lr} \boldsymbol{w^\top} \boldsymbol{x_i} + b \ \ge 1,\ &y_i = +1 \\ \boldsymbol{w^\top} \boldsymbol{x_i} + b \ \le -1,\ &y_i = -1 \end{array} \right.
{w⊤xi+b ≥1, w⊤xi+b ≤−1, yi=+1yi=−1
将样本点划分为两个类别的超平面可以有多个,然而为了保证方法的泛化性能,使其受扰动时对分类结果的影响尽可能小,则我们需要从众多划分超平面中寻找到一个最优的超平面。此时引入支持向量和间隔的概念。
支持向量:两个类别中距离分割超平面最近的点,记为 ( x i , ± 1 ) (\boldsymbol{x_i}, \pm1) (xi,±1)
间隔:两个异类的支持向量和分割超平面间的距离之和。每个支持向量到分割超平面的距离可以由如下公式计算(这里指的是硬间隔):
r
=
1
∥
w
∥
r = \frac{1}{\Vert \boldsymbol{w} \Vert}
r=∥w∥1
则间隔为:
d
=
2
r
=
2
∥
w
∥
(1)
d = 2r = \frac{2}{\Vert \boldsymbol{w} \Vert}\tag1
d=2r=∥w∥2(1)
很显然,间隔越大,当需要预测的样本点出现时,分割超平面的分类结果准确性越高,则使分割超平面有更好的鲁棒性。因此我们需要求最大的间隔
max
w
,
b
d
=
max
w
,
b
2
∥
w
∥
\max\limits_{\boldsymbol{w},b} d = \max\limits_{w,b} \frac{2}{\Vert \boldsymbol{w} \Vert}
w,bmaxd=w,bmax∥w∥2
等价于求如下的优化问题
min
w
,
b
1
2
∥
w
∥
2
s
.
t
.
y
i
(
w
⊤
x
i
+
b
)
≥
1
,
i
∈
[
m
]
(2)
\begin{aligned} \min\limits_{w,b}\ &\frac{1}{2}\Vert \boldsymbol{w} \Vert^2 \\ s.t.\ &y_i(\boldsymbol{w^\top} \boldsymbol{x_i}+b) \ge 1, \quad i \in [m]\tag2 \end{aligned}
w,bmin s.t. 21∥w∥2yi(w⊤xi+b)≥1,i∈[m](2)
那么如何求解这样一个带约束的多元二次规划问题呢?想要直接求解?也不是不可以,可以看李航老师《统计学习原理》书上的例题。
支持向量机分类
若是线性可分支持向量机的求解问题,并且所涉及的样本较小,容易直接求解。然而,当样本量大的时候,这样求解的方法就已经过于复杂了,并且当样本点线性不可分的时候,是无法直接求解的。接下来,先引入线性可分、线性支持和非线性支持向量机的概念。
线性可分支持向量机:数据集中的样本点是线性可分的,能够寻找到一个划分超平面使得硬间隔最大化。如下图所示:
线性支持向量机:这类模型对应的数据集中的样本是线性不可分的,即当用线性的超平面进行划分时,会有少部分异类点被错误分到另一边中。即,有少部分的点并不能够满足函数间隔大于等于1的条件。此时,不能够再寻求硬间隔的最大化,而是可以对每个样本点引入一个松弛变量
ξ
i
\xi_i
ξi,使得样本点并不需要严格满足函数间隔大于等于1,如公式所示:
y
i
(
w
⋅
x
+
b
)
≥
1
−
ξ
i
(3)
y_i(\boldsymbol{w} \cdot \boldsymbol{x} + b ) \ge 1-\xi_i\tag3
yi(w⋅x+b)≥1−ξi(3)
因此,求最大间隔的目标函数转换为如公式4所示的式子,其中C表示一个惩罚参数。因为对于线性不可分的支持向量机,不仅要使得间隔最大,同时要使得误分类的点尽可能少,用词引入惩罚参数。C越大,则对误分类的惩罚增大。
min
w
,
ξ
1
2
∥
w
∥
2
+
C
∑
i
=
1
N
ξ
i
(3)
\min\limits_{\boldsymbol{w},\xi}\frac{1}{2} \Vert \boldsymbol{w} \Vert^2 + C\sum_{i=1}^{N}\xi_i\tag3
w,ξmin21∥w∥2+Ci=1∑Nξi(3)
此外,由于线性支持向量机有部分点可能难以线性划分,会落到异类一侧,因此线性支持向量机的支持向量也有所变化。如图所示,其中支持向量有可能落在间隔边界上也有可能在间隔边界与分割超平面之间或者误分的一侧。其中,若支持向量在间隔边界上,即
1
−
y
i
(
w
⊤
x
i
+
b
)
=
0
1-y_i(\boldsymbol{w^\top}\boldsymbol{x_i}+b) = 0
1−yi(w⊤xi+b)=0;若支持向量在间隔边界与分割超平面之间,则
0
≤
1
−
y
i
(
w
⊤
x
i
+
b
)
=
ξ
i
≤
1
0 \le 1-y_i(\boldsymbol{w^\top}\boldsymbol{x_i}+b)=\xi_i \le 1
0≤1−yi(w⊤xi+b)=ξi≤1;若支持向量落在异侧,则
y
i
(
w
⊤
x
i
+
b
)
≤
0
y_i(\boldsymbol{w^\top}\boldsymbol{x_i}+b) \le 0
yi(w⊤xi+b)≤0,
1
−
y
i
(
w
⊤
x
i
+
b
)
=
ξ
i
≥
1
1-y_i(\boldsymbol{w^\top}\boldsymbol{x_i}+b)=\xi_i \ge 1
1−yi(w⊤xi+b)=ξi≥1。
非线性支持向量机:非线性支持向量机指的是数据集中的样本点在原空间中无法通过一个线性模型进行分割,而采用非线性的模型能够比较好的分割,如图所示的moons数据集,即是一个可以采用非线性较好分割的数据集。然而,非线性问题往往不好直接求解,我们可以通过一个非线性变换,将非线性问题转换为线性问题再进行求解。
假设原空间为欧氏空间
X
⊂
R
n
\mathcal{X} \subset \mathbb{R}^n
X⊂Rn,对于
∀
x
∈
X
\forall \boldsymbol{x} \in \mathcal{X}
∀x∈X可以表示为
(
x
1
,
x
2
,
…
,
x
n
)
⊤
(x^1,\ x^2,\ \ldots ,\ x^n)^\top
(x1, x2, …, xn)⊤,转换后的新空间为
H
\mathcal{H}
H,即希尔伯特空间,可能是有限维也可以是无限维空间。而在新的空间
H
\mathcal{H}
H中能够构建一个线性的超平面
w
⊤
x
′
+
b
=
0
\boldsymbol{w^\top} \boldsymbol{x'} + b = 0
w⊤x′+b=0对样本点进行良好的分割。那么如何进行这个非线性变换,将其转换为特征空间
H
\mathcal{H}
H呢?核技巧即是解决这个问题的好方法。然而由于核技巧较为复杂,我们先考虑如何求解最大间隔时的
w
\boldsymbol{w}
w以及b,之后再来讨论。
最大间隔目标的求解方法
样本数较小的线性可分支持向量机问题是比较好直接求解的,然而这样的问题在现实中几乎是不存在的,而复杂的非线性问题更是采用核函数,有可能将样本点映射到无限维空间中,此时原问题有无穷多个变量,无法直接求解。因此,我们在求解时考虑求解其对偶问题。相对于原问题而言,对偶问题常常能够得到更少的约束,同时能够更加自然地引入核函数求解非线性问题。
那么什么是对偶问题呢?下面以支持向量机中的拉格朗日对偶化来介绍对偶问题。
拉格朗日对偶化
以线性可分支持向量机为例,将如公式的目标函数利用拉格朗日对偶性将原始问题转换为对偶问题。再通过解对偶问题得到原始问题的解。在线性可分支持向量机中,优化目标为:
min
w
,
b
1
2
∥
w
∥
2
s
.
t
.
1
−
y
i
(
w
⊤
x
i
+
b
)
≤
0
,
i
∈
[
m
]
\begin{aligned} \min\limits_{w,b}\ &\frac{1}{2}\Vert \boldsymbol{w} \Vert^2 \\ s.t.\ &1-y_i(\boldsymbol{w^\top} \boldsymbol{x_i}+b) \le 0, \quad i \in [m] \end{aligned}
w,bmin s.t. 21∥w∥21−yi(w⊤xi+b)≤0,i∈[m]
令
g
(
w
)
=
1
2
∥
w
∥
2
g(\boldsymbol{w}) = \frac{1}{2}\Vert \boldsymbol{w} \Vert ^2
g(w)=21∥w∥2,再引入如下拉格朗日函数(其实就是将约束条件乘上一个拉格朗日乘子后再与目标函数相加),其中
α
i
≥
0
\alpha_i \ge 0
αi≥0。
L
(
w
,
b
,
α
)
=
g
(
w
)
+
∑
i
=
1
n
α
i
(
1
−
y
i
(
w
⊤
x
i
+
b
)
)
(5)
L(\boldsymbol{w}, b, \boldsymbol{\alpha}) = g(\boldsymbol{w}) + \sum_{i=1}^n \alpha_i(1-y_i(\boldsymbol{w^\top} \boldsymbol{x_i}+b))\tag5
L(w,b,α)=g(w)+i=1∑nαi(1−yi(w⊤xi+b))(5)
而拉格朗日函数
L
(
w
,
b
,
α
)
L(\boldsymbol{w}, b, \boldsymbol{\alpha})
L(w,b,α)的取值如下,当满足约束时,
α
i
(
1
−
y
i
(
w
⊤
x
i
+
b
)
≤
0
\alpha_i(1-y_i(\boldsymbol{w^\top}\boldsymbol{x_i}+b)\le0
αi(1−yi(w⊤xi+b)≤0,所以
max
L
(
w
,
b
,
α
)
=
g
(
w
)
\max L(\boldsymbol{w}, b, \boldsymbol{\alpha}) = g(\boldsymbol{w})
maxL(w,b,α)=g(w),则求
min
w
,
b
g
(
x
)
\min\limits_{\boldsymbol{w},b} g(x)
w,bming(x)等价于求满足约束时的
min
w
,
b
max
α
i
≥
0
L
(
w
,
b
,
α
)
\min\limits_{\boldsymbol{w},b} \max\limits_{\alpha_i \ge 0} L(\boldsymbol{w}, b, \alpha)
w,bminαi≥0maxL(w,b,α)。则其对偶问题为
max
α
i
≥
0
min
w
,
b
L
(
w
,
b
,
α
)
\max\limits_{\alpha_i \ge 0} \min\limits_{\boldsymbol{w},b} L(\boldsymbol{w}, b, \boldsymbol{\alpha})
αi≥0maxw,bminL(w,b,α)
L
(
w
,
b
,
α
)
=
{
[
−
∞
,
g
(
w
)
]
,
1
−
y
i
(
w
⊤
x
i
+
b
)
≤
0
;
[
g
(
w
)
,
+
∞
]
,
1
−
y
i
(
w
⊤
x
i
+
b
)
≥
0
;
(6)
\begin{aligned} L(\boldsymbol{w}, b, \boldsymbol{\alpha}) = \begin{cases} [-\infty, g(\boldsymbol{w})],\ &1-y_i(\boldsymbol{w^\top} \boldsymbol{x_i}+b) \le 0; \\ [g(\boldsymbol{w}), +\infty],\ &1-y_i(\boldsymbol{w^\top} \boldsymbol{x_i}+b) \geq 0; \end{cases} \tag6 \end{aligned}
L(w,b,α)={[−∞,g(w)], [g(w),+∞], 1−yi(w⊤xi+b)≤0;1−yi(w⊤xi+b)≥0;(6)
为什么能够用求解对偶问题得到原始问题的解呢?接下来给出一系列的定理以及相关的证明来解释并且找出需要的条件。
若原始问题和对偶问题都有最优值,很显然最大值的下界是大于等于最小值得上界得,因此有:
d
∗
=
max
α
i
≥
0
min
w
,
b
L
(
w
,
b
,
α
)
≤
min
w
,
b
max
α
i
≥
0
L
(
w
,
b
,
α
)
=
p
∗
\begin{aligned} d^* = \max\limits_{\alpha_i \ge 0} \min\limits_{\boldsymbol{w},b} L(\boldsymbol{w}, b, \boldsymbol{\alpha}) \le \min\limits_{\boldsymbol{w},b} \max\limits_{\alpha_i \ge 0} L(\boldsymbol{w}, b, \boldsymbol{\alpha}) = p^* \end{aligned}
d∗=αi≥0maxw,bminL(w,b,α)≤w,bminαi≥0maxL(w,b,α)=p∗
证明:
∵
∀
min
w
,
b
L
(
w
,
b
,
α
)
≤
L
(
w
,
b
,
α
)
≤
max
α
L
(
w
,
b
,
α
)
∴
max
α
min
w
,
b
L
(
w
,
b
,
α
)
≤
min
w
,
b
max
α
L
(
w
,
b
,
α
)
\begin{aligned} \because \forall \min\limits_{\boldsymbol{w},b}L(\boldsymbol{w}, b, \boldsymbol{\alpha}) \le L(\boldsymbol{w}, b, \boldsymbol{\alpha}) \le \max\limits_{\boldsymbol{\alpha}}L(\boldsymbol{w}, b, \boldsymbol{\alpha})\\ \therefore \quad \max\limits_{\boldsymbol{\alpha}}\min\limits_{\boldsymbol{w},b}L(\boldsymbol{w}, b, \boldsymbol{\alpha}) \le \min\limits_{\boldsymbol{w},b}\max\limits_{\boldsymbol{\alpha}}L(\boldsymbol{w}, b, \boldsymbol{\alpha}) \end{aligned}
∵∀w,bminL(w,b,α)≤L(w,b,α)≤αmaxL(w,b,α)∴αmaxw,bminL(w,b,α)≤w,bminαmaxL(w,b,α)
根据上述推导得到一个推论:
推论:设
w
∗
\boldsymbol{w^*}
w∗,
b
b
b和
α
∗
\boldsymbol{\alpha^*}
α∗分别是原始问题和对偶问题的可行解,并且
d
∗
d^*
d∗=
p
∗
p^*
p∗,则
w
∗
\boldsymbol{w^*}
w∗,
b
b
b和
α
∗
\boldsymbol{\alpha^*}
α∗分别是原始问题和对偶问题的最优解。
上面这个推论在我看来有点拗口的。可行解是说,因为两边的函数都会存在一些极值点,这些是他们的可行解。而两边的函数在上述的取值下,发现两边的值相等了!那么说明上面的最优值在
w
∗
\boldsymbol{w^*}
w∗,
b
b
b和
α
\alpha
α时,取得最优解。因为对偶函数和原始问题的最优解
max
α
i
≥
0
min
w
,
b
L
(
w
,
b
,
α
∗
)
\max\limits_{\alpha_i \ge 0} \min\limits_{\boldsymbol{w},b} L(\boldsymbol{w}, b, \boldsymbol{\alpha^*})
αi≥0maxw,bminL(w,b,α∗)总是小于等于原始函数的最优解
min
w
,
b
max
α
i
≥
0
L
(
w
,
b
,
α
∗
)
\min\limits_{\boldsymbol{w},b} \max\limits_{\alpha_i \ge 0} L(\boldsymbol{w}, b, \boldsymbol{\alpha^*})
w,bminαi≥0maxL(w,b,α∗),这样的性质被称为弱对偶性。如果不是最优解的话,则左边的值更小,右边的值更大,是不可能相等的。当对偶问题和原始问题的最优值相等时,称为具有强对偶性,这与我们的目标是一致的。因为两个问题的最优值是相等的,我们就可以通过求解对偶问题来解决求解原始问题。
然而,取得等号是有条件的,因为不一定就最小值的上界就一定能够与最大值的下界相等。而此时所需要具备的条件,我们称为KKT条件。推导如下:
首先,由于函数需要在
w
∗
\boldsymbol{w^*}
w∗,
b
b
b和
α
∗
\boldsymbol{\alpha^*}
α∗处取极值,因此,对其求偏导需要为0,即如下方公式所示:
∇
w
L
(
w
∗
,
b
∗
,
α
∗
)
=
0
∇
b
L
(
w
∗
,
b
∗
,
α
∗
)
=
0
∇
α
∗
L
(
w
∗
,
b
∗
,
α
∗
)
=
0
\begin{aligned} &\nabla_{\boldsymbol{w}}L(\boldsymbol{w^*},b^*,\boldsymbol{\alpha^*}) = 0 \\ %\label{equa:kkt2} &\nabla_b L(\boldsymbol{w^*},b^*,\boldsymbol{\alpha^*}) = 0 \\ %\label{equa:kkt3} &\nabla_{\boldsymbol{\alpha^*}} L(\boldsymbol{w^*},b^*,\boldsymbol{\alpha^*}) = 0 \end{aligned}
∇wL(w∗,b∗,α∗)=0∇bL(w∗,b∗,α∗)=0∇α∗L(w∗,b∗,α∗)=0
其次,还可以求得其互补松弛条件:
α
i
∗
(
1
−
y
i
(
w
∗
x
i
+
b
)
)
=
0
\begin{aligned} \alpha_i^*(1-y_i(\boldsymbol{w^*}\boldsymbol{x_i} +b)) = 0 \end{aligned}
αi∗(1−yi(w∗xi+b))=0
证明过程如下公式所示,其中由于之前的推论得到前三个等式,再将拉格朗日函数代入得到第四个等式,又因为当
α
=
α
∗
\boldsymbol{\alpha} =\boldsymbol{\alpha^*}
α=α∗时,取得最大值,得到第五个等式。最后,因为之前的约束,即
α
≥
0
\boldsymbol{\alpha} \ge 0
α≥0和
1
−
y
i
(
w
x
i
+
b
)
≥
0
1-y_i(\boldsymbol{w}\boldsymbol{x_i} +b) \ge 0
1−yi(wxi+b)≥0得到不等式,同时由首尾相同可知不等式的等式成立。
g
(
w
)
=
1
2
∥
w
∥
2
min
w
,
b
g
(
w
)
=
g
(
w
∗
)
=
min
w
,
b
max
α
L
(
w
,
b
,
α
)
=
max
α
min
w
,
b
L
(
w
,
b
,
α
)
=
max
α
g
(
w
∗
)
+
∑
i
=
1
n
α
i
(
1
−
y
i
(
w
∗
x
i
+
b
)
)
=
g
(
w
∗
)
+
α
∗
(
1
−
y
i
(
w
∗
x
i
+
b
)
)
≤
g
(
w
∗
)
\begin{aligned} g(\boldsymbol{w}) &= \frac{1}{2}\Vert \boldsymbol{w} \Vert ^2 \\ \min\limits_{\boldsymbol{w},b}g(\boldsymbol{w}) &= g(\boldsymbol{w^*}) \\ &=\min\limits_{\boldsymbol{w},b}\max\limits_{\boldsymbol{\alpha}}L(\boldsymbol{w}, b, \boldsymbol{\alpha})\\ &=\max\limits_{\boldsymbol{\alpha}}\min\limits_{\boldsymbol{w},b}L(\boldsymbol{w}, b, \boldsymbol{\alpha})\\ &=\max\limits_{\boldsymbol{\alpha}}g(\boldsymbol{w^*})+\sum_{i=1}^{n}\alpha_i(1-y_i(\boldsymbol{w^*}\boldsymbol{x_i} +b))\\ &=g(\boldsymbol{w^*})+\boldsymbol{\alpha^*}(1-y_i(\boldsymbol{w^*}\boldsymbol{x_i} +b))\\ &\le g(\boldsymbol{w^*}) \end{aligned}
g(w)w,bming(w)=21∥w∥2=g(w∗)=w,bminαmaxL(w,b,α)=αmaxw,bminL(w,b,α)=αmaxg(w∗)+i=1∑nαi(1−yi(w∗xi+b))=g(w∗)+α∗(1−yi(w∗xi+b))≤g(w∗)
总结KKT条件为:
{
∇
w
L
(
w
∗
,
b
∗
,
α
∗
)
=
0
∇
b
L
(
w
∗
,
b
∗
,
α
∗
)
=
0
∇
α
L
(
w
∗
,
b
∗
,
α
∗
)
=
0
α
i
≥
0
,
i
∈
[
n
]
y
i
(
w
∗
x
i
+
b
)
−
1
≥
0
α
i
∗
(
1
−
y
i
(
w
∗
x
i
+
b
)
)
=
0
(7)
\begin{aligned} \left\{ \begin{array}{ll} &\nabla_{\boldsymbol{w}}L(\boldsymbol{w^*},b^*,\alpha^*) = 0 \\ &\nabla_b L(\boldsymbol{w^*},b^*,\alpha^*) = 0 \\ &\nabla_{\alpha} L(\boldsymbol{w^*},b^*,\alpha^*) = 0 \\ &\alpha_i \ge 0, \ i\in[n]\\ &y_i(\boldsymbol{w^*}x_i +b)-1 \ge 0\\ &\alpha_i^*(1-y_i(\boldsymbol{w^*}x_i +b)) = 0 \end{array} \right.\tag7 \end{aligned}
⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧∇wL(w∗,b∗,α∗)=0∇bL(w∗,b∗,α∗)=0∇αL(w∗,b∗,α∗)=0αi≥0, i∈[n]yi(w∗xi+b)−1≥0αi∗(1−yi(w∗xi+b))=0(7)
将其拓展到线性支持向量机当中,由公式3得到线性支持向量机的优化目标。对其构造拉格朗日函数。
L
(
w
,
b
,
ξ
,
α
,
β
)
=
1
2
∥
w
∥
2
+
C
∑
i
=
1
n
ξ
i
+
∑
i
=
1
n
α
i
(
1
−
ξ
i
−
y
i
(
w
⊤
x
i
+
b
)
)
−
∑
i
=
1
n
β
i
ξ
i
(8)
\begin{aligned} L(\boldsymbol{w},b,\boldsymbol{\xi}, \boldsymbol{\alpha},\boldsymbol{\beta}) = \frac{1}{2}\Vert \boldsymbol{w}\Vert^2+C\sum_{i=1}^{n}\xi_i + \sum_{i=1}^{n}\alpha_i(1-\xi_i-y_i(\boldsymbol{w^\top}\boldsymbol{x_i}+b) )-\sum_{i=1}^{n}\beta_i\xi_i\tag8 \end{aligned}
L(w,b,ξ,α,β)=21∥w∥2+Ci=1∑nξi+i=1∑nαi(1−ξi−yi(w⊤xi+b))−i=1∑nβiξi(8)
由于线性支持向量机的约束发生了变化,加入了松弛变量,因此在线性支持向量机模型中的KKT条件与之前有细微差别。线性支持向量机的KKT条件为:
{
∂
L
(
w
,
b
,
ξ
,
α
,
β
)
∂
w
=
0
∂
L
(
w
,
b
,
ξ
,
α
,
β
)
∂
b
=
0
∂
L
(
w
,
b
,
ξ
,
α
,
β
)
∂
ξ
=
0
α
i
≥
0
,
β
i
≥
0
,
i
∈
[
n
]
β
i
ξ
i
=
0
,
ξ
i
≥
0
,
i
∈
[
n
]
α
i
∗
(
1
−
ξ
i
−
y
i
(
w
∗
x
i
+
b
)
)
=
0
(9)
\begin{aligned} \left\{ \begin{array}{ll} &\frac{\partial L(\boldsymbol{w},b, \boldsymbol{\xi},\boldsymbol{\alpha},\boldsymbol{\beta})}{\partial \boldsymbol{w}} = 0 \\ &\frac{\partial L(\boldsymbol{w},b, \boldsymbol{\xi}, \boldsymbol{\alpha},\boldsymbol{\beta})}{\partial b} = 0\\ &\frac{\partial L(\boldsymbol{w},b,\boldsymbol{\xi}, \boldsymbol{\alpha},\boldsymbol{\beta})}{\partial \boldsymbol{\xi}} =0\\ &\alpha_i \ge 0,\ \beta_i \ge 0,\ i \in [n]\\ &\beta_i\xi_i = 0,\ \xi_i \ge 0,\ i \in [n]\\ &\alpha_i^*(1-\xi_i-y_i(\boldsymbol{w^*}x_i+b))=0 \end{array} \right.\tag9 \end{aligned}
⎩⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎧∂w∂L(w,b,ξ,α,β)=0∂b∂L(w,b,ξ,α,β)=0∂ξ∂L(w,b,ξ,α,β)=0αi≥0, βi≥0, i∈[n]βiξi=0, ξi≥0, i∈[n]αi∗(1−ξi−yi(w∗xi+b))=0(9)
同时,可以总结 α i \alpha_i αi不同取值时的KKT条件。当 0 ≤ α i n e w ≤ C 0 \leq \alpha_i^{new} \leq C 0≤αinew≤C时,根据KKT条件可得 ξ i = 0 \xi_i = 0 ξi=0,为什么 ξ i = 0 \xi_i = 0 ξi=0呢?是因为 C = α i + β i C = \alpha_i + \beta_i C=αi+βi,说明此时 0 ≤ β i ≤ C 0 \leq \beta_i \leq C 0≤βi≤C则根据 β i ξ i = 0 \beta_i\xi_i = 0 βiξi=0得到 ξ i = 0 \xi_i = 0 ξi=0。即,该支持向量位于间隔边界上。若 α i = 0 \alpha_i = 0 αi=0,对应地, β i = C \beta_i = C βi=C,则 ξ i = 0 \xi_i = 0 ξi=0, y i ( w ⊤ x i + b ) − 1 ≥ 0 y_i(\boldsymbol{w^\top}\boldsymbol{x_i}+b) - 1 \ge 0 yi(w⊤xi+b)−1≥0。说明数据点是被分类正确的点。当 α i = C \alpha_i = C αi=C时, ξ i \xi_i ξi取任意值,需要分情况考虑。
- 0 ≤ ξ i ≤ 1 0 \le \xi_i \leq 1 0≤ξi≤1,此时该数据点被正确分类,并且在间隔边界到分割超平面之间;
- ξ i = 1 \xi_i = 1 ξi=1,此时数据的刚刚好在分割超平面上无法被正确分类;
- ξ i ≥ 1 \xi_i \ge 1 ξi≥1,此时数据点被分类错误,位于异侧;
对偶问题的求解
根据KKT条件中的偏导数为0,对
w
\boldsymbol{w}
w和
b
b
b求偏导如下:
∂
L
∂
w
=
w
−
∑
i
=
1
n
α
i
y
i
x
i
=
0
∂
L
∂
b
=
∑
i
=
1
n
α
i
y
i
=
0
(10)
\begin{aligned} \frac{\partial L}{\partial \boldsymbol{w}} &= \boldsymbol{w} - \sum_{i=1}^{n}\alpha_iy_ix_i = 0 \\ \frac{\partial L}{\partial b} &= \sum_{i=1}^{n}\alpha_iy_i = 0\tag{10} \end{aligned}
∂w∂L∂b∂L=w−i=1∑nαiyixi=0=i=1∑nαiyi=0(10)
根据上式得到
w
\boldsymbol{w}
w以及一个等式约束,再将其代回公式5得到:
L
(
w
,
b
,
α
)
=
1
2
w
⊤
w
+
∑
i
=
1
n
α
i
(
1
−
y
i
(
w
⊤
x
i
+
b
)
)
=
1
2
∑
i
=
1
n
∑
j
=
1
n
α
i
α
j
y
i
y
j
x
i
⊤
x
j
+
∑
n
=
1
n
α
i
−
∑
i
=
1
n
α
i
y
i
∑
j
=
1
n
α
j
y
j
x
j
⊤
x
i
−
∑
i
=
1
n
α
i
y
i
b
=
∑
i
=
1
n
α
i
−
1
2
∑
i
=
1
n
∑
j
=
1
n
α
i
α
j
y
i
y
j
x
i
⊤
x
j
(11)
\begin{aligned} L(\boldsymbol{w}, b, \boldsymbol{\alpha}) =& \frac{1}{2} \boldsymbol{w}^\top\boldsymbol{w}+\sum_{i=1}^n \alpha_i(1-y_i(\boldsymbol{w^\top} \boldsymbol{x_i}+b))\\ =&\frac{1}{2}\sum_{i=1}^{n}\sum_{j=1}^{n}\alpha_i\alpha_j y_i y_j \boldsymbol{x_i}^\top \boldsymbol{x_j} + \sum_{n=1}^{n}\alpha_i \\ &-\sum_{i=1}^{n}\alpha_iy_i\sum_{j=1}^{n}\alpha_jy_j\boldsymbol{x_j}^\top \boldsymbol{x_i}-\sum_{i=1}^{n}\alpha_iy_ib\\ =&\sum_{i=1}^{n}\alpha_i - \frac{1}{2}\sum_{i=1}^{n}\sum_{j=1}^{n}\alpha_i\alpha_j y_i y_j \boldsymbol{x_i}^\top \boldsymbol{x_j}\tag{11} \end{aligned}
L(w,b,α)===21w⊤w+i=1∑nαi(1−yi(w⊤xi+b))21i=1∑nj=1∑nαiαjyiyjxi⊤xj+n=1∑nαi−i=1∑nαiyij=1∑nαjyjxj⊤xi−i=1∑nαiyibi=1∑nαi−21i=1∑nj=1∑nαiαjyiyjxi⊤xj(11)
因此转换为对如下的函数求极大值。
max
L
(
w
,
b
,
α
)
=
max
∑
i
=
1
n
α
i
−
1
2
∑
i
=
1
n
∑
j
=
1
n
α
i
α
j
y
i
y
j
x
i
⊤
x
j
s
.
t
.
α
i
≥
0
,
i
∈
[
n
]
∑
i
=
1
n
α
i
y
i
=
0
(12)
\begin{aligned} \max \ & L(\boldsymbol{w}, b, \boldsymbol{\alpha}) = \max \sum_{i=1}^{n}\alpha_i - \frac{1}{2}\sum_{i=1}^{n}\sum_{j=1}^{n}\alpha_i\alpha_j y_i y_j \boldsymbol{x_i}^\top \boldsymbol{x_j} \\ s.t.\ & \alpha_i \ge 0, i \in [n]\\ &\sum_{i=1}^{n} \alpha_iy_i = 0\tag{12} \end{aligned}
max s.t. L(w,b,α)=maxi=1∑nαi−21i=1∑nj=1∑nαiαjyiyjxi⊤xjαi≥0,i∈[n]i=1∑nαiyi=0(12)
而对于线性支持向量机,对其求偏导得到:
∂
L
(
w
,
b
,
ξ
,
α
,
β
)
∂
w
=
w
−
∑
i
=
1
n
α
i
y
i
x
i
=
0
∂
L
(
w
,
b
,
ξ
,
α
,
β
)
∂
b
=
∑
i
=
1
n
α
i
y
i
=
0
∂
L
(
w
,
b
,
ξ
,
α
,
β
)
∂
ξ
=
C
−
α
i
−
β
i
=
0
(13)
\begin{aligned} \frac{\partial L(\boldsymbol{w},b, \boldsymbol{\xi}, \boldsymbol{\alpha},\boldsymbol{\beta})}{\partial \boldsymbol{w}} &= \boldsymbol{w} - \sum_{i=1}^{n}\alpha_iy_ix_i = 0 \\ \frac{\partial L(\boldsymbol{w},b, \boldsymbol{\xi}, \boldsymbol{\alpha},\boldsymbol{\beta})}{\partial b} &= \sum_{i=1}^{n}\alpha_iy_i = 0\\ \frac{\partial L(\boldsymbol{w},b, \boldsymbol{\xi}, \boldsymbol{\alpha},\boldsymbol{\beta})}{\partial \boldsymbol{\xi}} &= C-\alpha_i-\beta_i= 0\tag{13} \end{aligned}
∂w∂L(w,b,ξ,α,β)∂b∂L(w,b,ξ,α,β)∂ξ∂L(w,b,ξ,α,β)=w−i=1∑nαiyixi=0=i=1∑nαiyi=0=C−αi−βi=0(13)
将上述得到的
w
\boldsymbol{w}
w代入原公式得到线性支持向量机的优化目标为:
max
L
(
w
,
b
,
ξ
,
α
,
β
)
=
max
∑
i
=
1
n
α
i
−
1
2
∑
i
=
1
n
∑
j
=
1
n
α
i
α
j
y
i
y
j
x
i
⊤
x
j
s
.
t
.
0
≤
α
i
≤
C
,
i
∈
[
n
]
α
i
+
β
i
=
C
∑
i
=
1
n
α
i
y
i
=
0
(14)
\begin{aligned} \max \ & L(\boldsymbol{w}, b,\boldsymbol{\xi},\boldsymbol{\alpha},\boldsymbol{\beta}) = \max\sum_{i=1}^{n}\alpha_i -\frac{1}{2}\sum_{i=1}^{n}\sum_{j=1}^{n}\alpha_i\alpha_j y_i y_j \boldsymbol{x_i}^\top \boldsymbol{x_j}\\ s.t.\ & 0 \le \alpha_i \le C, i \in [n]\\ & \alpha_i+\beta_i = C\\ &\sum_{i=1}^{n} \alpha_iy_i = 0 \tag{14} \end{aligned}
max s.t. L(w,b,ξ,α,β)=maxi=1∑nαi−21i=1∑nj=1∑nαiαjyiyjxi⊤xj0≤αi≤C,i∈[n]αi+βi=Ci=1∑nαiyi=0(14)
然而这也是个二次优化问题,同时还存在等式和不等式约束,用传统的启发式方法如坐标下降等方法也不太好求解。这也是SVM一开始应用并不广泛的重要原因。而直到SMO算法的出现,SVM算法又焕发了新的生机与活力。SMO算法见下一篇博客…
SMO算法:SMO算法