拉格朗日乘子法和KKT条件详解,以及在SVM上的应用
在最优化问题中,我们可以根据约束类型将其分为三类:无约束优化问题、等式约束优化问题以及不等式约束优化问题。其中无约束问题最简单,只需要求导,找到导数为0的极值点,再带回原函数验证其最值性即。而有约束的优化问题求解,则可以用到拉格朗日乘子法(Lagrange Multiplier),不等式约束中还需要额外在极值点处满足KKT(Karush Kuhn Tucker)条件,KKT条件是对拉格朗日乘子法在不等式约束上的一种泛化。
一、等式约束
形如:
m
i
n
f
(
x
)
s
.
t
.
h
i
(
x
)
=
0
i
=
1
,
2
,
.
.
.
,
l
\begin{align*} &min\ f(x) \\ s.t.\quad &h_i(x) = 0\quad i=1,2,...,l \end{align*}
s.t.min f(x)hi(x)=0i=1,2,...,l
的优化问题称为等式约束优化,其中
f
(
x
)
f(x)
f(x)为目标函数,
h
i
(
x
)
=
0
h_i(x)=0
hi(x)=0为约束条件。
解决这个问题主要使用的方法有消元法和拉格朗日乘子法,事实上当约束函数非线性的时候,使用消元法去消元并不容易,而拉格朗日乘子法可以很好的解决该问题,我们先说求解过程,再讲解原理。
1.1拉格朗日乘子法过程
(1)拉格朗日乘子法第一步首先要构造拉格朗日函数:
L
(
x
,
λ
)
=
f
(
x
)
+
∑
i
=
1
l
λ
i
h
i
(
x
)
L(x,\lambda) = f(x) + \sum_{i=1}^{l}\lambda_ih_i(x)
L(x,λ)=f(x)+i=1∑lλihi(x)
注意这里的
x
x
x,
λ
\lambda
λ表示位向量,
λ
\lambda
λ为约束函数前待定系数的向量,
L
L
L是关于
x
x
x和
λ
\lambda
λ的函数。
(2)第二步,对每个自变量求偏导,并令其为0,以求解
F
F
F的极值点
∂
L
(
x
,
λ
)
∂
x
k
=
0
,
∂
L
(
x
,
λ
)
∂
λ
i
=
0
\frac{\partial L(x,\lambda)}{\partial x_k} = 0,\quad \frac{\partial L(x,\lambda)}{\partial \lambda_i} = 0
∂xk∂L(x,λ)=0,∂λi∂L(x,λ)=0
(3)若
x
x
x为
k
k
k维向量,
λ
\lambda
λ为
l
l
l维向量,则得到
k
+
l
k+l
k+l个等式,联合求出极值点
x
∗
x^*
x∗,带回原函数
f
(
x
∗
)
f(x^*)
f(x∗)即为最值,再验证即可。
1.2拉格朗日乘子法原理
为了直观说明,在此举一个简单的二维例子
m
i
n
f
(
x
,
y
)
s
.
t
.
h
(
x
,
y
)
=
0
\begin{align*} & min\ f(x,y) \\ s.t.\quad &h(x,y) = 0 \\ \end{align*}
s.t.min f(x,y)h(x,y)=0
我们在平面上做出 h ( x , y ) = 0 h(x,y)=0 h(x,y)=0的图像(图中橙色曲线),以及 f ( x , y ) f(x,y) f(x,y)的等高线(图中虚线),可以看到箭头是函数梯度的方向,沿梯度方向函数值下降最快。只有落在橙色曲线上的点才满足约束条件,而这些点中,哪一个点使目标函数 f ( x , y ) f(x,y) f(x,y)取到最小值呢?很显然在橙色曲线与 f f f等高线相切的这一点, f ( x , y ) f(x,y) f(x,y)取到最小值,否则沿曲线向与梯度夹角为锐角方向前进可以得到更小的目标函数值。
因此我们可以得到在最小值点有
f
f
f与
g
g
g相切,二者梯度共线:
∇
f
(
x
,
y
)
=
λ
∇
h
(
x
,
y
)
\nabla f(x,y) = \lambda \nabla h(x,y)
∇f(x,y)=λ∇h(x,y)
即
∇
(
f
(
x
,
y
)
+
λ
h
(
x
,
y
)
)
=
0
\nabla (f(x,y)+ \lambda h(x,y)) = 0\\
∇(f(x,y)+λh(x,y))=0
因此构造拉格朗日函数
L
(
x
,
y
,
λ
)
=
f
(
x
,
y
)
+
λ
h
(
x
,
y
)
L(x,y,\lambda) = f(x,y)+\lambda h(x,y)
L(x,y,λ)=f(x,y)+λh(x,y),且有:
∂
L
(
x
,
y
,
λ
)
∂
x
=
∂
(
f
(
x
,
y
)
+
λ
h
(
x
,
y
)
)
∂
x
=
0
,
∂
L
(
x
,
y
,
λ
)
∂
y
=
∂
(
f
(
x
,
y
)
+
λ
h
(
x
,
y
)
)
∂
y
=
0
\frac{\partial L(x,y,\lambda)}{\partial x}=\frac{\partial (f(x,y)+ \lambda h(x,y))}{\partial x} = 0,\qquad \frac{\partial L(x,y,\lambda)}{\partial y}=\frac{\partial (f(x,y)+ \lambda h(x,y))}{\partial y} = 0
∂x∂L(x,y,λ)=∂x∂(f(x,y)+λh(x,y))=0,∂y∂L(x,y,λ)=∂y∂(f(x,y)+λh(x,y))=0
又最小值点在曲线上,因此满足
g
(
x
,
y
)
=
0
g(x,y) = 0
g(x,y)=0,所以:
∂
L
(
x
,
y
,
λ
)
∂
λ
=
∂
(
f
(
x
,
y
)
+
λ
h
(
x
,
y
)
)
∂
λ
=
h
(
x
,
y
)
=
0
\frac{\partial L(x,y,\lambda)}{\partial \lambda}=\frac{\partial (f(x,y)+ \lambda h(x,y))}{\partial \lambda} = h(x,y)=0
∂λ∂L(x,y,λ)=∂λ∂(f(x,y)+λh(x,y))=h(x,y)=0
因此得到:
∂
L
(
x
,
y
,
λ
)
∂
x
=
0
,
∂
L
(
x
,
y
,
λ
)
∂
y
=
0
,
∂
L
(
x
,
y
,
λ
)
∂
λ
=
0
,
\frac{\partial L(x,y,\lambda)}{\partial x} = 0,\quad \frac{\partial L(x,y,\lambda)}{\partial y} = 0,\quad \frac{\partial L(x,y,\lambda)}{\partial \lambda} = 0,
∂x∂L(x,y,λ)=0,∂y∂L(x,y,λ)=0,∂λ∂L(x,y,λ)=0,
这我们可以看出最小值点即为
L
(
x
,
y
,
λ
)
L(x,y,\lambda)
L(x,y,λ)的极值点中的
(
x
,
y
)
(x,y)
(x,y),这就是为何我们可以通过构造拉格朗日函数并求其极值点来找目标函数的最值,但注意求出的只是极值点,还要验证其是否为最值。
将本例推广到任意维空间,以及任意数量约束的优化问题中可得到 1.1 1.1 1.1所提到的拉格朗日乘子法。
二、不等式约束
形如:
m
i
n
f
(
x
)
s
.
t
.
h
i
(
x
)
=
0
i
=
1
,
2
,
.
.
.
,
p
g
j
(
x
)
≤
0
j
=
1
,
2
,
.
.
.
,
q
\begin{align*} &min\ f(x) \\ s.t.\quad &h_i(x) = 0\quad i=1,2,...,p \\ &g_j(x) \le 0\quad j=1,2,...,q \end{align*}
s.t.min f(x)hi(x)=0i=1,2,...,pgj(x)≤0j=1,2,...,q
的优化问题称为不等式约束优化,其中
f
(
x
)
f(x)
f(x)为目标函数,
h
i
(
x
)
=
0
h_i(x)=0
hi(x)=0为等式约束条件,
g
j
(
x
)
≤
0
g_j(x)\le 0
gj(x)≤0为不等式约束条件。
2.1KKT条件
解决这个问题同样可以使用拉格朗日乘子法
(1)构造拉格朗日函数
L
(
x
,
λ
,
μ
)
=
f
(
x
)
+
∑
i
=
1
p
λ
i
h
i
(
x
)
+
∑
j
=
1
q
μ
j
g
j
(
x
)
L(x,\lambda,\mu) = f(x) + \sum_{i=1}^{p}\lambda_ih_i(x)+ \sum_{j=1}^{q}\mu_jg_j(x)
L(x,λ,μ)=f(x)+i=1∑pλihi(x)+j=1∑qμjgj(x)
(2)第二步,对每个自变量求偏导,并令其为0,以求解
F
F
F的极值点
∂
L
(
x
,
λ
)
∂
x
k
=
0
,
∂
L
(
x
,
λ
)
∂
λ
i
=
0
∂
L
(
x
,
μ
)
∂
μ
j
=
0
\frac{\partial L(x,\lambda)}{\partial x_k} = 0,\quad \frac{\partial L(x,\lambda)}{\partial \lambda_i} = 0 \quad \frac{\partial L(x,\mu)}{\partial \mu_j} = 0
∂xk∂L(x,λ)=0,∂λi∂L(x,λ)=0∂μj∂L(x,μ)=0
(3)对得到的等式,联合求出极值点
x
∗
x^*
x∗,带回原函数
f
(
x
∗
)
f(x^*)
f(x∗)即为最值,再验证即可。
但我们需要额外要求在解这一点满足KKT条件,把拉格朗日函数表示为 L ( x , λ , μ ) = f ( x ) + λ ∗ h ( x ) + μ ∗ g ( x ) L(x,\lambda,\mu)= f(x) + \lambda*h(x)+\mu*g(x) L(x,λ,μ)=f(x)+λ∗h(x)+μ∗g(x),KKT条件是说最优值处必须满足以下条件:
- L ( x , λ , μ ) L(x, \lambda, \mu) L(x,λ,μ)对 x x x求导为零;
- h ( x ) = 0 h(x) =0 h(x)=0;
- μ ∗ g ( x ) = 0 ; \mu*g(x) = 0; μ∗g(x)=0;
2.2KKT条件原理
KKT条件中第三个式子非常有趣,因为 g ( x ) < = 0 g(x)<=0 g(x)<=0,如果要满足这个等式,必须 μ = 0 \mu=0 μ=0或者 g ( x ) = 0 g(x)=0 g(x)=0. 这是SVM的很多重要性质的来源,如支持向量的概念。
接下来主要介绍KKT条件,推导及应用。为简化证明过程,设不等式约束如下:
m
i
n
f
(
x
)
s
.
t
.
g
j
(
x
)
≤
0
j
=
1
,
2
,
.
.
.
,
p
\begin{align*} &min\ f(x) \\ s.t.\quad &g_j(x) \le 0\quad j=1,2,...,p \\ \end{align*}
s.t.min f(x)gj(x)≤0j=1,2,...,p
其中
f
(
x
)
f(x)
f(x)为目标函数,
g
j
(
x
)
≤
0
g_j(x)\le0
gj(x)≤0为不等式约束条件
m
i
n
f
(
x
)
s
.
t
.
g
j
(
x
)
≤
0
j
=
1
,
2
,
.
.
.
,
p
\begin{align*} &min\ f(x) \\ s.t.\quad &g_j(x) \le 0\quad j=1,2,...,p \\ \end{align*}
s.t.min f(x)gj(x)≤0j=1,2,...,p
其中
f
(
x
)
f(x)
f(x)为目标函数,
g
j
(
x
)
≤
0
g_j(x)\le0
gj(x)≤0为不等式约束条件
l
e
t
L
(
x
,
μ
)
=
f
(
x
)
+
∑
j
=
1
p
u
j
g
j
(
x
)
w
h
e
r
e
u
j
≥
0
,
g
j
(
x
)
≤
0
∴
u
g
(
x
)
≤
0
∴
m
a
x
μ
L
(
x
,
μ
)
=
f
(
x
)
(
1
)
s
o
m
i
n
x
m
a
x
μ
L
(
x
,
μ
)
=
m
i
n
x
f
(
x
)
(
2
)
∵
m
a
x
μ
m
i
n
x
L
(
x
,
μ
)
=
m
a
x
μ
(
m
i
n
x
f
(
x
)
+
m
i
n
x
u
g
(
x
)
a
n
d
u
j
≥
0
,
g
j
(
x
)
≤
0
∴
μ
g
(
x
)
=
{
0
u
j
=
0
o
r
g
j
(
x
)
=
0
−
∞
u
j
<
0
a
n
d
g
j
(
x
)
>
0
s
o
m
a
x
μ
m
i
n
x
L
(
x
,
μ
)
=
m
i
n
x
f
(
x
)
,
w
h
e
n
u
=
0
o
r
g
(
x
)
=
0
(
3
)
b
e
c
a
u
s
e
(
1
)
(
2
)
m
a
x
μ
m
i
n
x
L
(
x
,
μ
)
=
m
i
n
x
m
a
x
μ
L
(
x
,
μ
)
=
m
i
n
x
f
(
x
)
,
w
h
e
n
u
g
(
x
)
=
0
(
4
)
\begin{align*} &let& &L(x,\mu) = f(x) + \sum_{j=1}^{p}u_jg_j(x) \\ &where& &u_j\ge 0,\quad g_j(x)\le0 \\ &\therefore& &ug(x)\le 0 \\ &\therefore& &\mathop{max}\limits_{\mu}\ L(x,\mu) = f(x)& &(1)&\\ &so& &\mathop{min}\limits_x \ \mathop{max}\limits_{\mu}\ L(x,\mu) =\mathop{min}\limits_x f(x)& &(2)&\\ \\ &\because& &\mathop{max}\limits_{\mu}\ \mathop{min}\limits_x\ L(x,\mu) = \mathop{max}\limits_{\mu}(\mathop{min}\limits_{x}\ f(x) +\mathop{min}\limits_{x}\ ug(x) & \\ &and& &u_j\ge 0,\quad g_j(x)\le0 \\ &\\ &\therefore& &\mu g(x)=\left\{ \begin{align*} & 0 & &u_j = 0\ or\ g_j(x)=0 \\ &-\infty & &u_j < 0\ and\ g_j(x)>0 \\ \end{align*} \right.&\\ &so& &\mathop{max}\limits_{\mu} \ \mathop{min}\limits_{x}\ L(x,\mu) =\mathop{min}\limits_x f(x) ,\quad when\ u = 0\ or\ g(x)=0& &(3)&\\ \\ &because(1) (2)& &\mathop{max}\limits_{\mu} \ \mathop{min}\limits_{x}\ L(x,\mu) = \mathop{min}\limits_x \ \mathop{max}\limits_{\mu}\ L(x,\mu)= \mathop{min}\limits_x f(x),\quad when\ ug(x)=0& &(4)&\\ \\ \end{align*}
letwhere∴∴so∵and∴sobecause(1)(2)L(x,μ)=f(x)+j=1∑pujgj(x)uj≥0,gj(x)≤0ug(x)≤0μmax L(x,μ)=f(x)xmin μmax L(x,μ)=xminf(x)μmax xmin L(x,μ)=μmax(xmin f(x)+xmin ug(x)uj≥0,gj(x)≤0μg(x)={0−∞uj=0 or gj(x)=0uj<0 and gj(x)>0μmax xmin L(x,μ)=xminf(x),when u=0 or g(x)=0μmax xmin L(x,μ)=xmin μmax L(x,μ)=xminf(x),when ug(x)=0(1)(2)(3)(4)
其中我们称
m
a
x
μ
m
i
n
x
L
(
x
,
μ
)
\mathop{max}\limits_{\mu} \ \mathop{min}\limits_{x}\ L(x,\mu)
μmax xmin L(x,μ)为原问题
m
i
n
x
m
a
x
μ
L
(
x
,
μ
)
=
\mathop{min}\limits_x \ \mathop{max}\limits_{\mu}\ L(x,\mu)=
xmin μmax L(x,μ)=的对偶问题,在满足一定条件时,二者的解是相同的。设解为
x
∗
x^*
x∗,由公式(1)和公式(4可得到:
∵
m
i
n
x
f
(
x
)
=
f
(
x
∗
)
=
m
a
x
μ
L
(
x
∗
,
μ
)
∵
m
a
x
μ
m
i
n
x
L
(
x
,
μ
)
=
m
i
n
x
f
(
x
)
,
w
h
e
n
u
g
(
x
)
=
0
∴
m
i
n
x
L
(
x
,
μ
)
=
L
(
x
∗
,
μ
)
因此
x
∗
是
L
(
x
,
μ
)
的极值点:
∂
L
(
x
,
μ
)
∂
x
∣
x
=
x
∗
=
0
\begin{align*} &\because\quad \mathop{min}\limits_x\ f(x) = f(x^*) =\mathop{max}\limits_{\mu}\ L(x^*,\mu)\\ &\because\quad \mathop{max}\limits_{\mu} \ \mathop{min}\limits_{x}\ L(x,\mu) =\mathop{min}\limits_x f(x),\quad when\ ug(x)=0\\ &\therefore \quad \mathop{min}\limits_{x}\ L(x,\mu)=\ L(x^*,\mu)\\ &因此x^*是L(x,\mu)的极值点:\frac{\partial L(x,\mu)}{\partial x|x=x^*}=0 \end{align*}
∵xmin f(x)=f(x∗)=μmax L(x∗,μ)∵μmax xmin L(x,μ)=xminf(x),when ug(x)=0∴xmin L(x,μ)= L(x∗,μ)因此x∗是L(x,μ)的极值点:∂x∣x=x∗∂L(x,μ)=0
其中我们称
m
a
x
μ
m
i
n
x
L
(
x
,
μ
)
\mathop{max}\limits_{\mu} \ \mathop{min}\limits_{x}\ L(x,\mu)
μmax xmin L(x,μ)为原问题
m
i
n
x
m
a
x
μ
L
(
x
,
μ
)
=
\mathop{min}\limits_x \ \mathop{max}\limits_{\mu}\ L(x,\mu)=
xmin μmax L(x,μ)=的对偶问题,在满足一定条件时,二者的解是相同的。设解为
x
∗
x^*
x∗,由公式(1)和公式(4可得到:
∵
m
i
n
x
f
(
x
)
=
f
(
x
∗
)
=
m
a
x
μ
L
(
x
∗
,
μ
)
∵
m
a
x
μ
m
i
n
x
L
(
x
,
μ
)
=
m
i
n
x
f
(
x
)
,
w
h
e
n
u
g
(
x
)
=
0
∴
m
i
n
x
L
(
x
,
μ
)
=
L
(
x
∗
,
μ
)
因此
x
∗
是
L
(
x
,
μ
)
的极值点:
∂
L
(
x
,
μ
)
∂
x
∣
x
=
x
∗
=
0
\begin{align*} &\because\quad \mathop{min}\limits_x\ f(x) = f(x^*) =\mathop{max}\limits_{\mu}\ L(x^*,\mu)\\ &\because\quad \mathop{max}\limits_{\mu} \ \mathop{min}\limits_{x}\ L(x,\mu) =\mathop{min}\limits_x f(x),\quad when\ ug(x)=0\\ &\therefore \quad \mathop{min}\limits_{x}\ L(x,\mu)=\ L(x^*,\mu)\\ &因此x^*是L(x,\mu)的极值点:\frac{\partial L(x,\mu)}{\partial x|x=x^*}=0 \end{align*}
∵xmin f(x)=f(x∗)=μmax L(x∗,μ)∵μmax xmin L(x,μ)=xminf(x),when ug(x)=0∴xmin L(x,μ)= L(x∗,μ)因此x∗是L(x,μ)的极值点:∂x∣x=x∗∂L(x,μ)=0
以上我们以及得到了KKT条件中的第一条和第三条,若将等式约束一并纳入,则有
∂
L
(
x
,
λ
,
μ
)
∂
λ
=
h
(
x
)
=
0
\frac{\partial L(x,\lambda,\mu)}{\partial \lambda}= h(x)=0
∂λ∂L(x,λ,μ)=h(x)=0
由此我们得到了KKT条件中的第二条。
注:
x
,
λ
,
μ
,
h
(
x
)
,
g
(
x
)
x,\lambda,\mu,h(x),g(x)
x,λ,μ,h(x),g(x)均为向量
∂ L ( x , μ ) ∂ x ∣ x = x ∗ = 0 \frac{\partial L(x,\mu)}{\partial x|x=x^*}=0 ∂x∣x=x∗∂L(x,μ)=0,说明了在 x ∗ x^* x∗处 f ( x ) f(x) f(x)的梯度是 h i ( x ∗ ) h_i(x^*) hi(x∗)和 g j ( x ∗ ) g_j(x^*) gj(x∗)梯度的的线性组合
三、具体应用SVM(支持向量机)
问题背景与支持向量
给定训练样本集
D
D
D,分类学习基本思想就是找到一个超平面划分,将不同的样本分开,但能将训练样本分开的超平面有许多(如图),选择哪一个就是我们要考虑的问题。
如图所示,存在多个超平面划分将两类样本分开(训练集 D D D中样本形式为 ( x , y ) , x (x,y),x (x,y),x为特征向量, y y y为分类标签 y ∈ { − 1 , 1 } y\in\{-1,1\} y∈{−1,1})
不难想到,我们选择“正中间”超平面作为分界线效果最好,因为当训练集出现局部扰动时,该划分对其容忍性最好,换言之,当训练集出现异常样本时,该划分比起其他划分更不容易出错。在线性空间中,我们可以通过线性方程来表示超平面划分:
ω
T
x
+
b
=
0
\omega^Tx + b =0
ωTx+b=0
ω
=
(
ω
1
,
ω
2
,
.
.
.
,
ω
d
)
\omega=(\omega_1,\omega_2,...,\omega_d)
ω=(ω1,ω2,...,ωd)为超平面法向量,任意样本点
x
x
x到平面法向量的距离可表示为:
∣
ω
T
x
+
b
∣
∥
ω
∥
\frac{|\omega^Tx + b|}{\|\omega\|}
∥ω∥∣ωTx+b∣
对于能正确分类样本的超平面,有对任意样本
(
x
i
,
y
i
)
∈
D
(x_i,y_i)\in D
(xi,yi)∈D,当
y
i
=
+
1
y_i=+1
yi=+1时,
ω
T
+
b
>
0
\omega^T+b>0
ωT+b>0,当
y
i
=
−
1
y_i=-1
yi=−1时,
ω
T
+
b
<
0
\omega^T+b<0
ωT+b<0,对任意
ω
、
b
\omega、b
ω、b只要满足上述条件,我们就可以做一个简单的伸缩变换使得满足:
{
ω
T
+
b
≥
+
1
,
y
i
=
+
1
ω
T
+
b
≤
−
1
,
y
i
=
−
1
\left\{ \begin{align*} &\omega^T+b\ge +1,&\ &y_i=+1 \\ &\omega^T+b\le -1,&\ &y_i=-1 \\ \end{align*} \right.
{ωT+b≥+1,ωT+b≤−1, yi=+1yi=−1
距离平面最近的几个训练样本点使等号成立,被称为支持向量,支持向量到超平面的距离为
1
∥
ω
∥
\frac{1}{\|\omega\|}
∥ω∥1,两个异类支持向量到平面的距离和为:
γ
=
2
∥
ω
∥
\gamma = \frac{2}{\|\omega\|}
γ=∥ω∥2
这个距离和被称之为间隔。
现在让我们回顾我们的任务:能将训练样本分开的超平面有许多(如图),选择一个分类效果最好,对误差容忍性最好的超平面划分。那么怎么样的超平面才是效果最好的,答案是
γ
\gamma
γ最大,也就是
2
∥
ω
∥
\frac{2}{\|\omega\|}
∥ω∥2最大的平面,于是我们就得到了一个优化问题,找到满足约束的
ω
、
b
\omega、b
ω、b使得,
γ
\gamma
γ最大:
m
a
x
ω
,
b
2
∥
ω
∥
s
.
t
.
y
i
(
ω
T
x
i
+
b
)
≥
1
,
i
=
1
,
2....
,
d
\mathop{max}\limits_{\omega,b} \ \frac{2}{\|\omega\|}\\ s.t.\ y_i(\omega^Tx_i + b)\ge 1,\quad i=1,2....,d
ω,bmax ∥ω∥2s.t. yi(ωTxi+b)≥1,i=1,2....,d
我们可以做一个简单的等价,使其转化为优化问题的标准型:
m
i
n
ω
,
b
1
2
∥
ω
∥
2
s
.
t
.
y
i
(
ω
T
x
i
+
b
)
≥
1
,
i
=
1
,
2....
,
d
\mathop{min}\limits_{\omega,b} \ \frac{1}{2}\|\omega\|^2\\ s.t.\ y_i(\omega^Tx_i + b)\ge 1,\quad i=1,2....,d
ω,bmin 21∥ω∥2s.t. yi(ωTxi+b)≥1,i=1,2....,d
这就是支持向量机(Support Vector Machine)的基本型。
对偶问题
如上述,我们得到了一个凸二次规划问题,对其使用拉格朗日乘子法:为每条约束条件添加拉格朗日乘子
α
i
\alpha_i
αi,得到拉格朗日函数:
L
(
ω
,
b
,
α
)
=
1
2
∥
ω
∥
2
+
∑
i
=
1
m
α
i
(
1
−
y
i
(
ω
i
T
x
i
+
b
)
)
L(\omega,b,\alpha) =\frac{1}{2}\|\omega\|^2 + \sum_{i=1}^{m}\alpha_i(1-y_i(\omega_i^Tx_i + b))
L(ω,b,α)=21∥ω∥2+i=1∑mαi(1−yi(ωiTxi+b))
令
∂
L
∂
ω
=
0
,
∂
L
∂
b
=
0
\frac{\partial L}{\partial \omega}=0,\ \frac{\partial L}{\partial b}=0
∂ω∂L=0, ∂b∂L=0,得到:
ω
=
∑
i
=
1
m
α
i
y
i
x
i
0
=
∑
i
=
1
m
α
i
y
i
\omega = \sum_{i=1}^{m}\alpha_iy_ix_i\\ 0 = \sum_{i=1}^{m}\alpha_iy_i
ω=i=1∑mαiyixi0=i=1∑mαiyi
带入
L
(
ω
,
b
,
α
)
L(\omega,b,\alpha)
L(ω,b,α),将
ω
,
b
\omega,b
ω,b消去,得到原问题的对偶问题:
m
a
x
α
∑
i
=
1
m
α
i
−
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
j
y
i
y
j
x
i
T
x
j
s
.
t
.
∑
i
=
1
m
α
i
y
i
=
0
,
α
i
≥
0
,
i
=
1
,
2
,
.
.
.
,
m
\mathop{max}\limits_{\alpha} \sum_{i=1}^{m}\alpha_i - \frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_jy_iy_jx_i^Tx_j\\ s.t. \sum_{i=1}^m\alpha_iy_i = 0,\quad \alpha_i\ge0,\quad i=1,2,...,m
αmaxi=1∑mαi−21i=1∑mj=1∑mαiαjyiyjxiTxjs.t.i=1∑mαiyi=0,αi≥0,i=1,2,...,m
解出
α
\alpha
α后,求得
ω
,
b
\omega,b
ω,b得到我们想要的模型:
f
(
x
)
=
ω
T
x
+
b
=
∑
i
=
1
m
α
i
y
i
x
i
T
x
+
b
f(x) = \omega^Tx + b = \sum_{i=1}^m \alpha_i y_i x_i^T x + b
f(x)=ωTx+b=i=1∑mαiyixiTx+b
由于是不等式约束,还需满足KKT条件:
{
α
i
≥
0
y
i
f
(
x
i
)
−
1
≥
0
α
i
(
y
i
f
(
x
i
)
−
1
)
=
0
\left\{ \begin{align*} \quad &\alpha_i \ge 0 \\ &y_if(x_i) - 1 \ge 0\\ &\alpha_i(y_if(x_i)-1)=0 \end{align*} \right.
⎩
⎨
⎧αi≥0yif(xi)−1≥0αi(yif(xi)−1)=0
这揭示了SVM的一个重要性质,对任意训练样本
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi),总有
α
i
=
0
\alpha_i =0
αi=0或者
y
i
f
(
x
i
)
−
1
=
0
y_if(x_i) - 1 = 0
yif(xi)−1=0,若
α
i
=
0
\alpha_i =0
αi=0,则不会出现在
f
(
x
)
f(x)
f(x)的求和式中,因此不会对最终模型
f
(
x
)
f(x)
f(x)照成影响,若
α
i
=
0
,则
y
i
f
(
x
i
)
=
1
\alpha_i =0,则y_if(x_i) = 1
αi=0,则yif(xi)=1,这表明样本
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)是一个支持向量。这告诉我们训练结束后,大部分训练样本都不需要保留,最终模型仅与
f
(
x
)
f(x)
f(x)有关。