拉格朗日乘子法、对偶、KTT

拉格朗日乘子法、对偶、KTT

一般情况下,最优化问题分为三类

一、 无约束条件下的最优化问题

这种最优化问题比较简单,直接求导为0就可以得到。

二、 等式约束下的最优化问题

即除了目标函数之外,还有一些约束条件。假设目标函数为f(x),约束条件为h_k(x),这里的k用来表示有k个约束条件。
minf(x)

s.t. h_k(x) = 0 \quad k = 1,2,3..

求这样的最优化问题有两种方法:
一种是使用消元法来解,但是这种方法有的时候很难求解,甚至无解。
另一种方法便是使用拉格朗日乘子法,其求解步骤分为三步:

  • 构造拉格朗日函数
  • 求解变量的偏导方程
  • 代入目标函数

具体步骤如下:

  1. 首先构造一个拉格朗日函数,我们令
    F(x,λ,l) = f(x) + \sum_{k=1}^lλ_kh_k(x)

其中\lambda_k是第k个约束条件系数,又叫拉格朗日乘子。注意这里的F(x,\lambda,l)是对x,\lambda,l三个变量的函数。

  1. 于是我们分别对x,\lambda,l变量求偏导数为0的解,得出来的解代入目标函数便是函数在等式约束条件。

为什么这样求解得到的便是我们想要得到的约束极值呢?我们可以用图来直观的解释一下:

image

图中的圆圈表示目标函数与
,f(x,y)
投影在平面上的等值线,每个全圆圈上的值相等,黑丝的曲线表示约束条件
h(x)=0
的函数图像。等值线与曲线相交的点,便是满足约束的点,于是我们所需要的极值点只有等值线与黑线相切的地方取到。

  为什么只有相切的地方才可能是极值点,而相交的地方不是呢?假设相交的点是极值点的话,那么沿着f(x)的曲线向两边走,一定还有其他的点和他相交,这就意味着f(x,y)的值还能变大和变小(极值点的两侧是同时变大或者同时变小的),明显与我们的假设相悖,所以交点不是极值点。

  而对于切点来说,沿着h(x)曲线两边走,f(x,y)的值只能同时变大或者同时变小,这就符合了极值点的定义。

  既然极值点在切点上,那么这两个函数在这一点的梯度应该在同一条直线上,方向可以相同或者相反(梯度的方向与等高线的切线是垂直,这个定理的相关推导可以自行百度)。

  所以,满足条件的极值点一定满足:∇f(x,y)=λ∇h(x,y)(其中λ可以取0,取0表示目标函数的极值点刚好也在这一点),于是我们只用和原方程h(x,y)=0联立,然后只要解出这个方程组,就可以得到最优解,当然,这个方程可能存在解不出来的情况.

  于是我们就可以把原来的优化问题写成f(x,y)+λh(x,y) 的形式,然后分别的对x,y,λ求导,然后令偏导数为0就可以得到上面推来的式子了。这种方法就是拉格朗日乘子法。即:
∇f(x,y)=(\frac{\partial{f}}{\partial{y}},\frac{\partial{f}}{\partial{x}})

λ∇h(x,y)=(λ\frac{\partial{h}}{\partial{y}},λ\frac{\partial{h}}{\partial{x}})

由于∇f(x,y)=λ∇h(x,y),则
\frac{\partial{f}}{\partial{y}}=λ\frac{\partial{h}}{\partial{y}}

\frac{\partial{f}}{\partial{x}}=λ\frac{\partial{h}}{\partial{x}}

f(x,y)+λh(x,y),分别对x,y,λ求偏导:

对x求偏导:
\frac{\partial{f}}{\partial{x}} + λ\frac{\partial{h}}{\partial{x}} + h(x,y)=0
对y求偏导:
\frac{\partial{f}}{\partial{y}} + λ\frac{\partial{h}}{\partial{y}} + h(x,y)=0
对λ求偏导:
h(x,y)=0
根据这三个式子化简后,可以看到公式f(x,y)+λh(x,y),分别对x,y,λ求偏导和∇f(x,y)=λ∇h(x,y)等价。

如果有多个等式约束怎么办呢,如下图:

image

这里的红色的平面和蓝色的球面分别代表了两个约束 h1(x)h2(x),那么这个问题的可行域就是它们相交的那个圆。这里蓝色箭头表示平面的梯度,黑色箭头表示球面的梯度,那么相交的圆的梯度就是它们的线性组合(只是直观上的,类似向量的加法),所以在极值点的地方目标函数的梯度和约束的梯度的线性组合在一条直线上。所以就满足:
∇f(x)=λ\sum_{i=1}^2u_i∇h_i(x)=\sum_{i=1}^2λ_2∇h_i(x)

h_1(x)=0

h_2(x)=0

大于2个约束的情况也一样。为了好记,将原来的约束的问题写成:
L(x,λ)=f(x)+\sum_{i=1}^nλ_i∇h_i(x)\tag{1}
然后对 x、λ 求偏导,然后让它们为0,得到的就是上式。

三、 既有等式约束,又有不等式约束的情况

minf(x)

s.t. h_i(x)=0, i=1,2,...k

c_j(x)≤0, j=1,2,...l

f(x),h_i(x),c_i(x)要求在定义域上是连续可微函数

注: 这里的等式和不等式约束公式只是一种表述的方式,现实中遇的可能与其略有不同,但是稍加转换便可以转换成上述的形式。

引入广义拉格朗日(generalized Lagrange function):
L(x,α,β) = f(x) +\sum_{j=1}^lβ_jh_j(x)+ \sum_{i=1}^kα_ic_i(x)\tag{2}
这个式子和上面的公式一不同的是,这里特别要求α_i>0,为什么这么要求我们后面再讲,先解释一下这个式子。这里,α,β是拉格朗日乘子(其实就是函数的系数),x=(x^{(1)},x=(x^{(2)},...,x=(x^{(3)})\in R^n

现在把L(x,\alpha,\beta)看做关于\alpha_i,\beta_j的函数,现在求其最大值,即求:
\max_{\alpha,\beta:\alpha_i\geq0}L(x,\alpha,\beta)
这里L(x,\alpha,\beta)\alpha_i,\beta_j的函数,目标就是确定\alpha_i,\beta_j的值,使得L(x,\alpha,\beta)能取到最大值,确定了\alpha_i,\beta_j的值之后,上式就是一个之和x有关的函数(多元函数求极值,对每个参数的偏导都为0的道理),定义这个函数为:
θ_p(x) = \max_{α,β,α_i\ge0}{L(x,α,β)}

其中L(x,α,β) = f(x) +\sum_{j=1}^lβ_jh_j(x)+ \sum_{i=1}^kα_ic_i(x)

  下面我们讨论一下x取值和θ_p(x)之间的关系.

  当某个x不满足h_i(x),c_i(x)的约束 ,即h_i(x)\neq0或者c_i(x)>0时,\max_{α,β,α_i\ge0}{L(x,α,β)} = +\infty.

  原因:首先这里的\alpha_i,\beta_j是我们刚才在求解函数最大值时已经确定的,若h_i(x)\neq0,考虑下求偏导的情况,我们求出来的\beta_i很容易可以取值使得原函数取到正无穷(既然求能使函数取最大值的\beta_i,如果可以,肯定取可以使其函数能得最大值得\beta),同理,.当c_i(x)>0时,{a_i}可以取{+\infty},使得{L(x,\alpha,\beta)}=+\infty,于是,我们可以证明,当某个x不满足h_i(x),c_i(x)的约束 ,即h_i(x)\neq0或者c_i(x)>0时,\max_{α,β,α_i\ge0}{L(x,α,β)} = +\infty.

 当x满足约束时,显然L(x,\alpha,\beta) = f(x).

  综上我们可得:
θ_p(x) = \max_{α,β,α_i\ge0}{L(x,α,β)}= \begin{cases} +\infty, & \text{其他} \\ f(x), & \text{如果{x}满足约束} \end{cases}
  在满足约束的条件下,我们求\theta_p(x)的最小值,即:
\min_x\theta_p(x) = \min_xf(x) = \min_x\max_{x,α,β}L(x,α,β)
  而在不满足约束的情况下{θ_p(x)} = +\infty,显然不可能是最小值,于是,我们的目标,求解约束条件下minf(x)最优解的问题就可以转化成求解\min_x\max_{x,α,β}L(x,α,β)的无约束问题(这个式子被称为广义拉格朗日函数的极小极大问题),这样,就成功的把约束条件给去掉了.使用p来表示原始问题,于是原始问题的最优解p^*就可以表示如下:
p^*=\min_xθ_p(x)

对偶问题

  定义一个关于α,β的函数:
θ_D(α,β) = \min_xL(x,α,β)
考虑极大化θ_D(α,β),即:
\max_{α,β:α\geq0}θ_D(α,β) = \max_{α,β:α\geq0}\min_xL(x,α,β)
这个式子被称为广义拉格朗日函数的极大极小问题,也被称为原始问题的对偶问题.对偶问题的最优值用d^*表示:
d^*=\max_{α,β:α\geq0}θ_D(α,β)
对比原始问题,对偶问题是先求关于函数关于x的最小化问题,之后再求函数关于α,β最大化问题.而原始问题恰恰相反,是求函数关于α,β的最大化问题,之后再求关于x的最小化问题.总是是求函数关于α,β最大化和关于x的最小化的问题,只是求解的顺序有所不同.

那么对偶问题和原始问题有什么关系呢?

定理1:若对偶问题和原始问题都有最优值,则:
d^*=\max_{α,β:α\geq0}\min_xL(x,α,β)\leq\min_x\max_{x,α,β}L(x,α,β)=p^*
即:对偶问题的最优值不大于原始问题的最优值(弱对偶(weak duality)).

证明:
θ_D(α,β) = \min_xL(x,α,β)\leq\max_{x,α,β}L(x,α,β)\leqθ_p(x)*
即:
\theta_D(α,β) \leq\theta_p(x)
因为对偶问题和原始问题都有最优值,所以:
\max_{x,α,β}θ_D(α,β)\leq\min_{x}θ_p(x)
所以:
d^*=\max_{α,β:α\geq0}\min_xL(x,α,β)\leq\min_x\max_{x,α,β}L(x,α,β)=p^*
原问题得证.

这些有什么用呢?

推论1:如果x^*,α^*,β^*分别是原始问题和对偶问题的可行解,并且p^*=d^*(即原始问题和对偶问题在可行解x^*,α^*,β^*上的取的最优值相同,这被称为强对偶(strong duality)),则x^*,α^*,β^*分别是原始问题和对偶的最优解.

于是,当原始问题不好求解而对偶问题相对好求解的时候,这时我们就可以用求解对偶问题替代求解原始问题.并且更重要的是,对偶问题是一个凸优化问题,他的极值是唯一的(因为d^*<p^*).这样无论一个问题是不是凸优化的问题,我们都能将其转化成凸优化的问题

新的问题又来了,什么情况下才能使得p^*=d^*呢?这就是KTT条件.

定理2:假设函数f(x)c_i(x)都是凸函数,h_j(x)是仿射函数(由一阶多项式构成的函数),并且不等式约束c_i(x)是严格可行的,即存在x,对所有的i,都使得c_i(x)<0(注意这里是严格要求小于0,而不是小于等于0),则存在x^*,α^*,β^*使得x^*是原始问题的解,α^*,β^*是对偶问题的解,并且
p^*=d^*=L(x^*,α^*,β^*)
定理3:在满足定理2的条件下,则x^*,α^*,β^*分别是原始问题和对偶问题的最优解的充要条件是x^*,α^*,β^*满足下面的KTT条件:
∇_xL(x^*,α^*,β^*) = 0\tag{1}

α^*c_i(x)=0, \quad i=1,2,...,k\tag{2}

c_i(x)\leq0, \quad i=1,2,...,k\tag{3}

α_i\geq0, \quad i=1,2,...,k\tag{4}

h_j(x^*)=0 \quad j=1,2,..,l\tag{5}

其中条件(1)是指函数对于x^*,α^*,β^*偏导为0,(3~5)是约束条件.

并且注意条件(4),当α_i > 0(注意只是大于而不是大于等于,原条件中是大于等于),则由条件(2)(3)可知c_i(x)=0.

参考

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

https://www.cnblogs.com/90zeng/p/Lagrange_duality.html

http://blog.pluskid.org/?p=702

<统计学习方法> 李航

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,491评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,856评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,745评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,196评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,073评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,112评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,531评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,215评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,485评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,578评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,356评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,215评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,583评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,898评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,497评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,697评论 2 335

推荐阅读更多精彩内容