拉格朗日乘子法、KKT条件、拉格朗日对偶性
@20160718
拉格朗日乘子法(Lagrange Multiplier)
拉格朗日乘子法是一种寻找有等式约束条件的函数的最优值(最大或者最小)的最优化方法.在求取函数最优值的过程中,约束条件通常会给求取最优值带来困难,而拉格朗日乘子法就是解决这类问题的一种强有力的工具.
1. 单约束问题
考虑以下的二维单约束优化问题:
把
f(x,y)
绘制成等高图,当沿着曲线
g(x,y)=0
寻找最大值时,函数最大值的点应该是在
f(x,y)=maximum
与
g(x,y)=0
相切的位置,但是有时候也会遇到沿着
g(x,y)=0
寻找的过程中,
f(x,y)
在某一段保持不变,这个时候也有可能这段点集就是我们要寻找的最优解.有两种可能会出现这种情况:1)
f
和
在以上两种情况中都存在
λ
满足下式:
总结上述所有公式,我们有:
解:
这种方法就是拉格朗日乘子法,其中 λ 就是拉格朗日乘子,当第二种情况出现时 λ=0 .
类似地,针对多变量问题,我们可通过解下式获得最优解:
2. 多约束问题
考虑一个简单的约束问题:两个约束曲线仅相交于一点,那么很显然,这一点就是最优点.再考虑一下更一般的情况,
f
的level set并不平行于所有的约束曲线,这时候应该怎么办呢?线性组合!!!拉格朗日乘子法所寻找的点对应的梯度并不是
用
A
表示可寻找的向量空间,
与单约束问题类似,我们仍然考虑在沿着向量空间寻找过程中那些使
也就是说,我们需要寻找那些
x
使得其移动方向垂直于
KKT条件(Karush–Kuhn–Tucker conditions)
KKT条件是拉格朗日乘子法的拓展,是一种求取含不等式约束条件的函数最优值的方法.
考虑以下非线性优化问题:
其中
x
就是优化变量,
针对该问题,KKT条件就是指最优点
x∗
满足以下条件:
拉格朗日对偶性(Lagrange duality)
在约束最优化问题中,常常利用拉格朗日对偶性将原始问题转化为对偶问题。通过解对偶问题而得到原始问题的解.
1. 原始问题(primal problem)
假设
f(x),ci(x),hj(x)
是定义在
Rn
上的连续可微函数。考虑如下最优化问题:
称此约束最优化问题为 原始最优化问题或 原始问题.
引入广义拉格朗日函数
这里, αi,βj 是拉格朗日乘子, αi≥0 . 考虑 x 的函数:
这里下标 P 表示原始问题.
容易得到:当
此问题称为 广义拉格朗日函数的极小极大问题. 定义原始问题的最优值
称为原始问题的值.
2. 对偶问题(dual problem)
定义
再考虑极大化上式,即
问题 maxα,β;α≥0minxL(x,α,β) 称为 广义拉格朗日函数的极大极小问题.
可将广义拉格朗日函数的极大极小问题表示为约束最优化问题:
称为原使问题的对偶问题. 定义对偶问题的最优值
称为对偶问题的值.
3. 原始问题和对偶问题的关系
这里直接列出《统计学习方法》中的几个定理和推论.
定理1 若原始问题和对偶问题都有最大值,则
推论1 设 x∗ 和 α∗,β∗ 分别是原始问题(公式1~3)和对偶问题(公式10~11)的可行解,并且 d∗=p∗ ,则 x∗ 和 α∗,β∗ 分别是原始问题和对偶问题的最优解.
定理2 考虑原始问题(公式1~3)和对偶问题(公式10~11). 假设函数 f(x) 和 ci(x) 是凸函数, hj(x) 是仿射函数 1; 并且假设不等式约束 ci(x) 是严格可行的, 即存在 x , 对所有
定理3 对原始问题(公式1~3)和对偶问题(公式10~11), 假设函数 f(x) 和 ci(x) 是凸函数, hj(x) 是仿射函数,并且不等式约束 ci(x) 是严格可行的, 则 x∗ 和 α∗,β∗ 分别是原始问题和对偶问题的解的充分必要条件是 x∗,α∗,β∗ 满足 KKT条件:
注:在该定理中,书中还给出以下两个条件
我认为是错误的,如果满足的话,那么 ci(x∗)=0,i=1,2,...,k ,显然广义上的拉格朗日函数变成了原始的拉格朗日函数,与原始问题(公式2)不符。
- f(x) 称为仿射函数,如果它满足 f(x)=ax+b,a∈Rn,b∈R,x∈Rn ↩