zoukankan      html  css  js  c++  java
  • 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条件也是充分条件。

       

                      

  • 相关阅读:
    leetcode
    leetcode: Path Sum II 迭代法
    leetcode : valid binary search tree
    地域划分 编程题
    n个整数中,找出尽可能多的数使他们组成一个等差数列,求最长等差数列的长度
    Nodejs 调试方法
    精心收集的48个JavaScript代码片段,仅需30秒就可理解
    React Native ref高级用法&&setNativeProps使用
    Git工作流指南:Gitflow工作流
    Git工作流指南:Pull Request工作流
  • 原文地址:https://www.cnblogs.com/09120912zhang/p/8059446.html
Copyright © 2011-2022 走看看