支持向量机(一)----总述(点到平面的距离,Lagrange函数,Lagrange对偶)

概述:在对支持向量机的学习和使用过程中,遇到了许许多多的问题,通过查阅各种资料,也是逐一攻克了遇到的问题。感悟颇多,写此博文的目的是想以一个学习者的身份从一个刚接触支持向量机的角度去记录模型推到过程中的种种困惑以及理解过程,以帮助更多人的更省时的了解和学习支持向量机;

本文主要记录和解决的问题:

  说明:每个问题所标的星级表示此问题的理解对后边推导过程的影响程度,也就是说理解不到位会使得自己越看越糊涂(仅供参考)

  1.我自己学习和推到支持向量机的过程路线

  2.三维空间中点到直线的距离的计算,以及分离超平面的方程(5颗星

  3.Lagrange乘子法的原理(5颗星

  4.对偶算法原理(5颗星

下边就上述的每一个问题进行整理

1. 下图是我对支持向量机的整个知识体系所涉及到的相应的知识的一个整理,图中同时也描述了各支持向量机之间的关系。

  

2. 三维空间中点到直线的距离的计算

  2.1 点到平面的距离

  

  2.2 分离超平面方程

  

3. Lagrange乘子法原理

  Lagrange乘子法的作用主要是用来解决条件极值问题的一种方法;

  条件极值的概念:对自变量除定义域限制外,还有其他条件限制。举例:例如求f(x,y)在条件g(x,y)= 0下的条件极值,称f(x,y)为目标函数,方程g(x,y)=0为约束条件,变量x,y为决策变量;

  如下图所示,假设g(x,y)=0的图像如下图所示,f(x,y)的等高线沿着x方向增大,有图示做直观分析,由A点到B点f(x,y)的值逐渐减小,由B点到C点f(x,y)的值逐渐增大。很显然在B点时f(x,y)取得了最小值,分析一下B点处g(x,y)=0所表示的曲线和f(x,y)等高线的关系。在B点处g(x,y)=0所表示的曲线和f(x,y)在B处的等高线必然是相切的。为了理解这样相切的关系,我们可以假设一只蚂蚁正在验证g(x,y)=0所表示的曲线的A处爬向C处,假如在B点f(x,y)的等高线穿过了B点,则到B点时蚂蚁还未爬到白色曲线的最底端,也就说明继续往底部爬最能找到别的等高线与曲线最低点相切。既然相切,那说明在B出等高线和g(x,y)所表示的曲线有公共切线,所以如下图f(x,y)在B点(假设B点的左边为(x0,y0))的法向量nf 和g(x,y)=0在B处的法向量共线(方向可能相同也可能不同),而曲线在B点处的梯度向量即为法向量,由此就可知他们的梯度向量共线。由此便可得到如下方程:

  

  透过求解上述方程组,我们就可以求解出条件极值问题的极值点,下边我们构造一个与上述问题等价的函数

   

  其在取得极值的条件为,和上述(1)(2)(3)完全等价,经过上述的构造和处理,就将一个条件极值问题转化成了一般极值问题

  

 

4. 对偶算法原理

  4.0 概述

  为什么要引入对偶算法?

  可以这样理解,我们要求解一个问题,比如说要求解一个函数的极值,假如这个问题自身简单并且容易求解,我们就直接求解便可,可是现在我们遇到了一个无法直接求解或者直接求解会非常麻烦,我们就有采用变换形式,构造等一系列的手段使得我们要求解的问题变得简单并且易于求解。而对偶算法就是我们面对一个比较复杂并且难以求解的问题时的一种解决该问题的方法或者说手段,具体思路概述如下图:现我们要求解4.1中的条件极值问题,我们构造出4.2中的Lagrange函数将条件极值问题转换成为非条件极值问题,观察形式以后我们还是觉得求解复杂,这边有了4.3中的对偶函数,我们可以通过求解对偶函数来得到原问题的解。这便是我们求解问题的一种思路。这样我们总会将一个复杂问题逐渐简化直到能够求解。具体介绍见入下各段落。

    

  4.1 初始问题

  标准形式的优化问题,数学表达如下:

  

  上述问题中的中自变量,而其定义域D为满足m个不等式约束和p个等式约束的x构成的集合的交集,并且假设此优化问题的最优值为 

  4.2 将初始问题转化成为Lagrange函数求极值

  上式就是求解在满足条件和条件时的的极小值,注意上式与问题3的不同点,约束条件既有等式约束,也有不等式约束,并且数量并不唯一。在问题3的描述中我们已经知道我们可以将条件极值问题等价的转换成为一个Lagrange函数求极值的问题。那么对于上述优化问题的求解我们同样可以构建出如下的拉格朗日函数求极值的问题

  

  注意这里的不等式约束有m个,等式约束有p个,为第i个不等式约束对应的Lagrange乘子为第i个等式约束对应的Lagrange乘子;

  4.3 引入Lagrange函数的对偶函数

  现在我们的目标就是求解函数的极值点,近而就可以求出上述问题的极小值(前提为上述问题存在极小值),如果我们徒手计算的话,显然通过求导我们要列出一个含有居多方程的方程组,而我们也知道利用梯度下降法让计算机帮助我们求导,可是梯度下降法也是有局限性的,对于没有条件限制的极值问题,它不失为一种好的办法。

  有一种解决办法它的思想是这样的:假如我们能够找到一个函数,这个函数如果满足其极大值是我们要求解的目标函数的极小值(并且这个函数的极大值求解起来比我们求解原问题更方便快捷)我们的问题就得解了,这便引入了Lagrange函数的对偶函数,即为Lagrange函数关于x取得的最小值,即对有:

  

  对于上述4.2中的Lagrange函数如果其关于x无极小值(即无下确界),则上述对偶函数的取值就为。这里我们假设我们的Lagrange函数关于x存在极小值点(即下确界);回顾一下我们的初衷,我们是为了方便求解Lagrange函数的极小值而引入Lagrange对偶函数并通过求解Larange对偶函数的极大值来得到Lagrange函数的极小值的。那我们就必须对Lagrange对偶函数即做限制使得的极大值正好是Lagrange函数的极小值;要使得恒成立,就需,为什么呢?我们由4.1中优化问题定义式知,,故若的后两项之和必然小于等于0,所以此时是恒成立的。而等号成立的条件为后两项之和正好为0,即

  对的补充说明:这里我们可能要提问,我们并不需要每一个lambda都大于零啊,我们只需要保证整体小于0就可,也就是说在众多的lambda中我们可以允许有一部分lambda是大于0,显然这样想并没有错,而在这里我们要求每一个,只是做了更为严格的要求,并不会对我们原问题的结果产生影响。

  4.4 对偶函数的解与初始问题的解完全等价的条件(即KKT条件) 

    再次回顾我们求解4.1中初始问题的思路:如下图所示我们是在通过不断的转化将一个原本求解复杂的问题逐步转换成为一个相对容易求解的问题,在这个过程中我们考虑满足什么样的条件才能使得最终Lagrange对偶函数的极大值即为我们原问题的极小值

    

  设对偶函数取得极大值的点为(λ*,ν*),设原问题(4.1)取得极小值的点为(x*,f0(x*))

  

  上述式(1)等号成立的条件为:4.2中的Lagrange函数对关于x求偏导方程为0的解为x*,即:

  

  上述式(2)等号成立的条件为:

  

  我们在4.3中已经得出结论,故式4成立等价于下述式5:

  

  综上所述,要使得原问题的极小值(最优值)恰好是对偶函数的极大值则需满足下述条件即KKT条件:

  

 

  

 

 

 

  

  

  

 

  

 

  

  

 

 

  

  

  

  

 

  

  

  

 

                       

 

 

  

 

 

  

 

 

 

 

 

  

  

 

 

 

 

 

 

 

 

 

  

 

  

 

posted @ 2017-08-16 16:23  猴子吃果冻  阅读(1065)  评论(0编辑  收藏  举报