理解SVM的数学储备知识

一:拉格朗日乘子法和KKT条件

 拉格朗日乘子法KKT条件
用途:解决优化(最小化)问题的常用方法解决优化(最小化)问题的常用方法
使用场景:条件极值:等式约束场景条件极值:不等式约束情景(可看作是拉格朗日乘子法的泛化)
核心思想:  
 

至于为什么这么做可以求解最优化?维基百科上给出了一个比较好的直观解释。

举个二维最优化的例子:

     min f(x,y)    

     s.t. g(x,y) = c

      这里画出z=f(x,y)的等高线(函数等高线定义见百度百科):

                    

       绿线标出的是约束g(x,y)=c的点的轨迹。蓝线是f(x,y)的等高线。箭头表示斜率,和等高线的法线平行。从梯度的方向上来看,显然有d1>d2。绿色的线是约束,也就是说,只要正好落在这条绿线上的点才可能是满足要求的点。如果没有这条约束,f(x,y)的最小值应该会落在最小那圈等高线内部的某一点上。而现在加上了约束,最小值点应该在哪里呢?显然应该是在f(x,y)的等高线正好和约束线相切的位置,因为如果只是相交意味着肯定还存在其它的等高线在该条等高线的内部或者外部,使得新的等高线与目标函数的交点的值更大或者更小,只有到等高线与目标函数的曲线相切的时候,可能取得最优值。

  如果我们对约束也求梯度∇g(x,y),则其梯度如图中绿色箭头所示。很容易看出来,要想让目标函数f(x,y)的等高线和约束相切,则他们切点的梯度一定在一条直线上(f和g的斜率平行)。

  也即在最优化解的时候:∇f(x,y)=λ(∇g(x,y)-C)    (其中∇为梯度算子; 即:f(x)的梯度 = λ* g(x)的梯度,λ是常数,可以是任何非0实数,表示左右两边同向。)

      即:▽[f(x,y)+λ(g(x,y)−c)]=0λ≠0

  那么拉格朗日函数: F(x,y)=f(x,y)+λ(g(x,y)−c) 在达到极值时与f(x,y)相等,因为F(x,y)达到极值时g(x,y)−c总等于零。

  min( F(x,λ) )取得极小值时其导数为0,即▽f(x)+▽∑ni=λihi(x)=0,也就是说f(x)和h(x)的梯度共线。

  简单的说,在F(x,λ)取得最优化解的时候,即F(x,λ)取极值(导数为0,▽[f(x,y)+λ(g(x,y)−c)]=0)的时候,f(x)与g(x) 梯度共线,此时就是在条件约束g(x)下,f(x)的最优化解。

 

目标函数:

               f(x)

约束条件:

  1. 不等式约束 g(x)\leq 0
  2. 还可能有等式约束...(本文为了解释方便并未考虑含有等式约束的情况) 

将上诉优化问题转化为拉格朗日函数表示:

拉格朗日函数L(x)

L(x,u) = f(x) + \sum_{k=1}^{n}u_{k}g_{k}(x)

其中u_{k}>0,g(x)\leq 0.

 

\large \\\because u_{k}\geq0,g(x)\leq0\\\therefore ug(x)\leq0\\\therefore max_{u}L(x,u) =f(x)\; \eqno(1) \\\therefore min_{x}f(x) = min_{x}max_{u}L(x,u)\; \eqno(2)\\\because max_{u}min_{x}L(x,u) = max_{u}[min_{x}f(x)+min_{x}ug(x)] = max_{u}min_{x}f(x)+ max_{u}min_{x}ug(x)\\ And \ u_{k}\geq0,g(x)\leq0\\ \therefore if \ u=0 \or\ g(x)=0: max_{u}min_{x}L(x,u) = max_{u}min_{x}f(x) = min_{x}f(x) \; \eqno(3)\\\if \ u>0 \and\ g(x)<0:ug(x)\rightarrow -\infty\\ \therefore \if \want \the\ question\ have\ answer, u = 0 \or\ g(x) = 0\\ (2)and(3)\rightarrow min_{x}max_{u}L(x,u)=max_{u}min_{x}L(x,u)

即有:

\large \left\{\begin{matrix} & \\ L(x,u)=f(x)+\sum_{k=1}^{n}u_{k}g_{k}(x) & \\ u_{k}\geq 0 & \\ g_{k}(x)\leq0 \end{matrix}\right. \\\Rightarrow \ min_{x}max_{u}L(x,u)=max_{u}min_{x}L(x,u)=min_{x}f(x)

我们把\large max_{u}min_{x}L(x,u)称为原问题的\large min_{x}max_{u}L(x,u)的对偶问题,上面表明,当满足一定条件时,原问题、对偶问题以及\large min_{x}f(x)是相同的,且在最优解\large x^*处也有\large u = 0 \or\ g(x)=0。将\large x^*带入(1)式中得:\large max_{u}L(x^*,u) =f(x^*)\;

由(4)式得:\large max_{u}min_{x}L(x^*,u) = max_{u}min_{x}f(x^*) = min_{x}f(x^*) = f(x^*) \;

\large \therefore L(x^*,u)=min_{x}L(x,u)

说明\large x^*是L(x,u)的极值点。即有\large \frac{\partial L(x,u) }{\partial x}|x=x^*=0

以上就是KKT条件的数学推导。总结一下,KKT条件可以表现为:

\large \left\{\begin{matrix} & \\L(x,\lambda ,u)=f(x)+\sum_{i=1}^{m}\lambda_{i}h_{i}(x)+\sum_{k=1}^{n}u_{k}g_{k}(x) & \\ u_{k}\geq 0 &\\ h_{i}(x)=0&\\\lambda_{i}> 0&\\ g_{k}(x)\leq0 \end{matrix}\right. \\\Rightarrow \ \left\{\begin{matrix} &\\min_{x}max_{u}L(x,\lambda,u)=max_{u}min_{x}L(x,\lambda,u)=min_{x}f(x)=f(x^*)\\u_{k}g_{k}(x^*)=0\\\frac{\partial L(x,\lambda,u) }{\partial x}|_{x=x^*}=0 \end{matrix}\right.

注: 1.   x,\lambda,u都是向量。

        2.   最后的那个偏导为 0表明f(x)在极值点x*处的梯度是各个h(x)和g(x)梯度的线性组合。

 

 

步骤小结:  
   
   
   
   

无意看到已经有两位大神把svm原理和所涉及的数学知识讲解的太清楚了,贴此链接

https://blog.csdn.net/v_july_v/article/details/7624837/

https://blog.csdn.net/alwaystry/article/details/60957096 

以飨读者,同时向原作者花费大力气整理出的资料表示出由衷感谢。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值