原问题(PRIME PROBLEM)和对偶问题(DUAL PROBLEM) [半懂不懂一知半解懵懵懂懂]
-
拉格朗日乘子法
Step.1原函数
假设有K个不等式,m个等式
Step.2定义拉格朗日函数 L ( w , α , β ) L(w,\alpha,\beta) L(w,α,β)
为每条约束条件添加拉格朗日乘子 α i ≥ 0 \alpha_i≥0 αi≥0
Step.3对偶函数
L ( w , α , β ) L(w,\alpha,\beta) L(w,α,β)遍历所有定义域上的 w w w,找到使 L ( w , α , β ) L(w,\alpha,\beta) L(w,α,β)最小的,同时将这个最小的函数值赋值给 θ ( α , β ) \theta(\alpha,\beta) θ(α,β)
- 定理
1.定理一:对偶定理(DUALITY THEOREM)证明:
引申:对偶差距(DUALITY GAP)
2.定理二:强对偶定理(STRONG DUALITY THEOREM)
转化为对偶问题
- 将SVM的优化问题改造为原问题
为了让改进至目前的SVM的优化问题满足强对偶定理,而原问题中的 g i ( w ) ≤ 0 g_i(w)≤0 gi(w)≤0,故首先要将SVM的两个限制条件由 ≥ 0 ≥0 ≥0进行改造
此时原问题中的
而不等式
g
i
(
w
)
≤
0
g_i(w)≤0
gi(w)≤0被分成了两部分
由于问题中全为不等式,故不存在
h
i
(
w
)
=
0
h _i(w)=0
hi(w)=0项。
按照对偶问题的定义将对偶问题写成如下形式:
其中
α
i
,
β
i
\alpha_i,\beta_i
αi,βi分别是改造两个
g
i
(
w
)
≤
0
g_i(w)≤0
gi(w)≤0条件的系数,类比于原问题中的拉格朗日乘子
α
i
\alpha_i
αi
- 如何将原问题化为对偶问题
由于要对 ( w , δ i , b ) (w, δ _i,b) (w,δi,b)分别遍历求最小值,所以对三个变量分别求导并令导数 = 0 =0 =0(由于 w w w为向量,故使用向量求导准则)
将求得的三个式子带入表达式中,可以将SVM的原问题转化为对偶问题:
算法流程 [这个好难懂诶(#`O′)]
1.如何求解上述对偶问题
2.基于对偶问题给出SVM算法的统一流程
-
根据核函数的公式,只需要知道核函数的值,而无需知道具体的 ϕ ( x i ) , ϕ T ( x i ) \phi(x_i),\phi^T(x_i) ϕ(xi),ϕT(xi),带入公式求解出所有的 α i ( i = 1 \alpha_i(i=1 αi(i=1~ N ) N) N)后,可以根据求出 w w w
注意 由于 ϕ ( x i ) \phi(x_i) ϕ(xi)不知道是否具有显示表达式,所以 w w w也不知道是否具有显示表达式。 -
如何求b
首先,
其次,根据KKT条件,对所有的 i ( 1 i(1 i(1~ N ) N) N),可以得到两个 g i ( w ) g_i(w) gi(w)分式 = 0 =0 =0,
{ β i δ i = 0 → ( c − α i ) δ i = 0 α i [ 1 + δ i − y i w T ϕ ( X i ) − y i b ] = 0 \left\{ \begin{aligned} &\beta_iδ_i=0 → (c-\alpha_i)δ_i=0& \\ &\alpha_i[1+δ_i-y_iw^T\phi(X_i)-y_ib]=0& \\ \end{aligned} \right. {βiδi=0→(c−αi)δi=0αi[1+δi−yiwTϕ(Xi)−yib]=0
并且同时,如果对某个i, α i ≠ 0 \alpha_i≠0 αi=0且 α i ≠ c \alpha_i≠c αi=c,则根据KKT条件,必有
{ δ i = 0 1 + δ i − y i w T ϕ ( X i ) − y i b = 0 \left\{ \begin{aligned} &δ_i=0 & \\ &1+δ_i-y_iw^T\phi(X_i)-y_ib=0& \\ \end{aligned} \right. {δi=01+δi−yiwTϕ(Xi)−yib=0
由于等式
1
+
δ
i
−
y
i
w
T
ϕ
(
X
i
)
−
y
i
b
=
0
1+δ_i-y_iw^T\phi(X_i)-y_ib=0
1+δi−yiwTϕ(Xi)−yib=0中的项,
y
i
w
T
ϕ
(
X
i
)
=
∑
j
=
1
N
α
i
y
i
y
j
K
(
X
j
,
X
i
)
y_iw^T\phi(X_i)=\sum_{j=1}^N \alpha_iy_iy_jK(X_j,X_i)
yiwTϕ(Xi)=j=1∑NαiyiyjK(Xj,Xi)
注意 如果
α
i
=
0
\alpha_i=0
αi=0,则该样本不会出现在公式的求和中出现,也就不会对
f
(
x
)
f(x)
f(x)产生影响,如果
α
i
>
0
\alpha_i>0
αi>0,则必有
y
i
f
(
x
i
)
=
1
y_if(x_i)=1
yif(xi)=1,所对应的样本点位于最大间隔边界上,是一个支持向量。
所以只需要找到
0
<
α
i
<
c
0<\alpha_i<c
0<αi<c,那么
b
b
b的求解公式为:
-
对于一个测试样本X,如何获得其预测的类别
1.“核函数戏法”
2.只通过核函数,也能求得SVM算法最终预测的类别
3.SVM训练和测试的流程(基于对偶问题的求解)
a.训练过程
①输入训练数据
②求 α i ( i = 1 \alpha_i(i=1 αi(i=1~ N ) N) N)
③求 b b b
b.测试过程
课后思考题
浙江大学《机器学习》 mooc课程