近端算子及其FBS优化问题

1. 近端算子

给定以下的优化问题:
minimize ⁡ h ( x ) = f ( x ) + g ( x ) ( t 01 ) \operatorname{minimize} h(x)=f(x)+g(x)(t01) minimizeh(x)=f(x)+g(x)t01
其中, x ∈ R N x\in R^{N} xRN f f f是凸函数并且可微, g g g是任意的凸函数(不必保证光滑)。在很多情形下,函数 g g g 既不可微,也不是有限值,在这种情况下,上面的式子不能用梯度下降的方法进行求解。

然而在实际的计算中,对于很大一类 g g g都可以高效地计算其近端算子:
prox ⁡ g ( z , τ ) = arg ⁡ min ⁡ x τ g ( x ) + 1 2 ∥ x − z ∥ 2            ( t 02 ) \operatorname{prox}_{g}(z, \tau)=\underset{x}{\arg \min } \tau g(x)+\frac{1}{2}\|x-z\|^{2}\;\;\;\;\;(t02) proxg(z,τ)=xargminτg(x)+21xz2(t02)
近端算子在不偏离起始点 z z z太远的情况下找到一个近似的 g g g的极小值点, τ \tau τ为backward(或implicit)梯度下降步长。如果 ( t 02 ) (t02) (t02)所示的关于 g g g的近端算子可以很容易地计算出来,那么可以使用Forward-Backward Splitting(FBS)方法(也称为近端梯度法)有效地解决 ( t 01 ) (t01) (t01)。简而言之,FBS可以处理不可微目标函数和凸约束,同时保持梯度下降简单高效。由于FBS的广泛应用及其在稀疏编码和回归上的实用性,许多FBS的变体已经被开发出来用以提高性能和易用性。在最初的FBS的形式下,FBS要求用户选择大量的收敛参数,这些参数对算法的性能和可靠性都有很大的影响,这些参数包括stepsizes, stopping condition parameters, acceleration schemes, stability conditions, and initialization。不过在经过正确的修改后,FBS可以在没有用户监督的情况下执行。

本文从实际应用的角度介绍并回顾了FBS。尽管这不是关于FBS的第一篇评论文章,但它与现有的评论文章的不同之处在于它侧重于实际问题的解决。对于FBS及其出色的理论综述,请参考Proximal Splitting Methods in Signal Processing∗

1.1 大纲

FBS是一个two-stage的方法,该方法分别处理 ( t 01 ) (t01) (t01)中的每一项,具体步骤如下所示:
FBS算法流程
让我们详细研究算法的每个步骤。第(3)行在 f f f上执行简单的forward
gradient descent
步骤。此步骤从迭代 x k x^k xk开始,然后沿 f f f的(负)梯度方向移动,该方向是最速下降的方向,这一步得到的其实是 f ( x ) f(x) f(x)的较小值点。标量 τ k \tau^k τk是步长,它控制第 k k k次迭代过程中沿梯度方向移动的距离。

第(4)行被称作proximal step,这一步其实是找了一个距离 f ( x ) f(x) f(x)的较小值与 g ( x ) g(x) g(x)的最小值都很近的点, 利用离 f f f g g g的最小值点都很近的点作为当前的最小值点, 这一步也被称为backward gradient descent step

为了求解上面的近端算子对应的优化问题, 我们利用了次梯度下的最优性条件如下:
0 = τ G + ( x ∗ − z )          ( t 03 ) 0=\tau G+(x^*-z)\;\;\;\;(t03) 0=τG+(xz)(t03)
上面的式子就是对(t02)求关于 x x x偏导的结果,其中 G ∈ ∂ g ( x ∗ ) G\in \partial g(x^*) Gg(x)表示 g g g的次梯度,表示的是一个梯度的集合,如果 g g g可微时, G = ▽ g ( x ∗ ) G=\triangledown g(x^*) G=g(x)。上面的等式可以改写为:
x ⋆ = p r o x g ( z , τ ) = z − τ G          ( t 04 ) x^{\star}=prox_g(z, \tau)=z-\tau G\;\;\;\;(t04) x=proxg(z,τ)=zτG(t04)
上式说明一个问题: x ⋆ x^{\star} x是将 z z z g g g的次梯度负方向更新得到的。

因此,近端算子可以被看作是一次梯度下降。从另一个角度来看, 前面算法1中的 x ^ k + 1 \hat{x}^{k+1} x^k+1等价于这里的 z z z, 前面算法1中的 x k + 1 x^{k+1} xk+1表示这里的 x ⋆ x^{\star} x. 将这两个变量替换可得:

x k + 1 = x ^ k + 1 − τ G x^{k+1}=\hat{x}^{k+1}-\tau G xk+1=x^k+1τG

由于次梯度 G G G是在最终点 x ⋆ ( x k + 1 ) x^{\star}(x^{k+1}) x(xk+1)而不是起始点 z ( x ^ k + 1 ) z(\hat{x}^{k+1}) z(x^k+1)处进行评估的,因此这一步被称作是backward gradient descent(从后往前)。

等式(t03)等价于次梯度的最优性条件: 0 ∈ τ ∂ g ( x ⋆ ) + ( x ⋆ − z ) 0\in \tau\partial g(x^{\star})+(x^{\star}-z) 0τg(x)+(xz),移项,可得:
z ∈ τ ∂ g ( x ⋆ ) + x ⋆ = ( τ ∂ g + I ) x ⋆ z \in \tau \partial g\left(x^{\star}\right)+x^{\star}=(\tau \partial g+I) x^{\star} zτg(x)+x=(τg+I)x
基于此,将上面的式子左乘 ( τ ∂ g + I ) − 1 (\tau\partial g+I)^{-1} (τg+I)1,可以得到:
x ⋆ = ( τ ∂ g + I ) − 1 z = J τ ∂ g z x^{\star}=(\tau \partial g+I)^{-1} z=J_{\tau \partial g} z x=(τg+I)1z=Jτgz
其中 J τ ∂ g = ( τ k ∂ g + I ) − 1 J_{\tau \partial g}=(\tau^k\partial g+I)^{-1} Jτg=(τkg+I)1 τ ∂ g \tau\partial g τg的解析运算符。

该解析式只是简单的近似表述,换言之,在近端算子法应用于 z z z时,执行的是在 z z z点处的梯度下降。

算法1在 f f fforward gradient descent g g gbackward gradient descent之间变换,对 g g g使用反向传播的步长在很多方面都是有利的:首先, g g g的(次)梯度很难求解得到,尤其是(次)梯度可能会有很复杂的形式或者不唯一的时候。相反,算法1中的第4行总存在一个唯一定义好的解并且可以通过求解简单的闭合最小化问题得到。第二点就是反向步骤对于FBS的收敛有重要的作用。证明如下:

1.2 FBS的收敛性证明

在FBS第二步使用的反向下降需要保证收敛。为了说明其收敛性令 x ⋆ x^{\star} x表示FBS迭代中的固定点,该点满足:
x ⋆ = prox ⁡ g ( x ⋆ − τ k ∇ f ( x ⋆ ) , τ k ) = x ⋆ − τ k ∇ f ( x ⋆ ) − τ k G ( x ⋆ ) x^{\star}=\operatorname{prox}_{g}\left(x^{\star}-\tau^{k} \nabla f\left(x^{\star}\right), \tau^{k}\right)=x^{\star}-\tau^{k} \nabla f\left(x^{\star}\right)-\tau^{k} G\left(x^{\star}\right) x=proxg(xτkf(x),τk)=xτkf(x)τkG(x)
对于某些 G ( x ⋆ ) ∈ ∂ g ( x ⋆ ) G(x^{\star})\in\partial g(x^{\star}) G(x)g(x)成立。上式可以简化为:
0 = ∇ f ( x ⋆ ) + G ( x ⋆ ) 0=\nabla f(x^{\star})+G(x^{\star}) 0=f(x)+G(x)
这也是等式(t01)的最优性条件。这个简单的论证表明,当且仅当向量是(t01)的最优时,它是FBS迭代的不动点。这个等式有一个简单的解释:当FBS作用于最优点 x ⋆ x^{\star} x时,该点通过forward descent step移动到一个新的位置,backward descent step则将当前点向开始的位置移动, 从而让新点的位置不但距离 g g g的最小值点很近, 同时也距离 f f f的最小值点特别近.

前向和后向优化的迭代都是一致的,因为它们都依赖于 x ⋆ x^{\star} x处的梯度.

这个固定点的性质并不足以保证收敛,当步长序列 { τ k } \{\tau^k\} { τk}满足特定的稳定边界时FBS才会收敛。FBS的一个重要性质是这个稳定性条件不依赖于 g g g,而是依赖于 f f f的曲率。当步长为常数 τ k = τ \tau^k=\tau τk=τ是,FBS收敛的条件为:
τ < 2 L ( ∇ f ) \tau\lt\frac{2}{L(\nabla f)} τ<L(f)2

对于步长随着迭代次数的变化而变化的情形,如果该步长满足 0 < τ k < u < 2 / L ( ∇ f ) 0\lt \tau^k\lt u\lt 2/L(\nabla f) 0<τk<u<2/L(f),其中 u u u表示上边界, l l l表示下边界. 这里的利普西茨常数在特殊情况下是可以取到的, 当函数 f = 1 2 ∥ A x − b ∥ 2 f=\frac{1}{2}\|Ax-b\|^2 f=21Axb2, 其中 A A A为矩阵, b b b为向量时,此时, 对应的利普西茨常数通常选为 A T A A^TA ATA的谱半径.

在实践中,人们很难得到利普西茨常数 L ( ∇ f ) L(\nabla f) L(f), 而步长的选择取决于要解决的问题以及每次迭代中的误差。

因此,在实践中最好可以可以利用回溯规则自适应地选择步长序列 τ k \tau^k τk,而不是显式的步长约束来强制收敛。

1.3 FBS的应用

A. 凸约束以及投影梯度

投影梯度(PG)方法是FBS在处理凸约束时的特例。 对于凸集 C \mathcal{C} C中的元素,假设我们要求解:
minimize ⁡ f ( x ) ,  subject to      x ∈ C          ( t 05 ) \operatorname{minimize} f(x), \text{ subject to} \;\;x\in \mathcal{C}\;\;\;\;(t05) minimizef(x), subject toxC(t05)
我们可以用集合 C \mathcal{C} C的(非光滑)特征函数 X C ( X ) \mathcal{X}_{\mathcal{C}}(X) XC(X)重写(t01),该指示函数和上面的 P Ω P_{\Omega} PΩ类似,对于 x ∈ C x\in \mathcal{C} xC时, x C ( X ) = 0 \mathcal{x}_{\mathcal{C}}(X)=0 xC(X)=0,当 x ∉ C x\notin \mathcal{C} x/C中时, X C ( X ) = ∞ \mathcal{X}_{\mathcal{C}}(X)=\infty XC(X)=。 因此,这个问题
minimize ⁡ f ( x ) + X C ( x ) \operatorname{minimize}f(x)+\mathcal{X}_{\mathcal{C}}(x) minimizef(x)+XC(x)
等价于公式(t01),这个其实和内点法非常像, 即将约束条件以罚函数的形式用拉格朗日乘子法带入到目标函数中, 然后用一般的凸优化方法就可以优化这个问题.

即对应于 g ( x ) = X C ( x ) g(x)=\mathcal{X}_{\mathcal{C}}(x) g(x)=XC(x)的情形。为应用FBS算法,我们必须计算 X C \mathcal{X}_{\mathcal{C}} XC的近端算子(proximal operator):
prox X C ( z , τ ) = arg  min ⁡ x ∈ X 1 2 ∥ x − z ∥ 2            ( t 06 ) \text{prox}_{\mathcal{X}_{\mathcal{C}}}(z,\tau)=\underset{x\in \mathcal{X}}{\operatorname{arg\;min}}\frac{1}{2}\|x-z\|^2\;\;\;\;\;(t06) proxXC(z,τ)=xXargmin21xz2(t06)
上式(t06)的解是集合 C \mathcal{C} C中靠近 z z z的元素,该方法简化了 z z z到集合 C \mathcal{C} C的正交映射。其实 X C \mathcal{X}_{\mathcal{C}} XC本质上等价于上面式子中的 g g g, 即一个凸的, 但是不保证光滑的函数.

B. Lasso回归

Lasso是最早的从高维数据中进行稀疏回归的算法工具之一,可以通过式(t05)简单地表示出来。投影梯度法(PG)的一个重要的应用就是Lasso回归问题,该问题是一个重要的稀疏回归工具,其定义如下式(t07)所示:
minimize ⁡ 1 2 ∥ A x − b ∥ 2  subject to  ∥ x ∥ 1 ≤ λ \operatorname{minimize} \frac{1}{2}\|A x-b\|^{2} \text { subject to }\|x\|_{1} \leq \lambda minimize21Axb2 subject to x1λ
此时,凸集 C = { x : ∥ x ∥ 1 ≤ 1 } \mathcal{C}=\{x:\|x\|_1\le 1\} C={ x:x11}是一个简化的 l 1 \mathcal{l}_1 l1范数球,其对应的近端步长,即到1范数球的映射,可以在多项式时间内被计算得到。在SPGL1的求解器中,FBS已经被应用于Lasso稀疏问题的求解。

C. L1范数惩罚-回归(L1-Norm Penalized (Logistic) Regression)

L1范数作为惩罚项的最小均方问题是FBS最常见的应用:
minimize ⁡ μ ∥ x ∥ 1 + 1 2 ∥ A x − b ∥ 2            ( t 07 ) \operatorname{minimize} \quad \mu\|x\|_{1}+\frac{1}{2}\|A x-b\|^{2}\;\;\;\;\;(t07) minimizeμx1+21Axb2(t07)
在这个公式中,第一项 μ ∥ x ∥ 1 \mu\|x\|_1 μx1对应于前面的那个不能保证光滑性的凸函数 g ( x ) g(x) g(x), 第二项 1 2 ∥ A x − b ∥ 2 \frac{1}{2}\|Ax-b\|^2 21Axb2表示前面那个光滑函数 f ( x ) f(x) f(x).
在统计学中,(t07)被用来在欠定最小二乘问题中寻找稀疏解。问题(t07)在压缩感知中被称为basis pursuit denoising (BDPN)

矩阵的一范数即列和范数,即所有矩阵列向量绝对值之和的最大值.

假设向量 b ∈ { 0 , 1 } M b\in \{0,1\}^M b{ 0,1}M包含二元随机伯努利试验结果的二进制实例**(感觉这个形式更像是二分类中的标签)**。第 i i i个条目的成功概率是 P ( b i = 1 ∣ x ) = e A i x / ( 1 + e A i x ) P(b_i=1|x)=e^{A_i x}/(1+e^{A_ix}) P(bi=1x)=eAix/(1+eAix),其中, A i A_i Ai表示 A A A的第 i i i行。一个就是求解所谓的稀疏逻辑回归问题:
minimize ⁡ μ ∥ x ∥ 1 + l o g i t ( A x , b )                ( t 08 ) \operatorname{minimize}\mu\|x\|_1+logit(Ax,b)\;\;\;\;\;\;\;(t08) minimizeμx1+logit(Ax,b)(t08)
带有逻辑罚函数定义如下:
logit ( z , b ) = ∑ i = 1 M l o g ( e z i + 1 ) − b i z i \text{logit}(z,b)=\sum^{M}_{i=1}log(e^{z_i}+1)-b_iz_i logit(z,b)=i=1Mlog(ezi+1)bizi
当标签 b i b_i bi和预测 z i z_i zi异号时, 上面的罚函数中 b i z i = 0 b_iz_i=0 bizi=0. 而上面函数的目的就是最小化, 总值减去一个0, 比起减去一个1, 肯定是减去了1以后得到的最优值是最小的. 因此该函数对于预测错误的情形施加了惩罚(-0), 而对预测正确的情形进行了奖励(-1).

问题(t07)和(t08)可以利用FBS求解得到,类似于前面提到的, 这里和前面的等价关系为 g ( x ) = ∥ x ∥ 1 g(x)=\|x\|_1 g(x)=x1 g g g的近端算子由shrinkage operator s h r i n k ( z , μ τ ) shrink(z, \mu\tau) shrink(z,μτ),其第 i i i个元素由下式计算得到:
s h r i n k ( z , μ τ ) i = s h r i n k ( z i , μ τ ) = s i g n ( z i ) m a x { ∣ z i ∣ − μ τ , 0 } shrink(z,\mu\tau)_i=shrink(z_i, \mu\tau)=sign(z_i)max\{|z_i|-\mu\tau,0\} shrink(z,μτ)i=shrink(zi,μτ)=sign(zi)max{ z

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值