一、简介
约束优化问题的原问题(Primal Problem)的一般形式如下:
⎩⎨⎧minxf(x),x∈Rp s.t. mi(x)≤0,i=1,2,⋯,M s.t. nj(x)=0,j=1,2,⋯,N
求解约束优化问题需要用到拉格朗日乘子法,定义拉格朗日函数:
L(x,λ,η)=f(x)+i=1∑Mλimi(x)+j=1∑Nηjnj(x)λ,η分别是M维、N维向量
然后原问题可以转化为以下优化问题,这两个优化问题具有同样的解:
{xminλ,ηmaxL(x,λ,η)s.t.λi≥0
可以说明一下为什么上述约束优化问题可以求得原问题的最优解:
以不等式约束为例:
{如果x违反了约束mi(x)≤0,即mi(x)>0,由于λi≥0,λmaxL=∞如果x符合约束mi(x)≤0,由于λi≥0,λmaxL=∞(此时λi=0)因此xminλmaxL=xmin⎩⎨⎧x符合约束λmaxL,x不符合约束∞⎭⎬⎫
也就是说虽然拉格朗日函数对 x 没有约束,但是在求解过程中会过滤掉不符合原问题 x 的约束的 x 。
二、对偶关系证明
对于一个优化问题,为什么我们要找它的对偶问题呢?
因为一个优化问题,无论是否为凸,其对偶问题一定为凸优化问题(下面解释)
那么为什么一定要找一个凸优化问题呢?
因为凸优化问题有一些很好的性质,比如
凸优化问题的局部最优解就是全局最优解
凸问题和其对偶问题解相等是kkt的充分必要条件
下面我们来一步步看。
原问题的对偶问题为
{maxλ,ηminxL(x,λ,η) s.t. λi≥0
可以看到原问题是关于 x 的函数,对偶问题是关于 λ,η 的函数。有如下定理:
λ,ηmaxxminL(x,λ,η)≤xminλ,ηmaxL(x,λ,η)
这个关系可以简单地得到证明:
A(λ,η)xminL(x,λ,η)≤L(x,λ,η)≤B(x)λ,ηmaxL(x,λ,η)⇒A(λ,η)≤B(x)⇒A(λ,η)≤minB(x)⇒maxA(λ,η)≤minB(x)⇒λ,ηmaxxminL(x,λ,η)≤L(x,λ,η)≤xminλ,ηmaxL(x,λ,η)
三、对偶性的几何解释
{minxf(x),x∈Rp s.t. m(x)≤0其定义域D为domf∩domm
对于上述约束优化问题, 可以写出它的拉格朗日函数:
L(x,λ)=f(x)+λm(x),λ≥0
然后表示出原问题和对偶问题的最优解 p∗ 和 d∗ :
p∗=minf(x)d∗=λmaxxminL(x,λ)
接着定义集合G:
G={(m(x),f(x))∣x∈D}={(u,t)∣x∈D}
集合 G 在二维坐标系下表示的空间假设为下图:

因此 p∗ 可以表示为:
inf{t∣(u,t)∈G,u≤0}
p∗ 在图中可以表示为:

同样地 d∗ 也可以用 u 和 t 来表示:
d∗=λmaxxminL(x,λ)=λmaxg(λ)xmin(t+λu)=λmaxg(λ)g(λ)=inf{t+λu∣(u,t)∈G}
t+λu=b 表示以 −λ 为斜率,以 b 为截距的直线,而 g(λ) 即为与区域 G 相切最小截距的直线 t+λu=b 的 b 。如下图所示:

结合上图来看,而 d∗ 也就可以认为是调整斜率 −λ 使得直线 t+λu=b 截距 b 最大时的 b 的值。可以想象无论直线怎么变动,所取得的极值 d∗ 都不可能比 p∗ 大,这也就解释了为什么对偶问题最优解总是小于等于原问题最优解。
- 如果 p∗>d∗ 则为弱对偶关系;
- 如果 p∗=d∗ 则为强对偶关系。
在某些特殊情况下可以使得强对偶关系成立,在图中表示如下:

如果一个约束优化问题是凸优化问题且同时满足Slater条件,那么可以使得 d∗=p∗ :
凸优化 + Slater条件 ⇒d∗=p∗
但是 d∗=p∗ 并不能推出该约束优化问题是凸优化问题且同时满足Slater条件,这是因为Slater条件是 d∗=p∗ 的充分不必要条件,还有其他的条件可以使得约束优化问题满足 d∗=p∗ 。
四、Slater条件
Slater条件指的是 ∃x^∈ relintD 使得 ∀i=1,2,⋯,Mmi(x^)<0 。
relintD 指的是定义域除去边界的部分。
有以下两点说明:
①对于大多数凸优化问题,Slater条件是成立的;
②放松的Slater条件: M个 mi(x) 中的仿射函数(例如f(x)=Ax+b)可以不用验证。因为在定义域内寻找一个满足所有 mi(x)<0 的点是比较困难的,因此放松的Slater条件会减少一些复杂度。
五、KKT条件
对于原问题:
⎩⎨⎧minxf(x),x∈Rp s.t. mi(x)≤0,i=1,2,⋯,M s.t. nj(x)=0,j=1,2,⋯,N
以及其对偶问题:
{maxλ,ηminxL(x,λ,η) s.t. λi≥0
如果原问题和对偶问题满足强对偶关系,则原问题和对偶问题具有相同的最优解,另外它们还天然地满足KKT条件 (KarushKuhn-Tucker条件) 。假设原问题最优解 p∗ 对应 x∗ ,对偶问题最优解 d∗ 对应 λ∗ 和 η∗ ,则KKT条件为:
⎩⎨⎧ 可行条件: ⎩⎨⎧mi(x∗)≤0nj(x∗)=0λ∗≥0 互补松弛: λimi=0, 对 ∀i=1,2,⋯,M 成立 梯度为 0:∂x∂L(x,λ∗,η∗)∣∣x=x∗=0
可以进行以下证明:
d∗=λ,ηmaxg(λ,η)=g(λ∗,η∗)=xminL(x,λ∗,η∗)≤L(x∗,λ∗,η∗)=f(x∗)+i=1∑Mλi∗mi(x∗)+=0j=1∑Nηj∗nj(x∗)=f(x∗)+≤0i=1∑Mλi∗mi(x∗)≤f(x∗)=p∗因为d∗=p∗,所以上式中两个≤都必须取等号。首先xminL(x,λ∗,η∗)=L(x∗,λ∗,η∗),则可以得出:∂x∂L(x,λ∗,η∗)∣∣x=x∗=0然后f(x∗)+i=1∑Mλi∗mi(x∗)=f(x∗),则可以得出:i=1∑Mλi∗mi(x∗)=0,由于λi∗mi(x∗)≤0,要使得i=1∑Mλi∗mi(x∗)=0,则必有λi∗mi(x∗)=0
六、小结
约束优化(Constrained Optimization),即约束优化问题,是优化问题的分支。它是在一系列约束条件下,寻找一组参数值,使某个或某一组函数的目标值达到最优。其中约束条件既可以是等式约束也可以是不等式约束。寻找这一组参数值的关键可是:满足约束条件和目标值要达到最优。求解约束问题的方法可分为传统方法和进化算法。这里介绍了传统方法,可以用拉格朗日乘子法求解,进化算法是求解优化问题的全局优化方法,其灵感来自于大自然的生物进化,是一种成熟的具有高鲁棒性和广泛适用性的优化算法。目前接触到的有遗传算法、粒子群优化算法、人工蜂群算法。感兴趣的小伙伴可以去深入了解,下一结我们将介绍SVM算法,他就是一个有约束的优化问题。
“开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 1 天,点击查看活动详情”