近端梯度法(Proximal Gradient Method ,PG)
算法简介
近端梯度法是一种特殊的梯度下降方法,主要用于求解目标函数不可微的最优化问题。如果目标函数在某些点是不可微的,那么该点的梯度无法求解,传统的梯度下降法也就无法使用。PG算法的思想是,使用临近算子作为近似梯度,进行梯度下降。
概念定义
临近算子(proximity operator)
其中函数f可能是非光滑(即不可微)的。临近算子是对梯度的延伸,当函数f为光滑函数时,该临近算子就是梯度。
Morean信封(Morean envelope)
(这个玩意儿好像现在挺火,不过下文貌似没用到)
集合X的指示函数(indicator function of X)
其中X是一个凸集合。利用指示函数,我们可以将有约束问题写成无约束问题,如下:
当x不在X中,等式为无穷大,因此x肯定不是最优值。因此就等于限定了x在凸集合X中。
投影算子(projection operator)
当
解释一下这里投影的含义:一个点x在集合X上的投影,就是X上离x的欧几里得距离最近的点。如下图:
此外,关于投影算子还有以下结论:
也就是,2个在集合外的点x,y之间的距离,一定大于这两点在凸集合X上的投影的距离,如下图所示(
近端梯度(proximal gradient)
设
其中:
近端梯度法流程
目标函数:
迭代 r = 0,1,2,…
xr+1=proxαrf0[xr−αr∇f1(xr)]
-
当f0=0⇒梯度下降法 - 当
f1=0⇒近端点法
算法改进
最优性条件(Optimality Condition):
PG 迭代函数:
Bregman Distance
我们定义强凸可微函数
对于所有x,y,有
B(x,y)≥0 ,且 B(x,y)=0, iff x=y 。因此B(x,y)是一种近端测量。-
Bregman Distance 不满足对称性:
B(x,y)≠B(y,x) 。通过缩放我们可以假定B(x,y)≥12||x−y||2,∀x,y 如果
μ(x)=12||x||2 ,那么B(x,y)=12||x−y||2
近端梯度下降法流程
目标函数:
迭代 r = 0,1,2,…
xr+1=argminx∈X{f0(x)+<∇f1(xr),x−xr>+12αrB(x,xr)} 当
x∈Xand||x−x∗||≤Dandf(x)≤f(x0)andf(x0)−f(x∗)≤2LD2 时,迭代结束,跳出循环。