Karush–Kuhn–Tucker conditions

接第一节,拉格朗日乘子法https://www.cnblogs.com/super-yb/p/10705789.html

我先直接给出公式(别跑!),然后慢慢解释每一条内容,欢迎批评指正!

我们优化的目标是:

 

 

其中,KKT条件如下:

 

 

公式1、2、3不多解释。

公式4、5,通过一个简单例子说明:

gi添加一个 ≥0 的松弛变量。得到

 

由此,我们将不等式转化为等式约束,应用拉格朗日乘子法。

拉格朗日方程如下:

 

 

对方程求偏导如下:

 

 

注意红笔写的条件,我们会稍后解释。

 

那么现在开始解方程组

首先考虑 式5,

当u1=0,a1≠0时,即 g1 对f(x)无约束

当u1≠0,a1=0时,即 g1 对f(x)有约束,且根据式3可知, g1 也等于0。

式6同理。注意,不等式对f(x)有约束效果时,不等式等于零。

 

此时,方程组简化成

推广,对于多个不等式约束,有 

 

上述不等式称之为KKT条件,与本文一开始略有不同的是没有了等式的约束(不用在此纠结,我们关心的是不等式的约束问题),其中uj称之为KKT乘子

最后利用几何的角度说明,为什么在极值点处KKT乘子大于等于零?


其实用一个不等式约束很好理解,类似拉格朗日乘子法,

f(x)的负梯度与g(x)的梯度同向,所以u1≥0.

 

现增加一个不等式约束。

 将式1用梯度表示并移项,

x*表示极值点。

那么,此时f(x)的负梯度可以表示成所有有效约束条件在该点梯度的线性组合,梯度为向量,且与等高线垂直,有效指的是该约束条件(不等式)对应的KKT乘子。

 

如图,极值点XK一定落在g1(X)=0和g2(X)=0两平面的交线上,且点XK处f(x)的负梯度可以为g1(X)和g2(X)梯度的线性组合。考虑两种情况:

 

 注意,由于约束条件为不等式,所以极值点的可行域为下半平面。

当在b情况时,(ui小于0)在可行域C值可以变化,所以这种情况极值点不是最优。如图

 

在a情况下,ui≥≥0,当C发生变化时,约束条件破坏,即该点为局部最优点。

接下一节感知机

 

参考:https://www.matongxue.com/madocs/987.html

https://zhuanlan.zhihu.com/p/26514613

https://en.wikipedia.org/wiki/Karush%E2%80%93Kuhn%E2%80%93Tucker_conditions

https://www.cnblogs.com/liaohuiqiang/p/7805954.html

https://www.cnblogs.com/xinchen1111/p/8804858.html

 

最后附一个拉格朗日对偶问题讲的很好的博文

 https://www.cnblogs.com/ooon/p/5723725.html

posted on 2019-05-05 10:46  be·freedom  阅读(2163)  评论(0编辑  收藏  举报