Proximal Algorithms

Proximal Algorithms:近端算法,近似算法
proximal operator:近端操作,近似操作

1 简介

1.1定义

a proper convex function:
在数值分析和优化中,一个proper convex function 函数是这样的一个凸函数,其在扩展实轴上的取值满足:
至少存在一个x,使得f(x)<+
并且对于所有的xf(x)>
一个凸函数是适当的,也就是说,其在有效定义域内为非空的,并且不能取得.
a closed convex funciton:
一个函数f:RnR,如果对于每一个αR,其水平子集{xdomf|f(x)α}是一个闭集,那么我们称函数f是闭凸函数。

f:RnR{+}是一个适当的闭的凸函数(a closed proper convex function),这意味着,函数f的上镜图:

epif={(x,t)Rn×R|f(x)t}

是一个非空闭凸集。函数f有效域
f={xRn|f(x)<+},

也就是说,函数f在该点集合上为有限值。
函数f近端操作 proxf:RnRn定义为:
proxf(v)=argminx(f(x)+(1/2)||xv||22),(1.1)

其中||||2是欧式范数。公式右手边(minx内)函数是强凸函数,并且不是处处无限,因此for  vRn(甚至当 domfRn),该函数有唯一的最小值。
我们经常会碰到scaled function λf近端操作(其中λ>0),其可以表示为,
proxλf(v)=argminx(f(x)+(1/2λ)||xv||22).(1.2)

这也可以称作带有参数λ的函数f近端操作。(为了符号的简洁,我们写成1/2λ ,而不是(1/(2λ)).)

1.2 解释

图1.1描述了近端操作。细黑线是凸函数f的等值线。粗黑线表示其定义域的边界。在蓝色的点处计算proxf,则为相应的红色点。函数定义域中的三个点任然在定义域中,并且移动到函数的最小值,同时,另外两个点移动到定义域的边界并且朝向函数的最小值。参数λ控制近端操作将点映射到函数f的最小值的程度,λ值越大,则映射后的点更接近最小值,λ值越小,则向最小值移动的步长越小。
这里写图片描述
近端操作的定义表明,proxf(v)的点是最小化函数f和临近v的折中。因此,proxf(v)
有时称为v关于f的一个近端点(临近点,proximal point).在proxλf中,参数λ可以解释为这两个项之间的相对权重或者折中参数。
f是个示性函数(indicator function):

IC(x)={0,+,if xC if xC

其中C是闭的非空凸集,函数f的近端操作降为到集合C上的欧式投影,其表示为:
ΠC(v)=argminxC||xv||2(1.3)

因此,近端操作可以看作是广义投影。
函数f的近端操作也可以解释为函数f的一类梯度步(gradient step)。特别的,当λ很小,并且f可微时。,我们有:
proxλf(v)vλf(v)

这表明,近端操作和梯度方法之间存在着紧密的联系,同时暗示着近端操作在优化中很有用,也同样表明,λ扮演的角色类似于梯度方法中的步长。
最终,函数f的近端操作的固定点(fixed points)恰好是函数f的最小值。话句话说,当且仅当,x是函数f的最小值时,proxλf(x)=x成立。这表明,近端操作和固定点理论紧密相连,并且近端算法可以解释为通过找到适当操作(appropriate operators,可能为approximate operators)的固定点来求解最优化问题。

1.3 近端算法

近端算法就是指,在求解凸优化问题中,使用了目标项(object terms)的近端操作的算法。
近端算法的优点:
1、其可以应用于一般情况下,包括函数为非平滑的情况。
2、计算快。因为可以存在函数的简单的近端操作。
3、可以用于分布式优化,因此其可以用于解决大规模问题。
4、概念和数学上简单,对于一个特定的问题,易于理解,推导和实现。
实际上,许多近端算法可以解释为其他众所周知并且广泛使用的算法的推广,像投影梯度法。

2 近端操作的性质。

2.1 Separable sum(可分的和)

如何函数f可以分解为两个变量的表示形式,即f(x,y)=φ(x)+ψ(y),那么:

proxf(v,w)=(proxφ(v),proxψ(w))(2.1)

这样,计算一个可分离的函数的近端操作降为计算每一个可分离部分的近端操作,这两个操作可以独立的实现。
如果f完全可分离,意思就是f(x)=ni=1fi(xi),那么:
(proxf(v))i=proxfi(vi)

换句话说,在这种情况下,矢量函数上的近端操作降为在计算标量函数的近端操作,我们将在第5章看到,近端操作的可分的和属性是推导近端算法并行的关键。

2.2 基本操作

这一部分当需要时,可做参考。
Postcomposition:
如何函数f(x)=αφ(x)+bα>0,那么:

proxλf(v)=proxαλφ(v)

Procomposion:
如何f(x)=φ(αx+b),α0,那么:
proxλf(v)=1α(proxα2λφ(αv+b)b)

如何f(x)=φ(Qx),其中Q是正交的(QQT=QTQ=I),那么:
proxλf(v)=QTproxλφ(Qv)

Affine addtition.
如何f(x)=φ(x)+αTx+b,那么
proxλf(v)=proxλφ(vλα)

Regularization.
如何f(x)=φ(x)+(ρ/2)||xα||22,那么:
proxλf(v)=proxλ~φ((λ~/λ)v+(ρλ~)α)

其中λ~=λ/(1+λρ).
参考文献:
1、https://web.stanford.edu/~boyd/papers/pdf/prox_algs.pdf
Proximal Algorithms.Neal Parikh,Stephen Boyd.
2、https://en.wikipedia.org/wiki/Proper_convex_function
3、https://en.wikipedia.org/wiki/Closed_convex_function

posted on 2016-07-18 16:19  Raby_Draby  阅读(2532)  评论(1编辑  收藏  举报

导航