KKT了解

最近再看支持向量机的时候,推公式时用到对偶问题。从而引出KKT条件,参考http://blog.csdn.net/johnnyconstantine/article/details/46335763

    KKT条件是解决最优化问题的时候用到的一种方法。这里的最优化问题通常是指对于给定的某一函数,求其在指定作用域上的全局最小值。提到KKT条件一般回附带的提一下拉格朗日乘子,两者均是求解最优化问题的方法,不同之处在于

  (1)无约束条件

 这是简单的情况,解决方法通常是函数对变量求导,令导数等于零的点可能是极值点。将结果带回原函数进行验证

(2)等式约束条件

设目标函数为f(x),约束条件为hk(x),如下:

    则解决方法拉格朗日函数F(x),    

                                   

   其中是各个约束条件的待定系数。

            然后解变量的偏导方程:

                      

 如果有l个约束条件,就应该有l+1个方程。求出的方程组的解就可能是最优化值(高等数学中提到的极值),将结果带回原方程验证就可得到解。

(3)不等式约束条件

   设目标函数f(x),不等式约束为g(x)  等式约束为h(x) 此时问题的描述为:

                     

    则我们定义不等式约束下的拉格朗日函数L  

                        

   其中f(x)是原目标函数,hj(x)是第j个等式约束条件,是对应的约束系数约束条件,gk是不等式约束,uk是对应的约束系数 

          此时若要求解上述优化问题,必须满足下述优化条件

                                        

    这些求解条件就是KKT条件。(1)是对拉格朗日函数取极值时候带来的一个必要条件,(2)是拉格朗日系数约束(同等式情况),(3)是不等式约束情况,(4)是互补松弛条件,(5)、(6)是原约束条件。

   对于一般的任意问题而言,KKT条件是使一组解成为最优解的必要条件,当原问题是凸问题的时候,KKT条件也是充分条件。

   

                  

原文地址:https://www.cnblogs.com/09120912zhang/p/8059446.html