Proximal Algorithms

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

1 简介

1.1定义

a proper convex function:
在数值分析和优化中,一个proper convex function 函数是这样的一个凸函数,其在扩展实轴上的取值满足:
至少存在一个 x ,使得 f(x)<+
并且对于所有的 x f(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 的最小值的程度, λ 值越大,则映射后的点更接近最小值, λ 值越小,则向最小值移动的步长越小。
Proximal Algorithms_第1张图片
近端操作的定义表明, 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

你可能感兴趣的:(Proximal Algorithms)