4.2 近端梯度法
Proximal gradient method
无约束的优化问题,代价函数可以分成两个部分:
其中
1. g 是凸的,可微的,并且domg=Rn ,
2. f 是闭的,凸的,可能不可微,proxh 容易计算。
例如问题:L1 norm regularize least-squares
近端梯度算法:
其中 tk>0 是步长,其是常数或者通过线性搜索确定。为了简洁,写成:
由近端操作的定义得到:
x+ 最小化 h(u) 加上 g(u) 在 x 处展开的简单的二次局部模型。
一些特例:
1.梯度方法(gradient method):
2.梯度投影方法(gradient projection method): h(x)=IC(x) ,也即是在集合 C 上最小化函数
3.迭代软阈值(iterative soft-thresholding): h(x)=||x||1 ,即最小化: g(x)+||x||1
并且:
推导:
h(x) 的近端投影:
proxth(u)=argminx(||x||1+12λ||x−u||22)
将 u 看作常数,求函数f(x)=||x||1+12λ||x−u||22 的最小值,考虑一维的情况,因为函数 ||x||1 并不是处处可微的,因此函数为:
f(x)={x+12λ||x−u||22,−x+12λ||x−u||22,x≥0x≤0
则导数:
f′(x)={1+1λ(x−u),−1+1λ(x−u),x>0x<0
f′(x)=0,则{x=u−λ,x=u+λ,x>0并且u−λ>0x<0并且u+λ<0
则数:
argminxf(x)=⎧⎩⎨u−λ,u+λ,0,u−λ>0u+λ<0−λ<u<λ
解释:
情况1,当
x>0
时,
u−λ>0
和当
x<0
时,
u+λ<0
,在这种情况下,两个抛物线的最低点落在了各自的 区间内。
情况2:左边的抛物线的最低点落在了右区间,即
x>0
的区域,右边的抛物线落在了左区间,这样的情况下,最低点是在
x=0
的区域。
投影梯度迭代
投影梯度迭代最小化公式:
g(x)+h(x)
上式可以写成:
上式的类似于常规的梯度下降法。
从次梯度和近端操作的关系:
得到:
当前仅当
x
最小化
很容易理解,我们将
Gt(x)=0
带入得到上式两边,得到:
线性搜索
line search
为了确定下面公式的步长:
我们从某个 t:=t^ 开始,重复 t:=βt ( 0<β<1) ,直到:
1. 每次线性搜索迭代过程,需要计算 prox 。
2. 上面收敛条件不等式的推导参考下面收敛分析。
3. 许多其他类型的搜索工作
近端梯度方法的收敛性分析
假定:
1.
▽g
是Lipschitz continuous,
2.最优值 f∗ 是有限的,并且在 x∗ 可达到的(无需唯一)。
结果:我们将给出 f(x(k)−f∗ 的收敛速度至少为 1/k 。
凸函数的仿射下界:
affine lower bound from convexity:
证明:带有拉格朗日余项的二阶泰勒展开:
g(y)=g(x)+▽g(x)T(y−x)+12(y−x)T▽2g(ξ)(y−x)
其中对于凸函数 ▽2g(ξ)≥0 ,因此证毕。
凸函数的二次上界:
证明:
g(y)=g(x)+▽g(x)Tv+(g(y)−g(x)−▽g(x)Tv)
其中
▽g(x)Tv=∫10▽g(x)Tvdt,其中 t 是与v 无关的变量。
limv→0g(y)−g(x)v=limv→0∫10▽g(x+tv)Tdt(.1)
g(y)−g(x)=∫10▽g(x+tv)Tvdt(.2)
由公式.2可以推出公式.1,但是公式.1推不出公式.2. 不参考文中是如何理解的。
换种方法推导上界1.,(参考:凸优化 中文版 pdf 454页)
因为▽g2(x)≤MI
带入到泰勒展开即可:
g(y)≤g(x)+▽g(x)T(y−x)+M2||y−x||22∀x,y
注意,参考文中也没有写错,应该采用下面的推导理解方法吧?
换种方法推导上界2.
如何函数 ▽g(x) 是Lipschitz 连续,其中常数量使用 L 表示,则:
||▽g(x)−▽g(y)||2≤L||x−y||2
对于一维的情况:
|▽g(x)−▽g(y)|≤L|x−y|,
则:
|▽g(x)−▽g(y)||x−y|≤L
两边取极限得到:
−▽2g(x)≤L 或者 ▽2g(x)≤L ,因为 ▽2g(x)≥0 ,所以范围为:
0≤▽2g(x)≤L
则将其带入到泰勒展开式得到:
g(y)≤g(x)+▽g(x)T(y−x)+L2||y−x||22∀x,y
consequences of Lipschiitz assumption
我们知道
x+=x−tGt(x)
,或者
y=x−tGt(x)
将其带入到凸函数的二次上界不等式中:
那么下面的回溯线性搜索不等式,在 0≤t≤1/L 条件下成立:
这很容易验证,只要在 0≤t≤1/L 区间内, t2≥t2L2 ,即函数 f(t)=t2−t2L2≥0 ,函数为开口向下的抛物线,与 t 轴的交点分别为
回溯直线搜索:
给定函数 f 在x∈domf 处的下降方向 −Gt(x) ,参数 α∈(0,0.5),β∈(0,1) 。
令 t:=t^ .
如果函数 g(x−tGt(x))>g(x)−t▽g(x)TGt(x)+t2||Gt(x)||22 令 t=βt
回溯直线搜索(或者回溯线性搜索),从
t=t^
开始,终止的时候满足:
很容易理解,只要
t
落在
假设算法迭代过程中达到
t=1/L+o
处,其中
o
是很小的正常数。那么需要在迭代一次才能落入到算法停止的范围内:
当 o→0+ 时, t:=βt=(β/L)+
所以此时算法终止时 t∈(β/L,1/L]
a global ineuqality
如果线性搜索不等式(3.2)满足,那么我们可以推导出下面的全局不等式,其描述的是关于
f(x−tGt(x))
的不等式:
证明:
f(x)=g(x)+h(x)
f(x−tGtx(x))=g(x−tGtx(x))+h(x−tGtx(x))
f(x−tGtx(x))−h(x−tGtx(x))≤g(x)−t▽g(x)TGt(x)+t2||Gt(x)||22
f(x−tGtx(x))≤g(x)−t▽g(x)TGt(x)+t2||Gt(x)||22+h(x−tGtx(x))
f(x−tGtx(x))≤g(x)−t▽g(x)TGt(x)+t2||Gt(x)||22+h(x−tGtx(x))
因为: g(z)≥g(x)+▽g(x)T(z−x) ,即函数 g(z) 在 x 处进行展开,则
g(x)≤g(z)+▽g(x)T(x−z)
函数: h(z)≥f(x−tGt(t))+∂f(x−tGt(t))T(z−x+tGt(t))
即:
f(x−tGt(t))≤h(z)+∂f(x−tGt(t))T(x−z−tGt(t))
以及(.0)公式,我们化简得到:
f(x−tGtx(x))≤g(z)+▽g(x)T(x−z)−t▽g(x)TGt(x)+t2||Gt(x)||22+h(z)+(Gt(x)−▽g(x))(x−z−tGt(x))
化简得到:
=g(z)+h(z)+Gt(x)T(x−z)−t2||Gt(x)||22
一次迭代过程
将 z=x 带入到算法3.3,得到:
即
这表明算法是一个下降方法。
将 z=x∗ 。带入到不等式(3.3):
因此:
||x−x∗||22≤||x+−x∗|| ,这说明经过一次迭代,到最优点集的距离缩短了。
Analysis for fixed step size
收敛性分析for固定步长
迭代步长的大小为
t=1/L
:
并且
x=x(i−1),x+=x(i)
则:
因为 f(x(i)) 是非递增的,
因此:经过 O(1/ϵ) 次迭代,算法达到: f(x(k))−f∗≤ϵ .
参考文献:
1、http://people.eecs.berkeley.edu/~elghaoui/Teaching/EE227A/lecture18.pdf 近端梯度法
http://download.csdn.net/detail/xuluhui123/9584831