精华内容
下载资源
问答
  • KKT条件

    2021-03-12 14:32:38
    KKT条件 在求解最优化问题的时候得到最优解,(1)对于无约束条件,那么直接求导值为0得解, (2)对于等式约束条件,直接采用拉格朗日乘子法求解,对n个条件下分别求导,这样得到n+1个方程,也可以得到最优解,(3)对于...

    KKT条件

    在求解最优化问题的时候得到最优解,(1)对于无约束条件,那么直接求导值为0得解, (2)对于等式约束条件,直接采用拉格朗日乘子法求解,对n个条件下分别求导,这样得到n+1个方程,也可以得到最优解,(3)对于不等式约束条件,那么在满足KKT条件(具体的问题对待在求解的时候 对不同的参数添加不同的约束条件)的时候才可以使用拉格朗日乘子法,以下分别介绍

    具体参考:

    https://blog.csdn.net/johnnyconstantine/article/details/46335763

    展开全文
  • KKT 条件

    2017-05-02 19:10:11
    KKT条件是解决最优化问题的时用到的一种方法。我们这里提到的最优化问题通常是指对于给定的某一函数,求其在指定作用域上的全局最小值。提到KKT条件一般会附带的提一下拉格朗日乘子。对学过高等数学的人来说比较...

    KKT条件是解决最优化问题的时用到的一种方法。我们这里提到的最优化问题通常是指对于给定的某一函数,求其在指定作用域上的全局最小值。提到KKT条件一般会附带的提一下拉格朗日乘子。对学过高等数学的人来说比较拉格朗日乘子应该会有些印象。二者均是求解最优化问题的方法,不同之处在于应用的情形不同。

          一般情况下,最优化问题会碰到一下三种情况:

    (1)无约束条件

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

    (2)等式约束条件

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

         s.t. 表示subject to ,“受限于”的意思,l表示有l个约束条件。

         则解决方法是消元法或者拉格朗日法。消元法比较简单不在赘述,拉格朗日法这里在提一下,因为后面提到的KKT条件是对拉格朗日乘子法的一种泛化。

         定义拉格朗日函数F(x),

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

         然后解变量的偏导方程:

          ......,

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

         至于为什么这么做可以求解最优化?维基百科上给出了一个比较好的直观解释。

         举个二维最优化的例子:

         min f(x,y) 

         s.t. g(x,y) = c

         这里画出z=f(x,y)的等高线(函数的等高线定义:二元函数z = f(x,y)在空间表示的是一张曲面,这个曲面与平面z = c的交线在xoy面上的投影曲线f(x,y)=c称为函数z=f(x,y)的一条登高线。):


           绿线标出的是约束g(x,y)=c的点的轨迹。蓝线是f(x,y)的等高线。箭头表示斜率,和等高线的法线平行。从梯度的方向上来看,显然有d1>d2。绿色的线是约束,也就是说,只要正好落在这条绿线上的点才可能是满足要求的点。如果没有这条约束,f(x,y)的最小值应该会落在最小那圈等高线内部的某一点上。而现在加上了约束,最小值点应该在哪里呢?显然应该是在f(x,y)的等高线正好和约束线相切的位置,因为如果只是相交意味着肯定还存在其它的等高线在该条等高线的内部或者外部,使得新的等高线与目标函数的交点的值更大或者更小,只有到等高线与目标函数的曲线相切的时候,可能取得最优值。

    如果我们对约束也求梯度g(x,y),则其梯度如图中绿色箭头所示。很容易看出来,要想让目标函数f(x,y)的等高线和约束相切,则他们切点的梯度一定在一条直线上。

    :∇f(x,y)=λ(∇g(x,y)-C) 
    其中λ可以是任何非0实数。

           一旦求出λ的值,将其套入下式,易求在无约束极值和极值所对应的点。


           这就是拉格朗日函数的由来。

    (3)不等式约束条件

           设目标函数f(x),不等式约束为g(x),有的教程还会添加上等式约束条件h(x)。此时的约束优化问题描述如下:


          则我们定义不等式约束下的拉格朗日函数L,则L表达式为:


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

          此时若要求解上述优化问题,必须满足下述条件(也是我们的求解条件):


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

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

           关于条件(3),后面一篇博客中给出的解释是:我们构造L(x,λ,u)函数,是希望L(x,λ,u)<=f(x)的(min表示求最小值)。在L(x,λ,u)表达式中第二项为0,若使得第三项小于等于0就必须使得系数u>=0,这也就是条件(3)。

           关于条件(4),直观的解释可以这么看:要求得L(x,λ,u)的最小值一定是三个公式项中取得最小值,此时第三项最小就是等于0值的时候。稍微正式一点的解释,是由松弛变量推导而来。

    为方便表示,举个简单的例子:

    现有如下不等式约束优化问题:


    此时引入松弛变量可以将不等式约束变成等式约束。设a1和b1为两个松弛变量,则上述的不等式约束可写为:


    则该问题的拉格朗日函数为:


    根据拉格朗日乘子法,求解方程组:



    同样 u2b1=0,来分析g2(x)起作用和不起作用约束。

    于是推出条件:



    KKT条件介绍完毕。

    展开全文
  • 本文主要探讨优化问题中强、弱对偶性以及KKT条件的证明。

    1.原问题

    首先给出问题的一般形式:
    在这里插入图片描述
      上式表明我们一共有M+N个约束条件,对于不是求最小值或者约束条件大于等于0的情况,我们添加一个负号就可以变成上面这种形式。
      上述问题我们一般称之为带约束的原问题。

      利用拉格朗日乘子法,我们构造一个新的函数以及约束条件如下:
    在这里插入图片描述
    其中:在这里插入图片描述

      我们称上面的问题为无约束的原问题(对x不再有约束)。上述L是拉格朗日乘子法的基本形式,这个就不再证明。

    2.对偶问题

      对于无约束的原问题,我们先直接给出它的对偶问题形式(其实就是简单交换min和max):
    在这里插入图片描述
      上述问题我们称之为原问题的对偶问题。

    2.1弱对偶性的一般证明

      所谓弱对偶性,指的是:
    在这里插入图片描述
      在再谈SVM(hard-margin和soft-margin详细推导、KKT条件、核技巧)中,我们大致口头证明了弱对偶性的成立,即“凤尾”>=“鸡头”。何谓“凤尾”?我先选出最强的一批人(maxf\max f),然后组成实验班,实验班倒数第一就是min maxf\min \ \max f;何谓“鸡头”?我先选出最弱的一批人(minf\min f),然后在这批比较弱的人当中选出最强的那个人,也即是max minf\max \ \min f,那么“鸡头”与“凤尾”孰强孰弱,是显而易见的。
      现在我们利用数学推导来大致证明一下弱对偶性。
      对于L(x,λ,η)L(x,\lambda,\eta)这个函数,我们知道下面这个不等式一定成立:
    在这里插入图片描述
    上面这个不等式很好理解,中间L(x,λ,η)L(x,\lambda,\eta)我们可以理解为L的值域,值域里面的任何一个数,必然是大于等于它的最小值,小于等于它的最大值。其实这一步已经证明出弱对偶性了,不过为了更容易理解,我们可以进一步说明。
      上述不等式最左边的表达式最后是关于λ,η\lambda,\eta的一个函数,而最右边是一个关于xx的函数,因此我们又令:
    在这里插入图片描述
    因此我们有:
    在这里插入图片描述
    证毕。

    2.2弱对偶性的几何证明

      为了使问题简化,同时方便证明,我们去掉原问题中等式的约束条件,同时不等式约束条件只保留一个,即原问题变成:
    在这里插入图片描述
    那么拉格朗日函数就变成:
    在这里插入图片描述
    我们又令:
    在这里插入图片描述
    pp^*是原问题的最优解,dd^*是对偶问题的最优解。证明弱对偶性实际上就是证明dpd^*\leq p^*
      我们令区域G的表达形式为:
    在这里插入图片描述

    D是原问题的定义域,G表示一个个点的集合,点的横坐标是约束条件u=m1(x)u=m_{1}(x),纵坐标是原函数t=f(x)t=f(x)
      有了上述集合G的定义之后,我们就可以对p,dp^*,d^*进行变式。
      首先对pp^*进行变式:
    在这里插入图片描述
    因为t=f(x)t=f(x),所以pp^*实际上就是t的最小值,反映到集合G中去就是指一个点的纵坐标,这个点要满足两个条件:一是肯定要在G中,二是m1(x)0m_{1}(x)\leq0也就是该点的横坐标小于等于0。
    如下图所示:
    在这里插入图片描述
      我们对u0u\leq0那部分,也就是图中阴影部分上的每个点,找到一个最低的点,它的纵坐标就是pp^*
      接着对dd^*进行变形:
    在这里插入图片描述
    上述t+λut+\lambda u的来源为:
    在这里插入图片描述
    对变形后dd^*我们令:
    在这里插入图片描述
    我们先找到g(λ)g(\lambda)在图中的位置:我们知道t+λut+\lambda u实际上也是一个值,我们不妨令t+λu=kt+\lambda u=k,该式表示一条斜率为λ-\lambda并过(0,k)的直线,我们要找的是t+λut+\lambda u的最小值,实际上就是k的最小值,实际上就是该直线与纵轴交点的最小值。而在求minx t+λu\min \limits_{x}\ t+\lambda u的最小值时,λ\lambda固定的,因此斜率λ-\lambda也是固定的:
    在这里插入图片描述
      我们保持斜率不变移动直线,不断往上移动,则该直线与纵轴交点的纵坐标k也不断增大,因为限制条件还有一个就是(u,t)G(u,t)\in G,因此该直线必须经过区域G,我们一直往上移动,直到直线第一次与G相交,记下相应的k值为k1k_{1},再继续往上也都满足条件,知道该直线与G不再相交,但是现在我们求得是最小值,那么最小值其实就是k1k_{1},即g(λ)g(\lambda)就等于k1k_{1}
      进一步,我们要求:
    在这里插入图片描述
    这里要重点注意:上一步我们求得了g(λ)g(\lambda)就等于k1k_{1},但是这种情况只是一种情况,在上一步求g(λ)g(\lambda)时,我们假若改变斜率λ-\lambda,那么k1k_{1}的值是会变的,如下所示:
    在这里插入图片描述
      我们换一个λ\lambda固定时,g(λ)g(\lambda)也就是k1k_{1}自然也就在变。
      第二步要干的其实就是让我们求这个g(λ)g(\lambda)的最大值。那什么时候是最大的?实际上就是以G的最低点为轴,我们旋转直线,直到与左上方最低点相交时,g(λ)g(\lambda)是最大的。如下所示:
    在这里插入图片描述

      可能很多人就有疑问了:我为什么不可以让斜率继续增大?让直线穿过G?这里有疑问的同学不妨回忆一下第一个步骤:
    在这里插入图片描述
    我们在确定g(λ)g(\lambda)的时候,第一次相切我们就停止了,而后改变斜率继续相切:如上图所示,假如你继续增大斜率,那么该直线就不跟G的最低点相切了。我们是先推第一步再推第二步,而推第二步的时候肯定必须满足第一步的条件,所以dd^*只能是在那个位置。
    在这里插入图片描述
      从上图也可以看出来:dpd^*\leq p^*,也就是对偶问题的解是小于等于原问题的解的,也即是说满足弱对偶性。因此这里我们进一步证明了弱对偶性。

    2.3强对偶性的几何表示以及条件

      什么是强对偶性?就是指原问题的解与对偶问题的解是相同的,也即是:d=pd^*=p^*
      画个图:
    在这里插入图片描述
      假设G是一个凸集,那么根据上面找dd^*pp^*的思路,我们很容易知道这个时候二者是相等的,也就是满足强对偶关系。
      那上面这句话的意思就是说:只要是凸集就一定满足强对偶关系。这句话不是正确的,不是所有的凸集都满足强对偶关系,但是加上slater条件就一定满足。

    2.4 slater condition

      先直接给出slater条件的定义:对于x的定义域D,如果它存在一个内点(不是边界上的点)xx^*满足对任意的mi(x)<0,i=1,2,...,Mm_{i}(x)\lt0,i=1,2,...,M,则说明该问题满足slater条件。
      对slater条件做两点说明:

    1. 对于大多数的凸优化问题来说,slater condition都是成立的
    2. 放松的slater条件:如果约束函数mi(x),i=1,2,...,Mm_{i}(x),i=1,2,...,M中有K个是仿射函数,则我们只需要那M-K个约束函数满足第一个条件,我们也说该问题满足slater条件。
    3. 什么是仿射函数?仿射函数,即最高次数为1的多项式函数。常数项为零的仿射函数称为线性函数。简单来说,就是比较简单的函数。

      对第一个条件进一步说明:为什么我们要满足这个条件?第一个条件放在G中的意思就是:G在u<0部分必须有点存在
    在这里插入图片描述
    假设纵坐标左边没有点,那么在我们寻找g(λ)g(\lambda)时,那条直线实际上就会是纵坐标轴。

    3.KKT条件的证明

      通过上面的推导我们知道了:
    在这里插入图片描述
    满足强对偶关系之后我们就得到一个结论:d=pd^*=p^*,但是也到此为止了,我们肯定得解出那些未知最优参数(带 * 的变量),KKT条件就是干这件事。
      KKT条件有三部分:可行条件、互补松弛条件以及偏导为0条件,我们一个一个推导。

    3.1可行条件

      所谓可行条件,指的是一开始就满足的一些条件:
    在这里插入图片描述

    这三个条件肯定得满足,这个没啥可说的,天然满足

    3.2互补松弛条件

      我们知道:
    在这里插入图片描述
    带星号的都是最优解的意思。根据可行条件我们知道:λi0,mi0\lambda_{i}\geq0,m_{i}\leq0,所以λimi0\lambda_{i}m_{i}\leq0,所以上面继续变换:
    在这里插入图片描述
    因为最后一步等于第一步,所以中间推导步骤中的\leq都应该变成=,倒数第三步等于倒数第二步,所以我们有:
    在这里插入图片描述
    而前面我们又知道λimi0\lambda_{i}m_{i}\leq0,所以互补松弛条件如下:
    在这里插入图片描述

    3.3偏导为0条件

    在这里插入图片描述
    继续看这个推导,第二、三步之间应该用等号连接,即:
    在这里插入图片描述
    意思就是说L在x=xx=x^*处有最小值,于是偏导为0条件就出来了:
    在这里插入图片描述
    于是KKT条件为:
    在这里插入图片描述
    证毕。

    展开全文
  • kkt条件

    2020-01-29 21:48:06
  • kkt 条件

    千次阅读 2019-06-11 14:26:25
  • 在有等式约束时使用拉格朗日乘子法,在有不等约束时使用KKT条件。  我们这里提到的最优化问题通常是指对于给定的某一函数,求其在指定作用域上的全局最小值(因为最小值与最大值可以很容易转化,即最大值问题可以...
  • KKT条件介绍

    万次阅读 多人点赞 2015-06-02 21:49:11
    KKT条件入门介绍 最近学习的时候用到了最优化理论,但是作为学渣的我是没有多少这方面的理论基础。于是翻了很多大神的博客把容易理解的内容记载到这篇博客中。因此这是篇汇总博客,不算是全部原创,但是基础理论,...
  • KKT条件详解

    千次阅读 多人点赞 2019-05-07 15:55:41
    KKT条件详解 主要参考这篇文章和这个知乎回答。 KKT最优化条件是Karush[1939],以及Kuhn和Tucker[1951]先后独立发表出來的。这组最优化条件在Kuhn和Tucker发表之后才逐渐受到重视,因此许多情况下只记载成库恩塔克...
  • KKT条件第一项是说最优点必须满足所有等式及不等式限制条件,也就是说最优点必须是一个可行解,这一点自然是毋庸置疑的。第二项表明在最优点 x*, ∇f 必須是 ∇hj 和 ∇gk 的线性組合,和都叫作拉格朗日乘子。所...
  • KKT条件KKT条件(最优解的一阶必要条件)Complementary Slackness 互补松弛条件切锥与约束规范最优解的必要条件线性可行方向集线性无关约束规范(LICQ)引用Farkas 引理证明KKT条件 KKT条件(最优解的一阶必要条件) ∇f...
  • 理解KKT条件

    千次阅读 2019-03-09 11:36:02
    直观理解KKT条件 KKT(Karush-Kuhn-Tucher)条件
  • 间隔 2.1硬间隔(最大间隔分类器) 2.1.1模型定义 2.1.2约束 2.1.2.1函数间隔 2.1.2.2定义距离 2.1.3原问题 2.1.4拉格朗日乘子法 2.1.5强对偶与弱对偶 2.1.6求解最终问题 2.1.7KKT条件 2.1.8最终解答 2.2软间隔 ...
  • KKT条件推导

    2019-09-11 10:14:18
    kkt条件推导 目前看到的最简洁易理解的kkt条件的推导 原文链接:https://cloud.tencent.com/developer/article/1380118,有兴趣的小伙伴去看原文吧,就不粘过来了。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,306
精华内容 2,922
关键字:

kkt条件