最全面的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=1Kαifi(x)+j=1Lβ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=1Kαifi(x)+j=1Lβ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算法的学习理论总结

SVM小白教程:拉格朗日对偶

拉格朗日对偶问题的一些介绍

SVM -支持向量机原理详解与实践之二

拉格朗日对偶问题与 KKT 条件

机器学习之支持向量机:SMO算法