正在学习机器学习的相关内容,其中用到KKT条件,在这里把自己对于KKT条件的一些理解和运用记录下来
注:本文参考知乎作者Eureka的文章Eureka:Karush-Kuhn-Tucker (KKT)条件zhuanlan.zhihu.com

1.拉格朗日乘数法
在了解KKT条件之前,先来复习一遍拉格朗日乘数法,拉格朗日乘数法是一种寻找多元函数在起变量收到一个或者多个条件约束时的极值的方法,一般形式如下:
min f(x)
s.t. g(x)=0
定义拉格朗日函数
那么求
通过对
其中第一条方程称为定常方程(stationary equation),第二条方程为约束条件。解以上方程组,即可得到在约束条件下函数的最优解
2.KKT条件
若将约束条件
不等式
(1)
(2)
这两种情况的最佳解具有不同的必要条件。
1)内部解:因为约束条件不生效,因为驻点
2)边界解:在约束条件有效的情况下,约束条件不等式变成
因此,不管驻点
以上的条件合称KKT条件,如果我们要最大化
把上面的结果推广到多个约束等式和约束不等式的情况:
定义拉格朗日函数
对应的KKT条件包括: