交替方向乘子法(Alternating Direction Method of Multipliers,简称ADMM)是一种求解具有约束的优化问题的迭代算法
,特别适用于解决大规模优化问题,特别是那些可以分解为子问题的凸优化问题
。
ADMM结合了拉格朗日乘子法
和分裂贝尔曼算法
的优点,通过分解原问题为一系列较小的子问题,使得求解过程更加高效和容易管理。
ADMM的原理
ADMM主要用于解决以下形式的优化问题:
minimize
f
(
X
)
+
g
(
Z
)
subject to
A
X
+
B
Z
=
C
\begin{aligned} \text{minimize} & \quad f(X) + g(Z) \\ \text{subject to} & \quad AX + BZ = C \end{aligned}
minimizesubject tof(X)+g(Z)AX+BZ=C
其中,
f
(
X
)
f(X)
f(X)和
g
(
Z
)
g(Z)
g(Z)是两个凸函数
,
A
X
+
B
Z
=
C
AX + BZ = C
AX+BZ=C是等式约束,
A
A
A、
B
B
B和
C
C
C是给定的矩阵。
ADMM的迭代步骤
ADMM的迭代步骤可以概括为以下三个部分:
-
X更新:在
固定
Z Z Z的情况下,求解以下子问题以更新 X X X:
X k + 1 = arg min X ( f ( X ) + ρ 2 ∥ A X + B Z k − C + Y k ∥ 2 2 ) X^{k+1} = \arg\min_X \left( f(X) + \frac{\rho}{2} \| AX + BZ^k - C + Y^k \|_2^2 \right) Xk+1=argXmin(f(X)+2ρ∥AX+BZk−C+Yk∥22)
这里, Y k Y^k Yk是上一步迭代的拉格朗日乘子
, ρ \rho ρ是惩罚系数。
-
Z更新:在
固定
X X X的情况下,求解以下子问题以更新 Z Z Z:
Z k + 1 = arg min Z ( g ( Z ) + ρ 2 ∥ A X k + 1 + B Z − C + Y k ∥ 2 2 ) Z^{k+1} = \arg\min_Z \left( g(Z) + \frac{\rho}{2} \| AX^{k+1} + BZ - C + Y^k \|_2^2 \right) Zk+1=argZmin(g(Z)+2ρ∥AXk+1+BZ−C+Yk∥22) -
拉格朗日乘子更新:更新拉格朗日乘子 Y Y Y:
Y k + 1 = Y k + ρ ( A X k + 1 + B Z k + 1 − C ) Y^{k+1} = Y^k + \rho \left( AX^{k+1} + BZ^{k+1} - C \right) Yk+1=Yk+ρ(AXk+1+BZk+1−C)
ADMM的增广拉格朗日函数
ADMM是基于增广拉格朗日函数(augmented Lagrangian function)的,该函数在原拉格朗日函数的基础上加上了一个二次项
,以惩罚违反约束的程度:
L
ρ
(
X
,
Z
,
Y
)
=
f
(
X
)
+
g
(
Z
)
+
Y
⊤
(
A
X
+
B
Z
−
C
)
+
ρ
2
∥
A
X
+
B
Z
−
C
∥
2
2
L_\rho(X, Z, Y) = f(X) + g(Z) + Y^\top (AX + BZ - C) + \frac{\rho}{2} \| AX + BZ - C \|_2^2
Lρ(X,Z,Y)=f(X)+g(Z)+Y⊤(AX+BZ−C)+2ρ∥AX+BZ−C∥22
ADMM的收敛性
ADMM的收敛性要求原问题的函数
f
f
f和
g
g
g为凸函数
,并且满足一定的条件。ADMM的迭代过程在满足这些条件下,能够收敛到原问题的解。
ADMM在子空间聚类中的应用
在子空间聚类中,ADMM被用于求解复杂的优化问题,如低秩表示
或在多视图数据上进行鲁棒
聚类。
例如,在优化问题(3.5)中,ADMM被用于求解矩阵
A
(
v
)
A(v)
A(v)、
B
(
v
)
B(v)
B(v)、
Z
(
v
)
1
Z(v)_1
Z(v)1、
Z
(
v
)
2
Z(v)_2
Z(v)2和
E
(
v
)
E(v)
E(v),这些矩阵代表了数据的不同表示或误差项。
ADMM的优点
- 并行性:ADMM允许在更新
X
X
X和
Z
Z
Z时进行并行计算,这对
大规模数据集的处理
非常有利。 - 易于实现:ADMM的迭代步骤相对简单,
易于编程实现。
- 广泛适用性:ADMM适用于各种类型的优化问题,
包括线性、非线性、凸和非凸问题。
ADMM的局限性
- 收敛速度:对于某些问题,ADMM的收敛速度可能较慢。
- 参数选择:惩罚系数 ρ \rho ρ的选择对算法的性能有显著影响,不当的选择可能导致算法收敛缓慢或不收敛。