• 拉格朗日乘子法和KKT条件


    拉格朗日乘子法和KKT条件

    @(learning)
    参考:
    解密SVM系列(一):关于拉格朗日乘子法和KKT条件
    深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件
    拉格朗日乘子法

    在求取有约束条件的优化问题时,拉格朗日乘子法(Lagrange Multiplier) 和KKT条件是非常重要的两个求取方法,对于等式约束的优化问题,可以应用拉格朗日乘子法去求取最优值;如果含有不等式约束,可以应用KKT条件去求取。当然,这两个方法求得的结果只是必要条件,只有当是凸函数的情况下,才能保证是充分必要条件。KKT条件是拉格朗日乘子法的泛化。

    最优化问题

    分类:

    • 无约束优化问题

    [min f(x) ]

    求解:费尔曼定理(Fermat),即求取(f(x))的极值点作为候选最优值,再验证;如果是凸函数,可以保证最优解。

    • 有等式约束的优化问题

    [egin{array}{ll} min & f(x) \ mbox{s.t.} & h_i(x)=0;i=1,2,...,n \ end{array}]

    求解:常用拉格朗日乘子法,即把等式约束(h_i(x))乘一个系数加上(f(x))组成一个式子,称为拉格朗日函数,而系数称为拉格朗日乘子,再接(i)求解

    • 有不等式约束的优化问题

    [egin{array}{ll} min & f(x) \ mbox{s.t.} & h_i(x) le 0;i=1,2,...,n \ & h_j(x)=0;j=1,2,...,m end{array}]

    求解:常使用KKT(Karush-Kuhn-Tucker)条件,把所有的等式,不等式约束与(f(x))写为一个式子,即拉格朗日函数,系数为拉格朗日乘子;通过满足一些可以求出最优值的必要条件,即附加的约束条件,来求解。
    KKT条件:
    - (L(a_i,x))(x)的求导为零
    - (h(x)=0)(h(x))表示等式约束
    - (sum_{i=1}^{n} a_ig(x)=0)(g(x))表示不等式约束

    为什么拉格朗日乘子法与KKT条件能够得到最优值?
    最优化问题,即目标函数在约束条件下满足需求的极值。
    目标函数与约束条件在同一个空间中的不同平面;约束条件的不同平面可以组合成满足约束的一个大平面;目标函数在这个大平面上取得极值即为最优。所以想方设法把,目标函数与约束条件组合成一个平面,从而转化了(i)问题,为了不影响原目标函数所以要满足KKT条件。

  • 相关阅读:
    #翻译# 深入JavaScript的Unicode难题(上)
    深入 JavaScript(6)
    Angular service, 服务
    [译] 什么是移动友好的
    [译] 新手和老手都将受益的JavaScript小技巧
    Create XHR
    计算新浪Weibo消息长度
    SpringMVCDemo中,遇到的问题(四) 之分页功能
    为什么要用where 1=1?
    SpringMVCDemo中,遇到的问题(二)之mybatis中的mapper映射
  • 原文地址:https://www.cnblogs.com/lwhp/p/8330657.html
Copyright © 2020-2023  润新知