从对偶问题到KKT条件

转自:http://xuehy.github.io/%E4%BC%98%E5%8C%96/2014/04/13/KKT/

从对偶问题到KKT条件

Apr 13, 2014

对偶问题(Duality)

======

对偶性是优化问题中一个非常重要的性质,它能够神奇地将许多非凸的优化问题转化成凸的问题,关于这一理论,恐怕又是一个博大精深的横向领域,这里我们一切从简,就从线性规划(LP)问题的对偶问题讲起。

说到对偶,我总是会不自禁地想起射影几何的东西,不过这里的对偶和射影几何无关,我们先来看一个非常simple的线性规划问题:

min{x,y}x+3y

s.t.

x+y≥2

x≥0,y≥0

这个问题非常简单,相信初等数学里面这样的问题也是很常见的,最直接的做法就是画图,不等式表示平面的某个区域,然后目标函数是斜率给定的直线,通 过移动直线来获得最大的截距,求得问题的解。不过,不知道人们是否会发现,这些可行解似乎都是某几个不等式变成等式以后的方程组的解。可是,这个规律真的 通行无阻吗?

如果不能画图,比如不给草稿纸,不给笔(什么,你说要在大脑里画?),或者变量的个数非常多(Rn),这会你还能画吗?

看来光靠作图是行不通了,我们得另寻出路。于是想象一下这样,

x+y≥2

2y≥0

x+3y≥2

于是2成为了x+3y的一个下界,不过这里看起来也是下确界,于是问题解决!

再来看,

min{x,y}px+qy

s.t.

x+y≥2

x≥0,y≥0

我们令

a+b=p

a+c=q

于是,px+qy=a(x+y)+bx+cy≥2a,a≥0,b≥0,c≥0,2a为原问题的下界,于是我们可以求下面这个问题

maxa,b,c2a

s.t.

a+b=p

a+c=q

a,b,c≥0

直觉告诉我们(你也可以证明),后一个问题的解正是前一个问题的解,这后面那个问题就叫做原问题的对偶问题。

等等,如果你的数学足够好,你一定在嘀咕这是不是纯粹的毫无意义的奇技淫巧呢?一定在怀疑这样的方法能否推广呢?换句话说,每一个求最小的LP问题都能找到这样的求最大值的对偶问题吗?

我告诉你,答案是肯定的。

看下面这个一般性的LP问题,

假如,c∈Rn,A∈Rm×n,b∈Rm,G∈Rr×n,h∈Rr,

原问题(primal)为,

maxx∈RncTx

s.t.

Ax=b

Gx≤h

其对偶问题(dual)可以写为,

maxu∈Rm,v∈Rr−bTu−hTvs.t.−ATu−GTv=v≥c0

写了那么多像变戏法一样的公式,我们来看看有没有更好的方式来理解它呢?

对于每个可行解x,cTx≥cTx+uT(Ax−b)+vT(Gx−h):=L(x,u,v),这个式子显然是成立的,

令C表示原问题可行解的集合,f∗表示原问题的最优解,则f∗≥minx∈CL(x,u,v)≥minx∈RnL(x,u,v)=g(u,v)成立。

于是g(u,v)就是f∗的下界,再注意到,g(u,v)有一些很好的性质,

g(u,v)={bTu−hTv−∞if c=−ATu−GTv

为了估计更“紧”的下界,我们要求g(u,v)的最大值,并且希望这个最大值正是原问题的最小值。

这个过程有点像很多生活中的事情,比如你去商店替公司买电脑,因为预算有限,上司提醒过你尽量买国产的便宜货,但是又要保证质量。你看了看,发现国 产的全部不超出预算,于是国产的电脑就成为了你本次购买花销的宽泛的下界,当然,你不希望电脑买回去三天就坏了,于是你在国产电脑中寻找比较贵的那种,希 望贵的质量好一些,就这样你顺利地完成了采购电脑的任务。

好了回到正题,我们知道,在线性规划(LP)问题中,对偶问题的解正是原问题的解。而且对偶问题里面几乎全是等式约束,看起来应该很好解决。

于是我们是不是可以洗洗睡了呢?慢!线性规划只是一个很naive的问题罢了,真正现实中的优化往往没那么简单,我们总会有各种麻烦,什么非线性 了,什么非凸了,甚至什么非连续不光滑了,总之现实世界总是和我们理想的数学世界差距太大,好比广告里的康师傅和现实中的康师傅(别忘了,“图片仅供参 考,以实物为准”。)。数学世界总是很简单,就像理想中的世界一样,一切秩序井然,但是工程的世界就好比真实的世界,各种社会问题,各种混乱层出不穷,要 是有机会,我真愿意在数学世界里呆上永远。

又说多了,下面我们忘掉LP问题,来看看更一般的约束优化问题。

minx∈Rns.t.hi(x)≤lj(x)=f(x)00

i=1…m,j=1…r

我们定义一个在初等微积分中便已经听过的函数,拉格朗日函数

L(x,u,v)=f(x)+∑i=1muihi(x)+∑j=1rvili(x),u≥0

同样我们容易发现f(x)≥L(x,u,v)。

令C为原问题可行解的集合,f∗为原问题的最优解,则

f∗≥minx∈CL(x,u,v)≥minx∈RnL(x,u,v)=g(u,v)

我们称g(u,v)为Lagrange对偶函数,它给出了f∗的下界。

于是我们有了Lagrange对偶问题

maxu∈Rm,v∈Rrg(u,v)

s.t.u≥0

这一次我们没法保证对偶问题的解就是原问题的解。我们只能胸有成竹地说f∗≥g∗成立。

这个性质被称作弱对偶性(weak duality)

理所当然,强对偶性(strong duality)是指f∗=g∗的情形了。

有个叫做Slater’s condition的东西,它告诉我们什么时候强对偶性成立,不过我们暂时不关心它,因为在实际中,即便是只有弱对偶性,往往对偶问题的解也已经满足要求了。 还有一个重要的性质,那就是对偶问题总是凸的,这可是解决优化问题的研究者们最大的福音了,因为对于凸的问题,军火库里有着一堆不同规格的武器,而对于非凸的,人们往往绞尽脑汁试图将其转化为凸优化问题。

好了回到原路,我们的目标是说明什么是KKT条件,到目前为止,我们已经知道了从LP到一般约束优化问题,对偶性怎样导致了Lagrange对偶问题的出现,

那么KKT在哪里呢?

不远了。

KKT

======

在开始将这个KKT条件之前,我们先回顾一下Lagrange对偶问题。

理解数学的东西,例子是必不可少的。那么我们就来看一下一个例子。

考虑二次规划(QP),Q?0

minx∈Rn12xTQx+cTx

s.t.

Ax=b,x≥0

这个问题的Lagrange函数为

L(x,u,v)=12xTQx+cTx−uTx+vT(Ax−b),u≥0

令∂xL=0,我们得到x∗=−Q−1(c−u+ATv),

于是 g(u,v)=L(x∗,u,v)=−12(c−u+ATv)TQ−TQQ−1(c−u+ATv)−bTv=−12(c−u+ATv)TQ−1(c−u+ATv)−bTv,u≥0

好了,接下来我们来看KKT。

令x表示原问题可行域中的解,u,v是对偶问题可行解,我们定义duality gap(不知道怎么翻译,对偶差异?)为,

f(x)−g(u,v)

显然,我们有

f(x)−f∗≤f(x)−g(u,v)

上面这个式子,在算法的角度可是相当重要的,不过那是后话了。

对于一般性的约束优化问题

minx∈Rnf(x)

s.t.

hi(x)≤0,lj(x)=0,i=1…mj=1…r

KKT 条件

  • 0∈∂f(x)+∑i=1mui∂h(x)+∑j=1rvi∂li(x)
  • ui⋅hi(x)=0,∀i
  • hi(x)≤0,lj(x)=0,∀i,j
  • ui≥0,∀i

这四个条件分别被称作stationarity,complementary slackness,primal feasibility,dual feasibility。

可以证明KKT条件是原问题解和对偶问题解存在且gap为0的充分条件,在强对偶性下,也是必要条件。

好了,现在我们看到了KKT条件的面目,但是仔细琢磨,就会发现这些条件,不过是前面推导Lagrange对偶问题过程中,理所当然的一些东西罢了。

首先stationarity(平稳性)不过是Lagrange函数求极值得到Lagrange对偶函数的过程中,所需的步骤罢了。

第二个条件需要稍微推导一下(利用gap为0),不过也是很simple的,窃以为这个条件才是最关键的东西。后两个条件则更trivial。

有了前一部分的东西,KKT条件的出现也应该是理所当然的。然而数学总是这样,一些很简单的东西,往往出现之前就是巨大的困难。

KKT是Karush-Kuhn-Tucker的缩写,虽然Karush更早提出了这个东西,不过一直不被人注意(数学上很多东西都是这样),不过 他也算幸运的,至少没有被从这个条件的名字中除去,相比而言,很多其他人则倒霉多了。不过指不定他心里根本不在乎这个空虚的名衔呢!

想必到此为止,你定然对Lagrange对偶和KKT条件的来龙去脉有了简单的认识了,你至少知道对偶问题是怎么来的,为什么以及什么时候能够等价于原问题,然后KKT条件不过是更加抽象的总结罢了。

接下来我们看一下KKT条件的各种出场。KKT条件使得我们能够直接分析一个优化问题,不必再劳神地写出Lagrange函数,求出对偶问题。它使 得我们能够依据原问题直接写出解的充要条件,得到一个新的问题,而这个新问题的求解往往有一些固定的套路和算法,但是口说无凭,到底方便在哪,我们到以后 再说。 同样,我们继续看二次规划问题,不过这次的约束条件都是等式约束。

对于Q?0,

minx∈Rn12xTQx+cTx

s.t.Ax=0

利用KKT条件,我们可以得到原问题解x的充要条件,

对于某个u

[QAAT0][xu]=[−c0]

将 [xu]视作整体,则原二次规划问题等价于上面的线性系统求解问题。

再看一个简单的例子,求f(x,y)=3x2+4y2+x−5y在x,y≥0时候的最小值。

由KKT条件,我们可以写出

6x+1−u=0

8y−5−v=0

−ux−vy=0=0

简单分情况分析一下,我们就可以得到正确的解x=0,y=58。

最后,让我们来看一个复杂一些的问题,这个问题涉及到矩阵分解,

已知矩阵X,L,我们要找到矩阵U,V,满足

minf(U,V)=tr((X−UVT)(X−UVT)T)+λtr(VTLV)

其中U,V都是非负矩阵。

于是令Ψ,Φ分别为uik≥0和vjk≥0的Lagrange乘子,则

Lagrange函数可以写为

L=tr(XXT)−2tr(XVUT)+tr(UVTVUT)+λtr(VTLV)+tr(ΨUT)+tr(ΦVT)

KKT条件告诉我

{∂L∂U∂L∂V=−2XV+2UVTV+Ψ=0=−2XTU+2VUTU+2λLV+Φ=0

ψik?jkuik=0vjk=0

因此我们可以得到如下方程:

{(−XV)ikuik+(UVTV)ikuik(−XTU)jkvjk+(VUTU)jkvjk+λ(LV)jkvjk=0=0

基于这个方程可以得到一个迭代求解上面该问题的算法。

具体么,我懒得写了。总之,KKT条件无所不在,只要你要处理优化问题,那就休想逃避它了。当然如果你只想永远做一个不求甚解的实践者,那么也不用操心它,不过有谁能丢下这么奇妙的数学,而不觉得可惜呢?

时间: 2024-10-10 22:16:51

从对偶问题到KKT条件的相关文章

拉格朗日对偶问题与 KKT 条件

在学习支持向量机(SVM)的过程中遇到了拉格朗日对偶问题与 KKT 条件,这里简单介绍一下拉格朗日对偶问题的推导. 拉格朗日对偶 拉格朗日对偶求解的问题为:$$\min_x f(x) \\ \text{s.t.} \quad g_i(x) \le 0 \quad i = 1,2,\dots,m \\ h_j(x) = 0 \quad j = 1,2,\dots,n$$ 其中 $f(x)$ 与 $g_i(x)$ 为凸函数,$h_j(x)$ 为仿射函数. 我们引入两种新的变量 $\alpha_i$

关于KKT条件在约束边界的物理意义的思考

学习笔记性质的博文,随时发现错误和疏漏随时修改. 对于有不等式约束的拉格朗日对偶问题,KKT条件可以总结成:约束条件(原始约束和引入拉格朗日乘子后的约束).对x偏导为0.对偶互补条件 进一步可以理解为: ①对于无约束的变量偏导为0 ②对于有约束的变量,在约束边界偏导可以不为0,不在约束边界偏导必为0 其中,不在约束边界的情况提供了函数值的伸缩性,使其取值为一个空间而不是一个点. 对偶互补条件就是对②的数学描述: 其中是原始约束. 对偶互补条件的在约束边界的物理意义: 当不位于原始边界时,它在各个

带约束优化问题 拉格朗日 对偶问题 KKT条件

转自:七月算法社区http://ask.julyedu.com/question/276 咨询:带约束优化问题 拉格朗日 对偶问题 KKT条件 关注 | 22 ... 咨询下各位,在机器学习相关内容中,每次看到带约束优化问题,总是看到先用拉格朗日函数变成无约束问题,然后转成求拉格朗日对偶问题,然后有凸函数假设,满足KKT条件时原问题最优解和对偶问题最优解等价. 每次看到这个,总不是很理解为什么要这么做?为什么首先转为无约束问题(这个相对好理解一点,因为容易处理)为什么拉格朗日函数无约束问题要转变

机器学习笔记——拉格朗日乘子法和KKT条件

拉格朗日乘子法是一种寻找多元函数在一组约束下的极值方法,通过引入拉格朗日乘子,可将有m个变量和n个约束条件的最优化问题转化为具有m+n个变量的无约束优化问题.在介绍拉格朗日乘子法之前,先简要的介绍一些前置知识,然后就拉格朗日乘子法谈一下自己的理解. 一 前置知识 1.梯度  梯度是一个与方向导数有关的概念,它是一个向量.在二元函数的情形,设函数f(x,y)在平面区域D内具有一阶连续偏导,则对于每一点P(x0,y0)∈D,都可以定义出一个向量:fx(x0,y0)i+fy(x0,y0)j ,称该向量

拉格朗日乘子法和KKT条件

拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush-Kuhn-Tucker)条件是求解约束优化问题的重要方法,在有等式约束时使用拉格朗日乘子法,在有不等约束时使用KKT条件.前提是:只有当目标函数为凸函数时,使用这两种方法才保证求得的是最优解. 对于无约束最优化问题,有很多经典的求解方法,参见无约束最优化方法. 拉格朗日乘子法 先来看拉格朗日乘子法是什么,再讲为什么. $\min\;f(x)\\s.t.\;h_{i}(x)=0\;\;\;\;i=1,2...,n$ 这

关于拉格朗日乘子法与KKT条件

关于拉格朗日乘子法与KKT条件 关于拉格朗日乘子法与KKT条件 目录 拉格朗日乘子法的数学基础 共轭函数 拉格朗日函数 拉格朗日对偶函数 目标函数最优值的下界 拉格朗日对偶函数与共轭函数的联系 拉格朗日对偶问题 如何显式的表述拉格朗日对偶问题 由定义消去下确界 隐式求解约束 共轭函数法 弱对偶 强对偶 原始问题与对偶问题的关系 最优条件 互补松弛条件 KKT条件 一般问题的KKT条件 凸问题的KKT条件 KKT条件的用途 拉格朗日乘数法的形象化解读 等式约束的拉格朗日乘子法 含有不等约束的情况

关于拉格朗日乘子法和KKT条件

解密SVM系列(一):关于拉格朗日乘子法和KKT条件 标签: svm算法支持向量机 2015-08-17 18:53 1214人阅读 评论(0) 收藏 举报  分类: 模式识别&机器学习(42)  版权声明:本文为博主原创文章,未经博主允许不得转载. 原文链接 :http://blog.csdn.net/on2way/article/details/47729419 写在之前 支持向量机(SVM),一个神秘而众知的名字,在其出来就受到了莫大的追捧,号称最优秀的分类算法之一,以其简单的理论构造了复

解密SVM系列(一):关于拉格朗日乘子法和KKT条件

写在之前 支持向量机(SVM),一个神秘而众知的名字,在其出来就受到了莫大的追捧,号称最优秀的分类算法之一,以其简单的理论构造了复杂的算法,又以其简单的用法实现了复杂的问题,不得不说确实完美. 本系列旨在以基础化的过程,实例化的形式一探SVM的究竟.曾经也只用过集成化的SVM软件包,效果确实好.因为众人皆说原理复杂就对其原理却没怎么研究,最近经过一段时间的研究感觉其原理还是可以理解,这里希望以一个从懵懂到略微熟知的角度记录一下学习的过程. 其实网络上讲SVM算法的多不胜数,博客中也有许多大师级博

KKT 条件 及其 理解

现在我们对于任意一个优化问题(不一定是凸优化问题): \begin{split}\text{min}\quad & f_{0}(x) \newline \text{subject to:}\quad & f_{i}(x)\leq 0, i=1,...,m \newline & h_{i}(x)=0, i=1,...,p\end{split} 如果所有的出现的函数均为一阶可微函数,并且假设\(x^{\ast}\), \((\lambda^{\ast},\nu^{\ast})\)分别为