5. 凸优化:拉格朗日乘子法、KKT条件

1. 从线性规划到凸优化

线性规划相对比较简单,比如:

min y = x1 + x2
s.t. x1 + 3*x2 ≥ 5
     2*x1 + x2 ≥ 6
    x1,x2≥0

求解步骤嘛,首先添加剩余变量x3消除不等式约束,将问题转化为:

max y = x1 + x2
s.t. x1 + 3*x2 - x3 = 5
     2*x1 + x2 - x3 = 6
    x1,x2,x3≥0

然后使用消元法:

x1 =(13 + 2*x3)/5 ,x2 = (4 + x3)/5

带入目标函数,得到

min y = (17 + 3*x3)/5

显然在x3 = 0时取得最优值 y = 3.4,对应的x1 = 2.6, x2 = 0.8。
如果变量出现二次方,三次方怎么办?这时候问题变为了“非线性规划”,对于这类问题,我们能求解的范围是有限的,一般都要求目标函数和约束条件是“凸函数”(什么是凸函数?请参考https://blog.csdn.net/xueyingxue001/article/details/51858037),这时候的优化问题称为“凸优化”问题。

2. 最简单的凸优化问题

只有目标函数,没有约束条件。比如:

min y = x^2

求解方法就是对x求导,在导数为0处取得最优值:

y'|x = 0
=> 2*x = 0
=> x = 0
=> 最优值 y = x^2 = 0

3. 拉格朗日乘子法

如果问题有约束条件怎么办?比如在上面问题的基础上,加上等式约束条件:

min y = x^2
s.t. x = 2

可以使用拉格朗日乘子法是将等式(注意是等式!等式!)约束条件去除,比如上面的问题可以转化为:

min y = x^2 + λ * (x - 2)

这里引入了新的变量λ。求解方法:对变量x和λ求导:

y'|x = 0, y'|λ = 0
=> 2*x + λ = 0, x - 2 = 0
=> x = 2, λ = -4
=> 最优值 y = x^2 = 4

4. 来个复杂点的例子

上面的例子有点简单过头了,下面来个稍微复杂点的:

min y = x1^2 + x2^2
s.t. x1 + x2 = 2

首先来看看我们都会用的方法——消元法:

将约束条件转化为 x2 = 2 - x1,代入目标函数
=> min  y = x1^2 + (2-x1)^2 = 2*x1^2 - 4*x1 + 8,成功消除约束条件
在导数为0处取得最优值:
y'|x1 = 0
=> 4*x1 - 4 = 0
=> x1 = 1
=> x2 = 1, 最优值 y = 2

再来看新介绍的方法——拉格朗日乘子法:

将约束条件乘上一个新变量代入目标函数
=> min L = x1^2 + x2^2 + λ*(x1+x2-2),成功消除约束条件
在导数为0处取得最优值
L'|x1 = 0,L'|x2 = 0, L'|λ = 0
=> 2*x1 + λ = 0, 2*x2 + λ = 0, x1+x2 - 2 = 0
=> x1 = 1, x2 = 1, λ = -2, 最优值 y = 2

拉格朗日乘子法好麻烦,为什么要用这个方法?因为……我们还会碰到难以消元的情形,比如约束条件里面带着2次方的问题:

min y = x1^2 + x2^2
s.t. x1^2 + 3*x1 + x2^2 - 4*x2 = 2

这种情况下,用拉格朗日乘子法消除约束条件更合适。

4. 不等式约束下的KKT条件

如果约束条件中有不等式约束怎么办?添加不等式约束后问题变为:

min y =f(x)
s.t. g(x) ≤ 0

添加变量s(后面会把s消除掉的),并使用拉格朗日乘子法将约束转入目标函数:

min L =f(x) + λ*(g(x) + s^2)
最优解需满足:
(1)L'|x = 0 => f' + λ*g' =0
(2)L'|λ = 0 => g + s^2 = 0
(3)L'|s = 0 => λ*s = 0

(2)和(3)等价于:g≤0, λ*g = 0(这里是关键!关键!),条件变为:

(1)L' = 0(定常方程)
(2)g ≤ 0(原始可行)
(3)λ*g = 0(互补剩余)

另外,为了使得min存在,还需要有

(4)λ ≥ 0(对偶可行)

简单来说,λ ≥ 0的意思是最优值必须在约束条件构成的可行域范围内。关于对偶可行的图解,可以参考https://en.wikipedia.org/wiki/Karush%E2%80%93Kuhn%E2%80%93Tucker_conditions
以上称为KKT条件。KKT条件将lagrange乘子法中的等式约束优化问题推广至不等式约束。在凸优化的情况下,KKT条件是取得最优解的充要条件。

5. 如果不等式和等式混合在一起……

假设问题既包含等式约束,也包含不等式约束:

min y =f(x)
s.t. g(x) ≤ 0
     h(x) = 0

KKT条件加上h(x) = 0就行了:

(1)L' =0(定常方程)
(2)g ≤ 0, h = 0(原始可行)
(3)λ*g = 0(互补剩余)
(4)λ ≥ 0(对偶可行)

6. 最后来个超简单的例子

min y = x^2
s.t. x + 1 ≤  0

使用拉格朗日乘子法,目标函数变为

min L = x^2 + λ*(x+1)

使用KKT条件,问题转化为求解:

(1)L' =0 => 2*x+λ = 0
(2)g ≤ 0 => x ≤ -1
(3)λ*g = 0 => λ*(x+1) = 0
(4)λ ≥ 0

若λ = 0,由(1)得到x = 0,不满足(2);
若λ ≠ 0,由(3)得到x = -1,由(1)得到λ = 2,满足所有4个条件,此时最优值y = 1。

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

推荐阅读更多精彩内容

  • 在求解最优化问题中,拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush Kuhn Tu...
    小歪与大白兔阅读 2,132评论 0 1
  • 【概述】 SVM训练分类器的方法是寻找到超平面,使正负样本在超平面的两侧(分类正确性即“分得开”),且样本到超平面...
    sealaes阅读 10,909评论 0 7
  • 在前面的几讲中,我们终于引出了支撑向量的概念,同时得到了求解最大间隔分类器的目标规划式,接下来,我们就要对该式进行...
    文哥的学习日记阅读 5,395评论 3 13
  • 图片发自简书App 谁翻乐府凄凉曲,风也萧萧,雨也萧萧。瘦尽灯花又一宵.。 不知何事萦怀抱,醒也无聊,醉也无聊。梦...
    南予南归阅读 397评论 1 2
  • “少林,醒醒, 醒醒”。那是谁,我在哪儿,我做了什么?!轻轻睁开眼,她是谁,挺漂亮的呢,清秀的脸上浓密的睫毛...
    帅气的兰陵王阅读 177评论 0 0