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

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

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

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

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