L1-L2范数最小化问题-迭代收缩算法

L1-L2范数最小化问题-迭代收缩算法

涉及L1-L2范数的机器学习问题非常常见,例如我们遇到的去噪、稀疏表示和压缩感知。一般而言,这类问题可以表示为:

\[\min_{\bf{z}} || {\bf{z}}||_0 \\ \text{subject to: } ~ \frac{1}{2}|| {\bf{x}} - {\bf{A}} {\bf{z}} ||_2^2 \leq \epsilon \]

由于\(L_0\)范数存在着NP难的问题,因此我们一般会用\(L_1\)范数来替代\(L_0\)范数,得到关于\(\bf{z}\)的如下问题:

\[f({\bf{z}}) = \frac{1}{2} || {\bf{x}} - {\bf{A}} {\bf{z}} ||_2^2 + \lambda || {\bf{z}}||_1 \]

研究表明,使用\(L_1\)来替代\(L_0\)范数也能够得到比较稀疏的\(\bf{z}\),因此上述问题能够替代\(L_0\)范数来解决我们上述所说的机器学习任务。

当矩阵\(\bf{A}\)为正交矩阵时

如果矩阵\({\bf{A}}\)为正交矩阵,即\({\bf{A}} {\bf{A}}^T = {\bf{I}}\),那么我们容易将上式表达成:

\[f({\bf{z}}) = \frac{1}{2}|| {\bf{x}} - {\bf{A}}{\bf{z}}||_2^2 + \lambda || {\bf{z}}||_1 = \frac{1}{2} || {\bf{A}}({\bf{A}}^T {\bf{x}} - {\bf{z}}) ||_2^2 + \lambda || {\bf{z}}||_1 \]

由于\(L_2\)范数具有旋转不变性,我们令\({\bf{z}}_0 = {\bf{A}}^T{\bf{x}}\)因此上式也可以写成:

\[f({\bf{z}}) = \frac{1}{2}|| {\bf{z}} - {\bf{z}}_0 ||_2^2 + \lambda || {\bf{z}}||_1\\ = \sum_{k=1}^m \left[ \frac{1}{2} ({\bf{z}}_0[k] - {\bf{z}}[k])^2 + \lambda | {\bf{z}}[k]| \right] \]

那么上述问题可以马上简化为求解一个含有绝对值的标量函数的问题:\(g(\tau) = 0.5 (\tau_0 - \tau )^2 + \lambda |\tau|\)。这个问题的解法也很简单直接,即:1. 若\(|\tau_0| \leq \lambda\),则\(\tau = 0\);2. 否则\(\tau = \tau_0 - \text{sign}(\tau_0) \lambda\)。总结起来,我们将这两步操作写成收缩算子\(\mathcal{S}_{\lambda} (\tau_0)\)的形式,即\(\tau_{opt} = \mathcal{S}_{\lambda}(\tau_0)\)

值得关注的是:

矩阵\({\bf{A}}\)为正交阵时\(L_1\)范数最小化的解法给了我们很大的启示,即我们是否通过一些手段将遇到的\(L_1\)范数最小化的问题转化为\(f({\bf{z}}) = \frac{1}{2}|| {\bf{z}} - {\bf{z}}_0 ||_2^2 + \lambda || {\bf{z}}||_1\)这种形式呢?

本文探讨的内容就围绕着这个问题逐步展开(即矩阵\({\bf{A}}\)非正交时,如何通过其他方法来转化为上述形式的解),给大家介绍各种基于收缩算子 \(\mathcal{S}_{\lambda} (\tau_0)\)\(L_1\)范数优化方法。

迭代收缩优化算法

所谓迭代收缩优化算法,可以分3点来理解,第一个是迭代,第二个是收缩,第三个是优化算法。从字面意思我们可以得到的信息是:这个优化算法在每次迭代中都使用了收缩算子。

在每一次迭代中,我们都构造新的函数\(Q(z)\)来近似原函数。此新函数\(Q(z)\) 应该满足:

  1. 函数收敛到最小值点时,即\(Q(z^*) = f(z^*)\)
  2. 新函数始终大于或者等于原函数,即\(Q(z) \geq f(z)\)

基于原问题\(f({\bf{z}}) = \frac{1}{2}|| {\bf{x}} - {\bf{Az}} ||_2^2 + \lambda || {\bf{z}} ||_1\),我们可以为原问题加入如下项(注意此时,我们没有给\({\bf{A}}\)添加正交约束):

\[\text{dist}({\bf{z}}, {\bf{z}_0}) = \frac{c}{2} || {\bf{z}} - {\bf{z}}_0 ||_2^2 - \frac{1}{2} || {\bf{Az}} - {\bf{Az}}_0 ||_2^2 \]

利用以上\(\text{dist}\)末项,并根据Majorization-Minimization优化框架,我们构造如下新函数:

\[Q({\bf{z}}, {\bf{z}_0}) = \frac{1}{2} || {\bf{x}} - {\bf{Az}} ||_2^2 + \lambda || {\bf{z}}||_1 + \frac{c}{2} || {\bf{z}} - {\bf{z}_0} ||_2^2 - \frac{1}{2} || {\bf{Az}} - {\bf{Az}}_0 ||_2^2 \]

为让\(Q(z)\)满足上述两个条件,我们必须保证超参数\(c\)为一个特定的常数。我们要保证:\(c {\bf{I}} - {\bf{A}}^T {\bf{A}} \geq 0\),因此,参数\(c\)应具备$c\geq || {\bf{A}}^T {\bf{A}}||2 = \lambda{\text{max}} ({\bf{A}}^T {\bf{A}}) \(,即取矩阵\){\bf{A}}^T {\bf{A}}$最大的特征值。我们展开上式可得:

\[Q({\bf{z}}, {\bf{z}}_0) = \text{const} - {\bf{z}}^T [ {\bf{A}}^T ({\bf{x}} - {\bf{Az}}_0) + c {\bf{z}}_0] + \lambda ||{\bf{z}}||_1 + \frac{c}{2} || {\bf{z}}||_2^2 \]

如果我们令\({\bf{v}}_0 = {\bf{A}}^T ({\bf{x}} - {\bf{Az}}_0) + c {\bf{z}}_0​\),上式可以简化为:

\[Q({\bf{z}}, {\bf{z}}_0) = \text{const} + \lambda || {\bf{z}}||_1 + \frac{c}{2} || {\bf{z}} - {\bf{v}}_0||_2^2 \]

对比上一节我们讨论的内容,发现两个目标函数是完全一样的形式,只是这里我们添加了超参数\(c\)\(\lambda\)。类似地,我们可以将上式收缩算子的形式,即\({\bf{z}}_{\text{opt}} = \mathcal{S}_{\lambda / c} ({\bf{v}}_0) = \mathcal{S}_{\lambda / c} ( {\bf{A}}^T ({\bf{x}} - {\bf{Az}}_0) + c {\bf{z}}_0)\).

提醒一下的是,我们这里的\({\bf{z}}_0\)一般设为第\(i\)次迭代得到的\({\bf{z}}_i\),然后通过\({\bf{z}_{i}}\)来求解\(i+1\)次迭代的\({\bf{z}}_{i+1}\)

迭代阈值收缩优化算法 (ISTA)

相信大家对ISTA(Iterative Shrinkage )

posted @ 2018-11-09 17:46  三亩竹林  阅读(6192)  评论(0编辑  收藏  举报