压缩感知与稀疏模型——Augmented Lagrange Multipler(ALM)

这个博客将介绍ALM,介绍一个用来解决一个等式限制的问题的框架。

考虑下面的问题:
$$
\begin{array}{ll}{\text { minimize } } & {g(\boldsymbol{x})} \ {\text { subject to } } & {A x=y}\end{array}
$$
这里的$g:\mathbb R^n \rightarrow \mathbb R$是一个凸函数,$A \in \mathbb R^{m\times n},y \in \text{range}(A)$。在之前的Lasso问题中,我们加入了噪声,然后用惩罚函数代替约束来解决。实际上用同样的方法是可以解决类似的问题:
$$
\text{minimize }g(\boldsymbol{x})+\frac{\mu}{2}|\boldsymbol{y}-\boldsymbol{A} \boldsymbol{x}|_ {2}^{2}
$$
只要$\mu$足够大,意味着有更大的权重放在对于cost函数的优化上,这样就可以得到足够好的结果来满足约束。但是这个算法的问题在于,之前我们优化这类函数的算法,PG还是APG,他们收敛率很大程度上是受梯度$\nabla(\mu f)=\mu A^{*}(A x-y)$在点与点之间能变化速率影响的,这个速率由Lipschitz常数来衡量:
$$
L_ {\nabla \mu f}=\mu|\boldsymbol{A}|_ {2}^{2}
$$
因此就带来一个问题:$\mu$越大,那么上述问题就越难解决。但是想要解决等式限制问题,又必须要$\mu$足够大。这就意味着使用二次惩罚函数代替等式限制的方法是不够完美的。

Lagrange对偶可以将一个约束问题转化成无约束问题,而原目标函数的拉格朗日函数如下:
$$
\mathcal{L}(\boldsymbol{x}, \boldsymbol{\lambda}) \doteq g(\boldsymbol{x})+\langle\boldsymbol{\lambda}, \boldsymbol{A} \boldsymbol{x}-\boldsymbol{y}\rangle
$$
而原问题的最优解,是拉格朗日函数的鞍点(saddle point):
$$
\sup _ {\boldsymbol{\lambda} } \inf _ {\boldsymbol{x} } \mathcal{L}(\boldsymbol{x}, \boldsymbol{\lambda})=\text{sup inf}_ {\boldsymbol{\lambda} } g(\boldsymbol{x})+\langle\boldsymbol{\lambda}, \boldsymbol{A} \boldsymbol{x}-\boldsymbol{y}\rangle
$$
如果我们定义对偶函数如下:
$$
d(\boldsymbol{\lambda}) \doteq \inf _ {\boldsymbol{x} } g(\boldsymbol{x})+\langle\boldsymbol{\lambda}, \boldsymbol{A} \boldsymbol{x}-\boldsymbol{y}\rangle
$$
那么找到最优解可以通过下面的式子:
$$
\begin{aligned} \boldsymbol{x}_ {k+1} &=\arg \min _ {\boldsymbol{x} } \mathcal{L}\left(\boldsymbol{x}, \boldsymbol{\lambda}_ {k}\right) \ \boldsymbol{\lambda}_ {k+1} &=\boldsymbol{\lambda}_ {k}+t_ {k+1}\left(\boldsymbol{A} \boldsymbol{x}_ {k+1}-\boldsymbol{y}\right) \end{aligned}
$$
$\boldsymbol{A} \boldsymbol{x}_ {k+1}-\boldsymbol{y}$是对偶问题$d(\lambda)$的一个次梯度,这个算法就是实际上是在最大化对偶问题,因此也叫dual ascent。这个算法的缺点在于,在一些问题上,它会失败。下面是一个例子:
$$
\inf _ {\boldsymbol{x} }|\boldsymbol{x}|_ {1}+\langle\boldsymbol{\lambda}, \boldsymbol{A} \boldsymbol{x}-\boldsymbol{y}\rangle=\left{\begin{array}{ll}{-\infty} & {\left|\boldsymbol{A}^{} \boldsymbol{\lambda}\right|_ {\infty}>1} \ {-\langle\boldsymbol{\lambda}, \boldsymbol{y}\rangle} & {\left|\boldsymbol{A}^{} \boldsymbol{\lambda}\right|_ {\infty} \leq 1}\end{array}\right.
$$
可以看到的是传统的Lagrangian对于约束的惩罚是不够的,因此提出了Augmented Lagrangian:
$$
\mathcal{L}_ {\mu}(\boldsymbol{x}, \boldsymbol{\lambda}) \doteq g(\boldsymbol{x})+\langle\boldsymbol{\lambda}, \boldsymbol{A} \boldsymbol{x}-\boldsymbol{y}\rangle+\frac{\mu}{2}|\boldsymbol{A} \boldsymbol{x}-\boldsymbol{y}|_ {2}^{2}
$$
上面的函数可以看做是下面约束问题的Lagrangian:
$$
\begin{array}{ll}{\text { minimize } } & {g(\boldsymbol{x})+\frac{\mu}{2}|\boldsymbol{y}-\boldsymbol{A} \boldsymbol{x}|_ {2}^{2} } \ {\text { subject to } } & {\boldsymbol{A} \boldsymbol{x}=\boldsymbol{y} }\end{array}.
$$
由于惩罚项$|\boldsymbol{y}-\boldsymbol{A} \boldsymbol{x}|_ {2}^{2}$对于可用集合中的$x$来说都为0,因此这个问题的最佳值与原问题的最佳值是一样的。而且通过Augmented Lagrangian,让对偶问题仅仅需要对$g$的一些弱假设就可以被证明是一定收敛的。为了实现它,我们对步长大小进行一个特殊的选择:$t_k = \mu$,得到下面的迭代策略:
$$
\begin{aligned} \boldsymbol{x}_ {k+1} & \in \arg \min _ {\boldsymbol{x} } \mathcal{L}_ {\mu}\left(\boldsymbol{x}, \boldsymbol{\lambda}_ {k}\right) \ \boldsymbol{\lambda}_ {k+1} &=\boldsymbol{\lambda}_ {k}+\boldsymbol{\mu}\left(\boldsymbol{A} \boldsymbol{x}_ {k+1}-\boldsymbol{y}\right) \end{aligned}
$$
对于步骤$\boldsymbol{x}_ {k+1}\in \arg \min _ {\boldsymbol{x} }\mathcal{L}_ {\mu}\left(\boldsymbol{x}, \boldsymbol{\lambda}_ {k}\right)$,本身就是一个凸优化问题,可以使用PG算法来解决。注意,$t_ {k+1}=\mu$是非常重要的,它避免了出现失败的情况。因此对于ALM算法,可以总结如下:

  1. ALM for Basis Pursuit
  2. ALM for Principal Component Pursuit