Skip to content

算法Algorithm

增广 Lagrange 乘子法

Augmented Lagrangian method · Method of multipliers

联合最小化增广目标后累加约束违背,借对偶近端机制在固定罚参数下改善可行性,并分别检查内层与外层误差。

形式陈述 ​

先考虑 f:Rn→R 连续可微、目标凸且等式仿射的凸优化问题

minxf(x),Ax=b,

其中 A∈Rm×n 满行秩。采用 L(x,λ)=f(x)+λT(Ax−b),并假设存在原始—对偶鞍点;也假设下述每个内层最小值都可取到。强凸且有限值的 f 是保证内层存在唯一解的一种常用充分条件。

固定 ρ>0,增广 Lagrangian 定义为

Lρ(x,λ)=f(x)+λT(Ax−b)+ρ2‖Ax−b‖2.

从任意 λ0 出发,乘子法每轮执行

xk+1∈argminxLρ(x,λk),λk+1=λk+ρ(Axk+1−b).

第一步对所有原变量联合精确最小化,第二步累积本轮约束误差。这是本页收敛分析的算法;实际不精确内层需要单独的误差控制条件。

令 d(λ)=infxL(x,λ) 为对偶函数。上述精确版本等价于在对偶端作近端最大化:

λk+1=argmaxλ{d(λ)−12ρ‖λ−λk‖2}.

因此,二次项既可以在原端帮助求解,也可以解释为对偶端稳定的隐式步。

直觉

二次罚只根据本轮违约收取费用。乘子法还保留一个历史账本:若约束反复向同一侧偏离,乘子就持续增加该方向的压力。原来必须靠更大罚系数维持的法向力,可以逐渐由乘子承担。

配方得到

Lρ(x,λ)=f(x)+ρ2‖Ax−b+λ/ρ‖2−12ρ‖λ‖2.

所以每次更新乘子,都移动了二次项的中心。固定 ρ 不意味着每轮解决同一个罚问题;变化的线性项让内层最优点持续移动。

乘子积累违约
例子与边界

同一个等式问题,固定罚率一 ​

取

f(x,y)=12[(x−2)2+y2],c(x,y)=x+y−1,ρ=1, λ0=0.

内层的两个方程为

x−2+λk+c=0,y+λk+c=0.

更新后 λk+1=λk+c,因此

xk+1=2−λk+1,yk+1=−λk+1,λk+1=λk+13.

解这个标量递推可得

λk=12(1−3−k),c(xk,yk)=3−k,k≥1.
k (xk,yk) λk 约束残差
1 (5/3,−1/3) 1/3 1/3
2 (14/9,−4/9) 4/9 1/9
3 (41/27,−13/27) 13/27 1/27
4 (122/81,−40/81) 40/81 1/81

所有内层 Hessian 都是 (2112),条件数一直为三。固定二次罚而不更新乘子会永久停在第一行;乘子法却趋于 (3/2,−1/2),而不必把这组特征值拉得越来越开。

每一行都有 ∇f(xk,yk)+(1,1)Tλk=0,但有限轮约束残差仍非零。只检查驻点方程,会在第一轮错误地认为原问题已经解完。

联合最小化和交替最小化不相同 ​

若 f(x,z)=f1(x)+f2(z) 且约束为 x−z=0,本页要求一次联合求出 Lρ(x,z,λk) 的最小点。ADMM则先固定 z 更新 x,再固定新的 x 更新 z,最后更新乘子。一次交替扫掠一般没有完成联合最小化,所以不能直接套用本页的对偶近端等式;ADMM 有自己的残差和收敛证明。

非凸等式也可以定义同样的增广函数,但此时内层局部最小点不必最小化普通 Lagrangian,对偶近端证明就失去关键一步。局部收敛需要正则约束、二阶充分条件、足够好的乘子初值及相应罚率条件,不能由更新公式单独推出。

推论与应用

乘子更新为什么是对偶隐式步 ​

精确内层的一阶条件为

0=∇f(xk+1)+ATλk+ρAT(Axk+1−b)=∇f(xk+1)+ATλk+1.

由于 f 凸,xk+1 同时全局最小化普通 L(x,λk+1)。记 rk+1=Axk+1−b。对任意 λ,

d(λ)≤L(xk+1,λ)=d(λk+1)+(rk+1)T(λ−λk+1).

所以 rk+1 是凹对偶函数在新乘子处的超梯度。又因为 λk+1−λk=ρrk+1,它恰好抵消近端二次项在新点的梯度,这就证明了前面的近端最大化等式。与显式对偶梯度上升不同,方向由新点的超梯度确定。

约束误差为什么趋零 ​

固定一个对偶最优乘子 λ∗。上面的超梯度不等式给出

(rk+1)T(λk+1−λ∗)≤0.

展开 λk=λk+1−ρrk+1 的平方,得到

‖λk+1−λ∗‖2≤‖λk−λ∗‖2−‖λk+1−λk‖2.

乘子到任意对偶解的距离不增,并且相邻乘子差的平方可求和。因此 rk+1=(λk+1−λk)/ρ→0。同一个超梯度不等式还给出

0≤d(λ∗)−d(λk+1)≤(rk+1)T(λ∗−λk+1)⟶0.

乘子有界;对偶函数上半连续,使其聚点都是对偶解。再以任一这样的聚点作上面距离不等式的参照,得到整个乘子序列收敛。若原变量也有聚点,由 rk→0 及精确驻点式取极限,该聚点满足原问题的 KKT。强凸 f 时原解唯一,驻点式还可把乘子收敛传到原变量。一般凸情形不能仅由乘子收敛保证所有原变量有界。

不等式怎样进入乘子更新 ​

对凸目标与仿射不等式 g(x)=Ax−b≤0,引入非负松弛 u≥0,把约束写成 g(x)+u=0。固定 λ、ρ>0 后,关于松弛的内层最小化可逐坐标完成:

ui(x,λ)=max{0,−gi(x)−λi/ρ}.

代回 f(x)+λT(g(x)+u)+(ρ/2)‖g(x)+u‖2,得到

L~ρ(x,λ)=f(x)+12ρ∑i[max(0,λi+ρgi(x))2−λi2].

若在 x 上的精确最小值能取到,先求 x+∈argminL~ρ(x,λ),再代回最优松弛,乘子更新就是

λi+=λi+ρ(gi(x+)+ui(x+,λ))=max(0,λi+ρgi(x+)).

这里的非负投影由松弛最小化导出,不是把等式更新中的负乘子随意删掉。关于 u 的内层含非负约束:在边界应检查单侧最优性,不能对它直接套用前面无约束内层的零梯度式。上述计算给出了不等式版本的具体一步;若要引用其收敛结论,还须匹配约束内层的可解性、鞍点与误差条件。

不精确内层与线性代数复用 ​

对前面的等式版本,若内层只解到 ek+1=∇xLρ(xk+1,λk),更新乘子后仍有精确恒等式

ek+1=∇f(xk+1)+ATλk+1.

因此停止至少要同时控制 ‖rk+1‖ 和 ‖ek+1‖。固定一个很粗的内层容差,不能直接保留精确版本的收敛结论;常见理论使用逐步收紧、可求和误差或相对误差条件。

若 f(x)=xTHx/2+cTx 且 H≻0,内层是

(H+ρATA)xk+1=−c−ATλk+ρATb.

固定 ρ 时可以预先分解这个线性系统:稠密设置成本 O(n3),每轮三角求解 O(n2),约束残差和乘子更新另需矩阵向量积。对偶近端观点也把它与Moreau 包络联系起来,但算子解释不会免除内层求解成本。

参考资料
关系图谱8 个相邻概念 · 3 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系