拉格朗日乘子法
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)
此时原问题中的 而不等式 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的原问题转化为对偶问题: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课程