最全面的SVM介绍(从拉格朗日对偶到SMO算法)
Posted 小白学推荐
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最全面的SVM介绍(从拉格朗日对偶到SMO算法)相关的知识,希望对你有一定的参考价值。
SVM主要用来处理二分类问题,其也可用以用来解决多分类问题与回归问题,只不过不常用。其目标是找到一个最优的分隔平面,来使得不同类别之间的距离最大化。核心思想是将问题转化成凸二次规划求解的问题。
一、拉格朗日对偶变换
想要搞清楚SVM问题是如何进行转化的,首先就要搞清楚什么是拉格朗日对偶变换,我们这里简要的叙述一下。其核心思想是将求解最优问题转化成为相对容易求解的问题。
原始问题
假设我们研究的优化问题如下:
M i n i m i z e f 0 ( x ) Minimizef_0(x) Minimizef0(x)
s
.
t
.
f
i
(
x
)
≤
0
i
=
1
,
.
.
.
,
K
s.t.\\quad f_i(x)\\le 0\\quad \\quad i= \\1,...,K\\
s.t.fi(x)≤0i=1,...,K
g
j
(
x
)
=
0
j
=
1
,
.
.
.
,
L
g_j(x)= 0\\quad \\quad j= \\1,...,L\\
gj(x)=0j=1,...,L
同时我们假设满足约束条件的最优解为 x ∗ x^* x∗, p ∗ = f 0 ( x ∗ ) p^*=f_0(x^*) p∗=f0(x∗)
极小极大问题
那么根据拉格朗日函数我们可以构造出:
L
(
x
,
α
,
β
)
=
f
0
(
x
)
+
∑
i
=
1
K
α
i
f
i
(
x
)
+
∑
j
=
1
L
β
j
g
j
(
x
)
α
≥
0
L(x,\\alpha ,\\beta)=f_0(x)+\\sum_i=1^K\\alpha_if_i(x)+\\sum_j=1^L\\beta_jg_j(x)\\quad\\quad\\quad \\alpha \\ge0
L(x,α,β)=f0(x)+i=1∑Kαifi(x)+j=1∑Lβjgj(x)α≥0
拉格朗日函数是一个关于 x , α x,\\alpha x,α和 β \\beta β的函数,其中 x x x是原问题的自变量, α , β \\alpha,\\beta α,β被称为拉格朗日乘子,是标量。
其中 f 0 ( x ) f_0(x) f0(x)是原优化问题的目标函数, f i ( x ) f_i(x) fi(x)为原优化问题的不等式约束项, g i ( x ) g_i(x) gi(x)为原问题的等式约束项。
我们构造函数
θ
p
(
x
)
\\theta_p(x)
θp(x)如下:
θ
p
(
x
)
=
max
α
,
β
L
(
x
,
α
,
β
)
\\theta_p(x)=\\max\\limits_\\alpha,\\betaL(x,\\alpha,\\beta)
θp(x)=α,βmaxL(x,α,β)
假设存在违反约束条件的样本
x
x
x,即存在某个
i
i
i使得
f
i
(
x
)
>
0
f_i(x)>0
fi(x)>0或者
g
i
(
x
)
≠
0
g_i(x)\\neq0
gi(x)=0,如果
f
i
(
x
)
>
0
f_i(x)>0
fi(x)>0,那么我们可以使得
α
i
\\alpha_i
αi的取值为
+
∞
+\\infty
+∞,那么
θ
p
(
x
)
\\theta_p(x)
θp(x)的取值也为
+
∞
+\\infty
+∞;如果
g
i
(
x
)
≠
0
g_i(x)\\neq0
gi(x)=0,同理我们使得
β
i
\\beta_i
βi为
+
∞
+\\infty
+∞,
θ
p
(
x
)
\\theta_p(x)
θp(x)的取值同样为
+
∞
+\\infty
+∞。即:
θ
p
(
x
)
=
max
α
,
β
[
f
0
(
x
)
+
∑
i
=
1
K
α
i
f
i
(
x
)
+
∑
j
=
1
L
β
j
g
j
(
x
)
]
=
+
∞
\\theta_p(x)=\\max\\limits_\\alpha,\\beta[f_0(x)+\\sum_i=1^K\\alpha_if_i(x)+\\sum_j=1^L\\beta_jg_j(x)]=+\\infty
θp(x)=α,βmax[f0(x)+i=1∑Kαifi(x)+j=1∑Lβjgj(x)]=+∞
但如果样本
x
x
x满足约束条件,即
f
i
(
x
)
≤
0
f_i(x)\\le0
fi(x)≤0并且
g
i
(
x
)
=
0
g_i(x)=0
gi(x)=0,那么当
α
i
\\alpha_i
αi的取值为0时,使得
θ
p
(
x
)
=
f
0
(
x
)
\\theta_p(x)=f_0(x)
θp(x)=f0(x),即:
θ
p
(
x
)
=
max
α
,
β
[
f
0
(
x
)
+
∑
i
=
1
K
α
i
f
i
(
x
)
+
∑
j
=
1
L
β
j
g
j
(
x
)
]
=
f
0
(
x
)
\\theta_p(x)=\\max\\limits_\\alpha,\\beta[f_0(x)+\\sum_i=1^K\\alpha_if_i(x)+\\sum_j=1^L\\beta_jg_j(x)]=f_0(x)
θ[笔记]关于支持向量机(SVM)中 SMO算法的学习理论总结