理解SVM 的三层境界 —— 自学笔记02
主要参考资料为:
1: 结构之法算法之道blog(作者July)的 支持向量机通俗导论(理解SVM的三层境界)。
2: Convex Optimization(作者Stephen Boyd)
本文为以自己思路整理的笔记。
一、了解SVM
二、深入 SVM
优化问题的求解:
前面我们已经得到了要求解的优化问题(公式1.3)。当
1
∣
∣
ω
∣
∣
\frac{1}{||\omega||}
∣∣ω∣∣1 取得最大值的时候,显然
1
2
∣
∣
ω
∣
∣
2
\frac{1}{2}||\omega||^2
21∣∣ω∣∣2 取得最小值,所以为了方便求解,我们将优化为题改为:
minminze
1
2
∣
∣
ω
∣
∣
2
subject to
y
i
(
ω
T
x
i
+
b
)
≥
1
,
i
=
1
,
⋯
,
n
(2.1)
\begin{aligned} &\text{minminze} \quad \frac{1}{2}||\omega||^2 \\ &\text{subject to} \quad y_i(\omega^Tx_i+b)\geq1,i=1,\cdots,n \end{aligned}\tag{2.1}
minminze21∣∣ω∣∣2subject toyi(ωTxi+b)≥1,i=1,⋯,n(2.1)
现在的优化问题中,目标函数是二次的,约束条件是线性的,所以是一个凸二次规划问题即QP(Quadratic Programming)问题,可以通过相关的优化问题工具包解决。
但是在实际应用过程中,我们一般通过拉格朗日对偶性(Lagrange Duality)先求解对偶问题的解,然后得到原始问题的最优解,以为对偶问题一般更容易求解,此外还可以引入核函数,进而推广到非线性问题的求解。
Q: 如何理解 拉格朗日乘数法 ?
A:
拉格朗日乘数法就是将约束条件融合到原目标函数中去,构成拉格朗日函数,用一个表达式表达了我们要求解的问题。对于一个关于
n
n
n维向量
x
=
(
x
1
,
x
2
,
⋯
,
x
n
)
T
x={(x_1,x_2,\cdots,x_n)^T}
x=(x1,x2,⋯,xn)T的约束优化问题
minminze
f
(
x
)
subject to
g
(
x
)
≤
C
(2.2)
\begin{aligned} & \text{minminze} \quad f(x)\\ & \text{subject to} \quad g(x)\leq C \end{aligned}\tag{2.2}
minminzef(x)subject tog(x)≤C(2.2)
如 图4 所示,当
n
=
2
n=2
n=2 且约束为等式约束的时候,即在二维空间中 ,红色曲线表示等式约束条件,蓝色曲线表示目标函数取不同值时候的 “等高线” ,该约束优化问题即表示在红色曲线上找到是的蓝色曲线取最小值的点,显然取到这样的点的时候,两曲线相,即梯度向量平行,
∇
f
(
x
)
+
λ
∇
g
(
x
)
=
0
,
λ
≠
0
,
λ
=
(
λ
1
,
λ
,
⋯
,
λ
n
)
\nabla f(x)+\lambda \nabla{g(x)}=0,\lambda\neq0 ,\lambda=(\lambda_1,\lambda,\cdots,\lambda_n)
∇f(x)+λ∇g(x)=0,λ=0,λ=(λ1,λ,⋯,λn) 。然而上述问题对应的拉格朗日函数可以表示为
L
(
x
,
λ
)
=
f
(
x
)
+
λ
g
(
x
)
(2.3)
\mathcal{L}{(x,\lambda)}=f(x)+\lambda g(x) \tag{2.3}
L(x,λ)=f(x)+λg(x)(2.3)
其中
λ
\lambda
λ 表示拉格朗日乘子,容易看出,两个梯度向量平行的表达式刚好和
∇
x
L
\nabla_{x} \mathcal{L}
∇xL 形式相同。所以我们可以放心的将等式约束融合到拉格朗日函数中去。当等式约束变成不等式约束时候,图4 中的可行域从曲线变成了橙色阴影区域。这是我们只需要对拉格朗日乘子
λ
\lambda
λ 有一个
λ
≥
0
,
(
∀
i
=
1
,
2
,
⋯
,
n
;
λ
i
≥
0
)
\lambda\geq0,(\forall i=1,2,\cdots,n;\ \lambda_i\geq0)
λ≥0,(∀i=1,2,⋯,n; λi≥0) 的约束即可,这个稍后在 K.K.T. 条件部分会进行阐述。
Q: 如何理解 拉格朗日对偶性?
A: 参考教材 Convex Optimization)
*Q: 如何理解*K.K.T(Karush-Kuhn-Tucker)条件?
A: 参考教材 Convex Optimization)和
对于公式(2.3)描述的问题,约束不等式 g ( x ) ≤ 0 g(x)\leq0 g(x)≤0 表示 原始可行性(Primal Feasibility) ,对于约束不等式对应的可行域有两种情况,即没有约束时候的最优解 是否在可行域内。设 L ( x , λ ) \mathcal{L}(x,\lambda) L(x,λ) 对应的 最优解 x ∗ x^* x∗ 。则有 :
① g ( x ∗ ) < 0 g(x^*)<0 g(x∗)<0 .如图5(左1)所示,即表示 无约束时候的最优解也在可行域内部,那么该约束好像并没有存在的意义,这时我们认为该约束问题退化成为了无约束问题,这时有 L ( x , λ ) \mathcal{L}(x,\lambda) L(x,λ) 和 f ( x ) f(x) f(x) 等价, λ = 0 ∇ f ( x ) = 0 \lambda = 0 \quad \nabla f(x)=0 λ=0∇f(x)=0 。
② g ( x ∗ ) = 0 g(x^*)=0 g(x∗)=0 .如图5(左2)所示,即表示 无约束时候的最优解在可行域外部,有了约束条件之后该解可能取不到。这时的最优解在边界上,也称为边界解,此时约束条件是有效的。存在 λ ≥ 0 \lambda \geq0 λ≥0 使得 ∇ f ( x ) + ∇ g ( x ) = 0 \nabla f(x)+\nabla g(x)=0 ∇f(x)+∇g(x)=0 ,即 ∇ f ( x ) = − λ ∇ g ( x ) \nabla f(x)=-\lambda \nabla g(x) ∇f(x)=−λ∇g(x) 成立,为什么要 λ ≥ 0 \lambda \geq0 λ≥0 呢?
(我们要最小化 f ( x ) f(x) f(x) ,而 ∇ f ( x ) \nabla f(x) ∇f(x) 是指向 f ( x ) f(x) f(x) 增大最快的方向,即会指向可行域的内部,而 ∇ g ( x ) \nabla g(x) ∇g(x) 指向可行域的外部,所以两者梯度方向相反。 λ = 0 \lambda=0 λ=0 时候表示 无约束时候的最优解刚好在可行域边界,如图5 (右1)所示)
综合①②两种情况, λ = 0 \lambda=0 λ=0 和 g ( x ) = 0 g(x)=0 g(x)=0 总有一个成立,所以有 λ g ( x ) = 0 \lambda g(x)=0 λg(x)=0 恒成立。
我们将
λ
≥
0
\lambda\geq0
λ≥0 称为对偶可行性(Dual Feasibility),
λ
g
(
x
)
=
0
\lambda g(x)=0
λg(x)=0 称为互补松弛性(Complementary Slackness)。综合三种可行性和梯度向量平行,我们有:
{
∇
x
L
=
∇
f
(
x
)
+
λ
∇
g
(
x
)
=
0
g
(
x
)
≤
0
λ
≥
0
λ
g
(
x
)
=
0
(2.4)
\left\{ \begin{aligned} \nabla_{x}\mathcal{L}=\nabla f(x)+\lambda \nabla g(x)=0\\ g(x)\leq0 \\ \lambda \geq 0 \\ \lambda g(x)=0 \end{aligned} \right.\tag{2.4}
⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧∇xL=∇f(x)+λ∇g(x)=0g(x)≤0λ≥0λg(x)=0(2.4)
公式(2.4)称为 K.K.T(Karush-Kuhn-Tucker) 条件。
※ 对应到我们的优化问题(公式 2.1),拉格朗日函数表述为:
L
(
ω
,
b
,
λ
)
=
1
2
∣
∣
ω
∣
∣
2
−
∑
i
=
1
n
λ
i
(
y
i
(
ω
T
x
i
+
b
)
−
1
)
(2.5)
\mathcal{L} (\omega,b,\lambda)=\frac{1}{2}||\omega||^2 - \sum^n_{i=1}\lambda_i(y_i(\omega^Tx_i+b)-1) \tag{2.5}
L(ω,b,λ)=21∣∣ω∣∣2−i=1∑nλi(yi(ωTxi+b)−1)(2.5)
※ 注意这里的
x
i
x_i
xi 为列向量
原优化问题目标函数表述为:
min
ω
,
b
θ
(
ω
)
=
min
ω
,
b
max
λ
≥
0
L
(
ω
,
b
,
λ
)
=
p
∗
(2.6)
\mathcal{\min_{\omega,b}}\ \theta(\omega) = \mathcal{\min_{\omega , b}}\ \mathcal{\max_{\lambda\geq0}}\ \mathcal{L}(\omega,b,\lambda)=p^* \tag{2.6}
ω,bmin θ(ω)=ω,bmin λ≥0max L(ω,b,λ)=p∗(2.6)
这里的
p
∗
p^*
p∗ 即我们要求解问题的最优解,并且和最初的问题是等价的。而直接求解时候过程比较复杂(
λ
\lambda
λ 约束为不等式约束,并且有
ω
\omega
ω 和
b
b
b 两个参数),所以我们利用拉格朗日对偶性将问题转换为:
max
λ
≥
0
min
ω
,
b
L
(
ω
,
b
,
λ
)
=
d
∗
(2.7)
\mathcal{\max_{\lambda\geq0}}\ \mathcal{\min_{\omega , b}}\ \mathcal{L}(\omega,b,\lambda)=d^* \tag{2.7}
λ≥0max ω,bmin L(ω,b,λ)=d∗(2.7)
根据拉格朗日对偶性,有
d
∗
≤
p
∗
d^* \leq p^*
d∗≤p∗ ,满足 K.K.T. 条件后,有两者相等,则我们可以通过求解对偶问题(公式 2.7)得到最优解。
该问题的 K.K.T. 条件表述为:
{
∇
ω
,
b
L
(
ω
,
b
,
λ
)
=
0
−
∑
i
=
1
n
(
y
i
(
ω
T
x
i
+
b
)
−
1
)
≤
0
λ
≥
0
∑
i
=
1
n
λ
i
(
y
i
(
ω
T
x
i
+
b
)
−
1
)
=
0
(2.8)
\left\{ \begin{aligned} \nabla_{\omega,b}\mathcal{L}(\omega,b,\lambda)=0\\ -\sum^{n}_{i=1}(y_i(\omega^Tx_i+b)-1) \leq 0 \\ \lambda \geq 0 \\ \sum^n_{i=1}\lambda_i(y_i(\omega^Tx_i+b)-1) =0 \end{aligned} \right.\tag{2.8}
⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧∇ω,bL(ω,b,λ)=0−i=1∑n(yi(ωTxi+b)−1)≤0λ≥0i=1∑nλi(yi(ωTxi+b)−1)=0(2.8)
求解对偶问题的步骤(含公式化简):
①根据 K.K.T. 条件中的梯度向量平行条件有:
∂
L
∂
ω
=
0
⇒
ω
=
∑
i
=
1
n
λ
i
y
i
x
i
∂
L
∂
b
=
0
⇒
∑
i
=
1
n
λ
i
y
i
=
0
(2.9)
\begin{aligned} \frac{\partial \mathcal{L}}{\partial \mathcal{\omega}}=0 \ &\Rightarrow\ \omega=\sum^{n}_{i=1}\lambda_iy_ix_i \\ \frac{\partial \mathcal{L}}{\partial \mathcal{b}}=0 \ &\Rightarrow \ \sum^{n}_{i=1}\lambda_iy_i=0 \end{aligned} \tag{2.9}
∂ω∂L=0 ∂b∂L=0 ⇒ ω=i=1∑nλiyixi⇒ i=1∑nλiyi=0(2.9)
将公式 2.9带入公式 2.5 有:
L
(
ω
,
b
,
λ
)
=
1
2
∣
∣
ω
∣
∣
2
−
∑
i
=
1
n
λ
i
(
y
i
(
ω
T
x
i
+
b
)
−
1
)
=
1
2
ω
T
ω
−
∑
i
=
1
n
λ
i
y
i
ω
T
x
i
−
∑
i
=
1
n
λ
i
y
i
b
+
∑
i
=
1
n
λ
i
=
1
2
ω
T
∑
i
=
1
n
λ
i
y
i
x
i
−
∑
i
=
1
n
λ
i
y
i
ω
T
x
i
+
∑
i
=
1
n
λ
i
=
−
1
2
ω
T
∑
i
=
1
n
λ
i
y
i
x
i
+
∑
i
=
1
n
λ
i
=
−
1
2
(
∑
i
=
1
n
λ
i
y
i
x
i
)
T
∑
i
=
1
n
λ
i
y
i
x
i
+
∑
i
=
1
n
λ
i
=
−
1
2
∑
i
=
1
n
λ
i
y
i
(
x
i
)
T
∑
i
=
1
n
λ
i
y
i
x
i
+
∑
i
=
1
n
λ
i
=
−
1
2
∑
j
=
1
n
∑
i
=
1
n
λ
i
y
i
(
x
i
)
T
λ
j
y
j
x
j
+
∑
i
=
1
n
λ
i
=
−
1
2
∑
j
=
1
n
∑
i
=
1
n
λ
i
y
i
λ
j
y
j
(
x
i
)
T
x
j
+
∑
i
=
1
n
λ
i
\begin{aligned} \mathcal{L} (\omega,b,\lambda) &=\frac{1}{2}||\omega||^2 - \sum^n_{i=1}\lambda_i(y_i(\omega^Tx_i+b)-1) \\ &=\frac{1}{2}\omega^T\omega-\sum^n_{i=1}\lambda_iy_i\omega^Tx_i- \sum^n_{i=1}\lambda_iy_ib+\sum^n_{i=1}\lambda_i\\ &=\frac{1}{2}\omega^T \sum^{n}_{i=1}\lambda_iy_ix_i- \sum^n_{i=1}\lambda_iy_i\omega^Tx_i+\sum^n_{i=1}\lambda_i\\ &=-\frac{1}{2}\omega^T \sum^{n}_{i=1}\lambda_iy_ix_i+\sum^n_{i=1}\lambda_i\\ &=-\frac{1}{2}{(\sum^{n}_{i=1}\lambda_iy_ix_i)}^T \sum^{n}_{i=1}\lambda_iy_ix_i+\sum^n_{i=1}\lambda_i\\ &=-\frac{1}{2}\sum^{n}_{i=1}\lambda_iy_i{(x_i)}^T \sum^{n}_{i=1}\lambda_iy_ix_i+\sum^n_{i=1}\lambda_i\\ &=-\frac{1}{2}\sum^{n}_{j=1}\sum^{n}_{i=1}\lambda_iy_i{(x_i)}^T\lambda_jy_j{x_j}+\sum^n_{i=1}\lambda_i\\ &=-\frac{1}{2}\sum^{n}_{j=1}\sum^{n}_{i=1}\lambda_iy_i\lambda_jy_j{(x_i)}^T{x_j}+\sum^n_{i=1}\lambda_i \end{aligned}
L(ω,b,λ)=21∣∣ω∣∣2−i=1∑nλi(yi(ωTxi+b)−1)=21ωTω−i=1∑nλiyiωTxi−i=1∑nλiyib+i=1∑nλi=21ωTi=1∑nλiyixi−i=1∑nλiyiωTxi+i=1∑nλi=−21ωTi=1∑nλiyixi+i=1∑nλi=−21(i=1∑nλiyixi)Ti=1∑nλiyixi+i=1∑nλi=−21i=1∑nλiyi(xi)Ti=1∑nλiyixi+i=1∑nλi=−21j=1∑ni=1∑nλiyi(xi)Tλjyjxj+i=1∑nλi=−21j=1∑ni=1∑nλiyiλjyj(xi)Txj+i=1∑nλi
L ( ω , b , λ ) = − 1 2 ∑ j = 1 n ∑ i = 1 n λ i y i λ j y j ( x i ) T x j + ∑ i = 1 n λ i (2.10) \mathcal{L} (\omega,b,\lambda)= -\frac{1}{2}\sum^{n}_{j=1}\sum^{n}_{i=1}\lambda_iy_i\lambda_jy_j{(x_i)}^T{x_j}+\sum^n_{i=1}\lambda_i \tag{2.10} L(ω,b,λ)=−21j=1∑ni=1∑nλiyiλjyj(xi)Txj+i=1∑nλi(2.10)
②对于
λ
\lambda
λ 求 极大值,即得到关于
λ
\lambda
λ 的单变量最优化问题:
max
λ
∑
i
=
1
n
λ
i
−
1
2
∑
j
=
1
n
∑
i
=
1
n
λ
i
y
i
λ
j
y
j
(
x
i
)
T
x
j
s.t.
λ
i
≥
0
,
i
=
1
,
2
,
⋯
,
n
∑
i
=
1
n
λ
i
y
i
=
0
(2.11)
\begin{aligned} \mathcal{\max_{\lambda}}\quad &\sum^n_{i=1}\lambda_i-\frac{1}{2}\sum^{n}_{j=1}\sum^{n}_{i=1}\lambda_iy_i\lambda_jy_j{(x_i)}^T{x_j}\\ \text{s.t.}\quad &\lambda_i\geq0,i=1,2,\cdots,n\\ &\sum^{n}_{i=1}\lambda_iy_i=0 \end{aligned} \tag{2.11}
λmaxs.t.i=1∑nλi−21j=1∑ni=1∑nλiyiλjyj(xi)Txjλi≥0,i=1,2,⋯,ni=1∑nλiyi=0(2.11)
根据
λ
\lambda
λ 可以得到
ω
∗
b
∗
\omega^*\ b^*
ω∗ b∗ :
ω
∗
=
∑
i
=
1
n
λ
i
y
i
x
i
b
∗
=
−
1
2
(
max
i
,
y
=
−
1
ω
∗
T
x
i
+
min
i
,
y
=
1
ω
∗
T
x
i
)
(2.12)
\begin{aligned} \omega^*&=\sum^{n}_{i=1}\lambda_iy_ix_i \\ b^*&=-\frac{1}{2}({\mathcal{\max_{i,y=-1}}\omega^{*T}x_i}+{\mathcal{\min_{i,y=1}}\omega^{*T}x_i}) \end{aligned}\tag{2.12}
ω∗b∗=i=1∑nλiyixi=−21(i,y=−1maxω∗Txi+i,y=1minω∗Txi)(2.12)
公式2.12 中的2式表示,选取一系列平行超平面中距离两样本族支持向量距离相等的一个,可参考 图3 中的橙色线。
其中 λ \lambda λ 的求解需要用到 SMO 算法。
核函数:
待更新~
三、 证明SVM
敬请期待~