上一节讲了对偶问题上的 DR-splitting 就等价于原问题的 ADMM,这一节在详细的讲一下 ADMM 及其变种。
1. 标准 ADMM 形式
首先还是给出 ADMM 要求解的问题的格式,也就是约束存在耦合:
min
x
,
z
f
(
x
)
+
g
(
z
)
s.t.
A
x
+
B
z
=
b
\begin{aligned} \min_{x,z} \quad& f(x)+g(z) \\ \text{s.t.} \quad& Ax+Bz=b \end{aligned}
x,zmins.t.f(x)+g(z)Ax+Bz=b
这个问题的增广拉格朗日函数为
L
β
(
x
,
z
,
w
)
=
f
(
x
)
+
g
(
z
)
−
w
⊤
(
A
x
+
B
z
−
b
)
+
β
2
∥
A
x
+
B
z
−
b
∥
2
2
L_{\beta}(\mathbf{x}, \mathbf{z}, \mathbf{w})=f(\mathbf{x})+g(\mathbf{z})-\mathbf{w}^{\top}(\mathbf{A} \mathbf{x}+\mathbf{B z}-\mathbf{b})+\frac{\beta}{2}\|\mathbf{A} \mathbf{x}+\mathbf{B z}-\mathbf{b}\|_{2}^{2}
Lβ(x,z,w)=f(x)+g(z)−w⊤(Ax+Bz−b)+2β∥Ax+Bz−b∥22
ADMM 的迭代方程为
x
k
+
1
=
argmin
x
L
β
(
x
,
z
k
,
w
k
)
z
k
+
1
=
argmin
z
L
β
(
x
k
+
1
,
z
,
w
k
)
w
k
+
1
=
w
k
−
β
(
A
x
k
+
1
+
B
z
k
+
1
−
b
)
\begin{array}{l} \mathbf{x}^{k+1}=\operatorname{argmin}_{\mathbf{x}} L_{\beta}\left(\mathbf{x}, \mathbf{z}^{\mathbf{k}}, \mathbf{w}^{k}\right) \\ \mathbf{z}^{k+1}=\operatorname{argmin}_{\mathbf{z}} L_{\beta}\left(\mathbf{x}^{k+1}, \mathbf{z}, \mathbf{w}^{k}\right) \\ \mathbf{w}^{k+1}=\mathbf{w}^{k}-\beta\left(\mathbf{A} \mathbf{x}^{k+1}+\mathbf{B} \mathbf{z}^{k+1}-\mathbf{b}\right) \end{array}
xk+1=argminxLβ(x,zk,wk)zk+1=argminzLβ(xk+1,z,wk)wk+1=wk−β(Axk+1+Bzk+1−b)
这实际上就是把 ALM 中关于
x
,
z
x,z
x,z 的联合优化给分开了,分别进行优化。如果取
y
k
=
w
k
/
β
\mathbf{y}^{k}=\mathbf{w}^{k}/\beta
yk=wk/β,就可以转化为
x
k
+
1
=
argmin
x
f
(
x
)
+
g
(
z
k
)
+
β
2
∥
A
x
+
B
z
k
−
b
−
y
k
∥
2
2
z
k
+
1
=
argmin
z
f
(
x
k
+
1
)
+
g
(
z
)
+
β
2
∥
A
x
k
+
1
+
B
z
−
b
−
y
k
∥
2
2
y
k
+
1
=
y
k
−
(
A
x
k
+
1
+
B
z
k
+
1
−
b
)
\begin{array}{l} \mathbf{x}^{k+1}=\operatorname{argmin}_{\mathbf{x}} f(\mathbf{x})+g\left(\mathbf{z}^{k}\right)+\frac{\beta}{2}\left\|\mathbf{A} \mathbf{x}+\mathbf{B} \mathbf{z}^{k}-\mathbf{b}-\mathbf{y}^{k}\right\|_{2}^{2} \\ \mathbf{z}^{k+1}=\operatorname{argmin}_{\mathbf{z}} f\left(\mathbf{x}^{k+1}\right)+g(\mathbf{z})+\frac{\beta}{2}\left\|\mathbf{A} \mathbf{x}^{k+1}+\mathbf{B} \mathbf{z}-\mathbf{b}-\mathbf{y}^{k}\right\|_{2}^{2} \\ \mathbf{y}^{k+1}=\mathbf{y}^{k}-\left(\mathbf{A} \mathbf{x}^{k+1}+\mathbf{B} \mathbf{z}^{k+1}-\mathbf{b}\right) \end{array}
xk+1=argminxf(x)+g(zk)+2β∥∥Ax+Bzk−b−yk∥∥22zk+1=argminzf(xk+1)+g(z)+2β∥∥Axk+1+Bz−b−yk∥∥22yk+1=yk−(Axk+1+Bzk+1−b)
最后一步也可以加一个步长系数
y
k
+
1
=
y
k
−
γ
(
A
x
k
+
1
+
B
z
k
+
1
−
b
)
\mathbf{y}^{k+1}=\mathbf{y}^{k}-\gamma\left(\mathbf{A} \mathbf{x}^{k+1}+\mathbf{B} \mathbf{z}^{k+1}-\mathbf{b}\right)
yk+1=yk−γ(Axk+1+Bzk+1−b)
2. 收敛性分析
假如
x
⋆
,
z
⋆
,
y
⋆
x^\star,z^\star,y^\star
x⋆,z⋆,y⋆ 是该问题的最优解,那么对拉格朗日函数求导可以得到 KKT 条件
(
primal feasibility
)
A
x
⋆
+
B
z
⋆
=
b
(
dual feasibility
I
)
0
∈
∂
f
(
x
⋆
)
+
A
T
y
⋆
(
dual feasibility
I
I
)
0
∈
∂
g
(
z
⋆
)
+
B
T
y
⋆
\begin{array}{ll}(\text {primal feasibility}) & \mathbf{A x}^{\star}+\mathbf{B z}^{\star}=\mathbf{b} \\(\text {dual feasibility } I) & 0 \in \partial f\left(\mathbf{x}^{\star}\right)+\mathbf{A}^{T} \mathbf{y}^{\star} \\(\text {dual feasibility } I I) & 0 \in \partial g\left(\mathbf{z}^{\star}\right)+\mathbf{B}^{T} \mathbf{y}^{\star}\end{array}
(primal feasibility)(dual feasibility I)(dual feasibility II)Ax⋆+Bz⋆=b0∈∂f(x⋆)+ATy⋆0∈∂g(z⋆)+BTy⋆
由于
z
k
+
1
=
argmin
z
g
(
z
)
+
β
2
∥
A
x
k
+
1
+
B
z
−
b
−
y
k
∥
2
2
\mathbf{z}^{k+1}=\operatorname{argmin}_{\mathbf{z}} g(\mathbf{z})+\frac{\beta}{2}\left\|\mathbf{A} \mathbf{x}^{k+1}+\mathbf{B} \mathbf{z}-\mathbf{b}-\mathbf{y}^{k}\right\|_{2}^{2}
zk+1=argminzg(z)+2β∥∥Axk+1+Bz−b−yk∥∥22,求导就可以得到
⇒
0
∈
∂
g
(
z
k
+
1
)
+
B
T
(
A
x
k
+
1
+
B
z
k
+
1
−
b
−
y
k
)
=
∂
g
(
z
k
+
1
)
+
B
T
y
k
+
1
\Rightarrow 0 \in \partial g\left(\mathbf{z}^{k+1}\right)+\mathbf{B}^{T}\left(\mathbf{A} \mathbf{x}^{k+1}+\mathbf{B} \mathbf{z}^{k+1}-\mathbf{b}-\mathbf{y}^{k}\right)=\partial g\left(\mathbf{z}^{k+1}\right)+\mathbf{B}^{T} \mathbf{y}^{k+1}
⇒0∈∂g(zk+1)+BT(Axk+1+Bzk+1−b−yk)=∂g(zk+1)+BTyk+1
也就是说对偶可行性
I
I
II
II 在每次迭代过程中都能满足,但是对偶可行性
I
I
I 则不能满足,因为有
0
∈
∂
f
(
x
k
+
1
)
+
A
T
(
y
k
+
1
+
B
(
z
k
−
z
k
+
1
)
)
0 \in \partial f\left(\mathbf{x}^{k+1}\right)+\mathbf{A}^{T}\left(\mathbf{y}^{k+1}+\mathbf{B}\left(\mathbf{z}^{k}-\mathbf{z}^{k+1}\right)\right)
0∈∂f(xk+1)+AT(yk+1+B(zk−zk+1))
当
k
→
∞
k\to\infty
k→∞ 的时候
I
I
I 还是可以渐近逼近的。
收敛性:如果假设 f , g f,g f,g 是闭凸函数,并且 KKT 条件的解存在,那么 A x k + B z k → b \mathbf{A} \mathbf{x}^{k}+\mathbf{B z}^{k} \rightarrow \mathbf{b} Axk+Bzk→b, f ( x k ) + g ( z k ) → p ∗ f\left(\mathbf{x}^{k}\right)+g\left(\mathbf{z}^{k}\right) \rightarrow p^{*} f(xk)+g(zk)→p∗, y k \mathbf{y}^{k} yk 收敛。并且如果 ( x k , y k ) (x^k,y^k) (xk,yk) 有界,他们也收敛。
收敛速度:ADMM 算法的收敛速度没有一个 general 的分析和结论。在不同的假设条件下有不同的结论。
- 如果每步更新都有关于 x k , y k , z k x^k,y^k,z^k xk,yk,zk 的准确解,并且 f f f 光滑, ∇ f \nabla f ∇f 利普希茨连续,那么收敛速度为 O ( 1 / k ) , O ( 1 / k 2 ) O(1/k),O(1/k^2) O(1/k),O(1/k2)(应该是针对不同情况可能有不同速度,课上也没怎么讲,了解一下就够了)
- …
3. ADMM 变种
在 ADMM 的标准形式里比较关键的实际上就是要求一个如下形式的子问题(极小化问题)
min
x
f
(
x
)
+
β
2
∥
A
x
−
v
∥
2
2
\min _{\mathbf{x}} f(\mathbf{x})+\frac{\beta}{2}\|\mathbf{A} \mathbf{x}-\mathbf{v}\|_{2}^{2}
xminf(x)+2β∥Ax−v∥22
其中
v
=
b
−
B
z
k
+
y
k
\mathbf{v}=\mathbf{b}-\mathbf{B} \mathbf{z}^{k}+\mathbf{y}^{k}
v=b−Bzk+yk。这个问题对于不同的
f
f
f 求解复杂度也不一样,而且有的时候并不能得到准确的解,只能近似。实际上这也是一个优化问题,可以采用的方法有
- 迭代方法,比如 CG,L-BFGS;
- 如果 f ( x ) = 1 / 2 ∥ C x − d ∥ 2 f(x)=1/2 \|Cx-d\|^2 f(x)=1/2∥Cx−d∥2,那么子问题就是求解方程 ( C T C + β A T A ) x k + 1 = ⋯ (C^TC+\beta A^TA)x^{k+1}=\cdots (CTC+βATA)xk+1=⋯,由于 C C C 是固定的参数,因此可以在一开始做一次 Cholesky 分解或者 L D L T LDL^T LDLT 分解,之后求解就很简单了。另外如果 ( C T C + β A T A ) (C^TC+\beta A^TA) (CTC+βATA) 的结构是简单矩阵 + 低秩矩阵,就可以用 Woodbury 公式矩阵求逆;
- 单次梯度下降法 x k + 1 = x k − c k ( ∇ f ( x k ) + β A T ( A x + B z k − b − y k ) ) \mathbf{x}^{k+1}=\mathbf{x}^{k}-c^{k}\left(\nabla f\left(\mathbf{x}^{k}\right)+\beta \mathbf{A}^{T}\left(\mathbf{A} \mathbf{x}+\mathbf{B} \mathbf{z}^{k}-\mathbf{b}-\mathbf{y}^{k}\right)\right) xk+1=xk−ck(∇f(xk)+βAT(Ax+Bzk−b−yk))
- 如果 f f f 非光滑,也可以把上面的梯度下降换成 proximal 梯度下降;
- 可以在后面加一个正则项
x k + 1 = argmin f ( x ) + β 2 ∥ A x + B y k − b − z k ∥ 2 2 + β 2 ( x − x k ) T ( D − A T A ) ( x − x k ) \mathbf{x}^{k+1}=\operatorname{argmin} f(\mathbf{x})+\frac{\beta}{2}\left\|\mathbf{A} \mathbf{x}+\mathbf{B y}^{k}-\mathbf{b}-\mathbf{z}^{k}\right\|_{2}^{2}+\frac{\beta}{2}\left(\mathbf{x}-\mathbf{x}^{k}\right)^{T}\left(\mathbf{D}-\mathbf{A}^{T} \mathbf{A}\right)\left(\mathbf{x}-\mathbf{x}^{k}\right) xk+1=argminf(x)+2β∥∥∥Ax+Byk−b−zk∥∥∥22+2β(x−xk)T(D−ATA)(x−xk)
这个时候优化问题就变成了 min f ( x ) + ( β / 2 ) ( x − x k ) T D ( x − x k ) \min f(x)+(\beta/2)(x-x^k)^TD(x-x^k) minf(x)+(β/2)(x−xk)TD(x−xk),如果取一个简单的 D D D 比如 D = I D=I D=I,那么问题就可能得到简化。
4. 分布式 ADMM
回想我们之前在计算近似点以及近似点梯度下降的时候,如果函数 f , g f,g f,g 有特殊结构是不是可以分布式并行计算,而 ADMM 的子问题实际上跟近似点算子很像,所以如果有一定的特殊结构也可以并行处理。
首先回忆一下 ADMM 子问题的形式
min
x
f
(
x
)
+
β
2
∥
A
x
−
v
∥
2
2
\min _{\mathbf{x}} f(\mathbf{x})+\frac{\beta}{2}\|\mathbf{A} \mathbf{x}-\mathbf{v}\|_{2}^{2}
xminf(x)+2β∥Ax−v∥22
现在这个优化变量
x
\mathbf{x}
x 是一个向量,我们的思想就是
x
\mathbf{x}
x 分成多个子块
x
1
,
.
.
.
,
x
n
x_1,...,x_n
x1,...,xn,如果函数有特殊的形式,就能把上面的问题解耦成多个子项的求和,然后针对
x
1
,
.
.
.
,
x
n
x_1,...,x_n
x1,...,xn 就能并行求解了。下面看几种特殊形式。
4.1 Distributed ADMM Ⅰ
函数
f
f
f 需要是可分的
f
(
x
)
=
f
1
(
x
1
)
+
f
2
(
x
2
)
+
⋯
+
f
N
(
x
N
)
f(\mathbf{x})=f_{1}\left(\mathbf{x}_{1}\right)+f_{2}\left(\mathbf{x}_{2}\right)+\cdots+f_{N}\left(\mathbf{x}_{N}\right)
f(x)=f1(x1)+f2(x2)+⋯+fN(xN)
约束条件
A
x
+
B
z
=
b
A\mathbf{x}+B\mathbf{z}=\mathbf{b}
Ax+Bz=b 也需要是可分的
A
=
[
A
1
0
A
2
⋱
0
A
N
]
\mathbf{A}=\left[\begin{array}{cccc}\mathbf{A}_{1} & & & \mathbf{0} \\& \mathbf{A}_{2} & & \\& & \ddots & \\\mathbf{0} & & & \mathbf{A}_{N}\end{array}\right]
A=⎣⎢⎢⎡A10A2⋱0AN⎦⎥⎥⎤
如果满足上面的两个性质,那么原本的更新过程
x
k
+
1
←
min
f
(
x
)
+
β
2
∥
A
x
+
B
y
k
−
b
−
z
k
∥
2
2
\mathbf{x}^{k+1} \leftarrow \min f(\mathbf{x})+\frac{\beta}{2}\left\|\mathbf{A} \mathbf{x}+\mathbf{B y}^{k}-\mathbf{b}-\mathbf{z}^{k}\right\|_{2}^{2}
xk+1←minf(x)+2β∥∥∥Ax+Byk−b−zk∥∥∥22
就可以分成并行的
N
N
N 个优化问题
x
1
k
+
1
←
min
f
1
(
x
1
)
+
β
2
∥
A
1
x
1
+
(
B
y
k
−
b
−
z
k
)
1
∥
2
2
⋮
x
N
k
+
1
←
min
f
N
(
x
N
)
+
β
2
∥
A
N
x
N
+
(
B
y
k
−
b
−
z
k
)
N
∥
2
2
\begin{array}{c}\mathbf{x}_{1}^{k+1} \leftarrow \min f_{1}\left(\mathbf{x}_{1}\right)+\frac{\beta}{2}\left\|\mathbf{A}_{1} \mathbf{x}_{1}+\left(\mathbf{B} \mathbf{y}^{k}-\mathbf{b}-\mathbf{z}^{k}\right)_{1}\right\|_{2}^{2} \\\vdots \\\mathbf{x}_{N}^{k+1} \leftarrow \min f_{N}\left(\mathbf{x}_{N}\right)+\frac{\beta}{2}\left\|\mathbf{A}_{N} \mathbf{x}_{N}+\left(\mathbf{B} \mathbf{y}^{k}-\mathbf{b}-\mathbf{z}^{k}\right)_{N}\right\|_{2}^{2}\end{array}
x1k+1←minf1(x1)+2β∥∥A1x1+(Byk−b−zk)1∥∥22⋮xNk+1←minfN(xN)+2β∥∥ANxN+(Byk−b−zk)N∥∥22
例子 1(consensus):假如我们的
f
f
f 并不像上面那样可分,而是
min
∑
i
=
1
N
f
i
(
x
)
\min\sum_{i=1}^N f_i(\mathbf{x})
min∑i=1Nfi(x),注意上面要求
f
i
,
f
j
f_i,f_j
fi,fj 的自变量分别是
x
i
,
x
j
x_i,x_j
xi,xj,而这里的
f
i
,
f
j
f_i,f_j
fi,fj 的自变量都是
x
\mathbf{x}
x。可以怎么办呢?引入
x
\mathbf{x}
x 的
N
N
N 个 copies,把优化问题写成
min
{
x
i
}
,
z
∑
i
f
i
(
x
i
)
s.t.
x
i
−
z
=
0
,
∀
i
\begin{aligned}\min_{\{\mathbf{x}_i\},\mathbf{z}} \quad& \sum_i f_i(\mathbf{x}_i) \\\text{s.t.} \quad& \mathbf{x}_i-\mathbf{z}=0,\forall i\end{aligned}
{xi},zmins.t.i∑fi(xi)xi−z=0,∀i
例子 2(exchange):优化问题的形式为
min
{
x
i
}
,
z
∑
i
f
i
(
x
i
)
s.t.
∑
i
x
i
=
0
\begin{aligned}\min_{\{\mathbf{x}_i\},\mathbf{z}} \quad& \sum_i f_i(\mathbf{x}_i) \\\text{s.t.} \quad& \sum_i\mathbf{x}_i=0\end{aligned}
{xi},zmins.t.i∑fi(xi)i∑xi=0
这个问题的满足
f
f
f 可分了,但是却不满足上面要求的
A
A
A 的形式。可以怎么做呢?再次引入变量
min
{
x
i
}
,
z
∑
i
f
i
(
x
i
)
s.t.
x
i
−
x
i
′
=
0
,
∀
i
∑
i
x
i
′
=
0
\begin{aligned}\min_{\{\mathbf{x}_i\},\mathbf{z}} \quad& \sum_i f_i(\mathbf{x}_i) \\\text{s.t.} \quad& \mathbf{x}_i-\mathbf{x}_i'=0,\forall i \\\quad& \sum_i\mathbf{x}_i'=0\end{aligned}
{xi},zmins.t.i∑fi(xi)xi−xi′=0,∀ii∑xi′=0
这个时候
x
i
\mathbf{x}_i
xi 可以并行计算了,但是
x
i
′
\mathbf{x}_i'
xi′ 还需要处理
(
x
i
′
)
k
+
1
=
arg
min
{
x
i
′
}
∑
i
β
2
∥
x
i
k
+
1
−
x
i
′
+
y
i
k
/
β
∥
s.t.
∑
i
x
i
′
=
0
(\mathbf{x}_i')^{k+1}=\arg\min_{\{\mathbf{x}_i'\}} \sum_i \frac{\beta}{2}\|\mathbf{x}_i^{k+1}-\mathbf{x}_i' + \mathbf{y}_i^k/\beta\| \\\text{s.t.} \sum_i \mathbf{x}_i'=0
(xi′)k+1=arg{xi′}mini∑2β∥xik+1−xi′+yik/β∥s.t.i∑xi′=0
这个问题可以得到闭式解,代入关于
x
i
\mathbf{x}_i
xi 的迭代方程里就可以得到
x
i
k
+
1
=
argmin
x
i
f
i
(
x
i
)
+
β
2
∥
x
i
−
(
x
i
k
−
mean
{
x
i
k
}
−
u
k
)
∥
2
2
u
k
+
1
=
u
k
+
mean
{
x
i
k
+
1
}
\begin{aligned}\mathbf{x}_{i}^{k+1} &=\underset{\mathbf{x}_{i}}{\operatorname{argmin}} f_{i}\left(\mathbf{x}_{i}\right)+\frac{\beta}{2}\left\|\mathbf{x}_{i}-\left(\mathbf{x}_{i}^{k}-\operatorname{mean}\left\{\mathbf{x}_{i}^{k}\right\}-\mathbf{u}^{k}\right)\right\|_{2}^{2} \\\mathbf{u}^{k+1} &=\mathbf{u}^{k}+\operatorname{mean}\left\{\mathbf{x}_{i}^{k+1}\right\}\end{aligned}
xik+1uk+1=xiargminfi(xi)+2β∥∥xi−(xik−mean{xik}−uk)∥∥22=uk+mean{xik+1}
实际上,这个 exchange 问题还是 consensus 问题的对偶形式,只需要写出来拉格朗日函数和 KKT 条件就可以了。
4.2 Distributed ADMM Ⅱ
前面是对
x
\mathbf{x}
x 进行分解,其实我们还可以对
z
\mathbf{z}
z 进行分解。对于约束
A
x
+
z
=
b
A\mathbf{x}+\mathbf{z}=\mathbf{b}
Ax+z=b,可以按行分解
A
=
[
A
1
⋮
A
L
]
,
z
=
[
z
1
⋮
z
L
]
,
b
=
[
b
1
⋮
b
L
]
\mathbf{A}=\left[\begin{array}{c}\mathbf{A}_{1} \\\vdots \\\mathbf{A}_{L}\end{array}\right], \mathbf{z}=\left[\begin{array}{c}\mathbf{z}_{1} \\\vdots \\\mathbf{z}_{L}\end{array}\right], \mathbf{b}=\left[\begin{array}{c}\mathbf{b}_{1} \\\vdots \\\mathbf{b}_{L}\end{array}\right]
A=⎣⎢⎡A1⋮AL⎦⎥⎤,z=⎣⎢⎡z1⋮zL⎦⎥⎤,b=⎣⎢⎡b1⋮bL⎦⎥⎤
这个时候假如优化函数的形式为
min
x
,
z
∑
l
(
f
l
(
x
)
+
g
l
(
z
l
)
)
,
s.t.
A
x
+
z
=
b
\min_{\mathbf{x},\mathbf{z}}\sum_l (f_l(\mathbf{x})+g_l(\mathbf{z}_l)),\text{ s.t.}A\mathbf{x}+\mathbf{z}=\mathbf{b}
minx,z∑l(fl(x)+gl(zl)), s.t.Ax+z=b,注意到这个时候虽然关于
z
\mathbf{z}
z 是可分的,但是关于
x
\mathbf{x}
x 却不是,跟前面的方法类似,我们把
z
\mathbf{z}
z copy 很多份,就可以转化为
min
x
,
{
x
l
}
,
z
∑
l
(
f
l
(
x
l
)
+
g
l
(
z
l
)
)
s.t.
A
l
x
l
+
z
l
=
b
l
,
∀
i
x
l
−
x
=
0
\begin{aligned}\min_{\mathbf{x},\{\mathbf{x}_l\},\mathbf{z}} \quad& \sum_l (f_l(\mathbf{x}_l)+g_l(\mathbf{z}_l)) \\\text{s.t.} \quad& A_l\mathbf{x}_l+\mathbf{z}_l=\mathbf{b}_l,\forall i \\\quad& \mathbf{x}_l-\mathbf{x}=0\end{aligned}
x,{xl},zmins.t.l∑(fl(xl)+gl(zl))Alxl+zl=bl,∀ixl−x=0
ADMM 方法中第一步我们更新
{
x
l
}
\{\mathbf{x}_l\}
{xl} 这可以并行处理,第二步我们更新
x
,
z
\mathbf{x},\mathbf{z}
x,z,巧妙的是我们也可以把他们两个解耦合开再并行处理。
4.3 Distributed ADMM Ⅲ
实际上前面分别是对矩阵 A A A 按列分解和按行分解,那也很容易想到我们可以既对列分解也对行分解。
对优化问题
min
∑
j
f
j
(
x
j
)
+
∑
i
g
i
(
z
i
)
s.t.
A
x
+
z
=
b
\begin{aligned}\min \quad& \sum_j f_j(\mathbf{x}_j)+\sum_i g_i(\mathbf{z}_i) \\\text{ s.t.}\quad& A\mathbf{x}+\mathbf{z}=\mathbf{b}\end{aligned}
min s.t.j∑fj(xj)+i∑gi(zi)Ax+z=b
那么就可以分解为
A
=
[
A
11
A
12
⋯
A
1
N
A
21
A
22
⋯
A
2
N
…
A
M
1
A
M
2
⋯
A
M
N
]
,
also
b
=
[
b
1
b
2
⋮
b
M
]
\mathbf{A}=\left[\begin{array}{cccc}\mathbf{A}_{11} & \mathbf{A}_{12} & \cdots & \mathbf{A}_{1 N} \\\mathbf{A}_{21} & \mathbf{A}_{22} & \cdots & \mathbf{A}_{2 N} \\& & \ldots & \\\mathbf{A}_{M 1} & \mathbf{A}_{M 2} & \cdots & \mathbf{A}_{M N}\end{array}\right], \text { also } \mathbf{b}=\left[\begin{array}{c}\mathbf{b}_{1} \\\mathbf{b}_{2} \\\vdots \\\mathbf{b}_{M}\end{array}\right]
A=⎣⎢⎢⎡A11A21AM1A12A22AM2⋯⋯…⋯A1NA2NAMN⎦⎥⎥⎤, also b=⎣⎢⎢⎢⎡b1b2⋮bM⎦⎥⎥⎥⎤
优化问题可以转化为
min
∑
j
f
j
(
x
j
)
+
∑
i
g
i
(
z
i
)
s.t.
∑
j
A
i
j
x
j
+
z
i
=
b
i
,
i
=
1
,
.
.
.
,
M
\begin{aligned}\min \quad& \sum_j f_j(\mathbf{x}_j)+\sum_i g_i(\mathbf{z}_i) \\\text{ s.t.}\quad& \sum_j A_{ij}\mathbf{x}_j+\mathbf{z}_i=\mathbf{b}_i,i=1,...,M\end{aligned}
min s.t.j∑fj(xj)+i∑gi(zi)j∑Aijxj+zi=bi,i=1,...,M
但是注意到这个时候
x
j
\mathbf{x}_j
xj 之间还是相互耦合的,类比前面的方法,要想解耦合,我们就找一个“替身”,这次是
p
i
j
=
A
i
j
x
j
\mathbf{p}_{ij}=A_{ij}\mathbf{x}_j
pij=Aijxj,那么新的问题就是
min
∑
j
f
j
(
x
j
)
+
∑
i
g
i
(
z
i
)
s.t.
∑
j
p
i
j
+
z
i
=
b
i
,
∀
i
p
i
j
=
A
i
j
x
j
,
∀
i
,
j
\begin{aligned}\min \quad& \sum_j f_j(\mathbf{x}_j)+\sum_i g_i(\mathbf{z}_i) \\\text{ s.t.}\quad& \sum_j \mathbf{p}_{ij}+\mathbf{z}_i=\mathbf{b}_i,\forall i \\\quad& \mathbf{p}_{ij}=A_{ij}\mathbf{x}_j,\forall i,j\end{aligned}
min s.t.j∑fj(xj)+i∑gi(zi)j∑pij+zi=bi,∀ipij=Aijxj,∀i,j
ADMM 中可以交替更新
{
p
i
j
}
\{\mathbf{p}_{ij}\}
{pij} 和
(
{
x
j
}
,
{
z
i
}
)
(\{\mathbf{x}_j\},\{\mathbf{z}_i\})
({xj},{zi})。关于
{
p
i
j
}
\{\mathbf{p}_{ij}\}
{pij} 的求解有闭式解,关于
(
{
x
j
}
,
{
z
i
}
)
(\{\mathbf{x}_j\},\{\mathbf{z}_i\})
({xj},{zi}) 也是可以分解为分别更新
{
x
j
}
,
{
z
i
}
\{\mathbf{x}_j\},\{\mathbf{z}_i\}
{xj},{zi},但是需要注意的是更新
x
j
\mathbf{x}_j
xj 的时候
f
j
,
A
1
j
T
A
1
j
,
.
.
.
,
A
M
j
T
A
M
j
f_j,A_{1j}^TA_{1j},...,A_{Mj}^TA_{Mj}
fj,A1jTA1j,...,AMjTAMj 都耦合在一起了,实际当中计算应该还是比较麻烦的。
4.3 Distributed ADMM Ⅳ
既然上面第三类方法中还是有耦合,那我们就可以再引入“替身变量”来解耦合,对每个
x
j
\mathbf{x}_j
xj 都 copy 出来
x
1
j
,
.
.
.
,
x
M
j
\mathbf{x}_{1j},...,\mathbf{x}_{Mj}
x1j,...,xMj,之后可以得到
min
∑
j
f
j
(
x
j
)
+
∑
i
g
i
(
z
i
)
s.t.
∑
j
p
i
j
+
z
i
=
b
i
,
∀
i
p
i
j
=
A
i
j
x
i
j
,
∀
i
,
j
x
j
=
x
i
j
,
∀
i
,
j
\begin{aligned}\min \quad& \sum_j f_j(\mathbf{x}_j)+\sum_i g_i(\mathbf{z}_i) \\\text{ s.t.}\quad& \sum_j \mathbf{p}_{ij}+\mathbf{z}_i=\mathbf{b}_i,\forall i \\\quad& \mathbf{p}_{ij}=A_{ij}\mathbf{x}_{ij},\forall i,j \\\quad& \mathbf{x}_{j}=\mathbf{x}_{ij},\forall i,j\end{aligned}
min s.t.j∑fj(xj)+i∑gi(zi)j∑pij+zi=bi,∀ipij=Aijxij,∀i,jxj=xij,∀i,j
ADMM 中可以交替更新
(
{
x
j
}
,
{
p
i
j
}
)
(\{\mathbf{x}_j\},\{\mathbf{p}_{ij}\})
({xj},{pij}) 和
(
{
x
i
j
}
,
{
z
i
}
)
(\{\mathbf{x}_{ij}\},\{\mathbf{z}_i\})
({xij},{zi})
最后给我的博客打个广告,欢迎光临
https://glooow1024.github.io/
https://glooow.gitee.io/
前面的一些博客链接如下
凸优化专栏
凸优化学习笔记 1:Convex Sets
凸优化学习笔记 2:超平面分离定理
凸优化学习笔记 3:广义不等式
凸优化学习笔记 4:Convex Function
凸优化学习笔记 5:保凸变换
凸优化学习笔记 6:共轭函数
凸优化学习笔记 7:拟凸函数 Quasiconvex Function
凸优化学习笔记 8:对数凸函数
凸优化学习笔记 9:广义凸函数
凸优化学习笔记 10:凸优化问题
凸优化学习笔记 11:对偶原理
凸优化学习笔记 12:KKT条件
凸优化学习笔记 13:KKT条件 & 互补性条件 & 强对偶性
凸优化学习笔记 14:SDP Representablity
最优化方法 15:梯度方法
最优化方法 16:次梯度
最优化方法 17:次梯度下降法
最优化方法 18:近似点算子 Proximal Mapping
最优化方法 19:近似梯度下降
最优化方法 20:对偶近似点梯度下降法
最优化方法 21:加速近似梯度下降方法
最优化方法 22:近似点算法 PPA
最优化方法 23:算子分裂法 & ADMM
最优化方法 24:ADMM