Bregman系列算法是近几年在图像处理和压缩感知领域异军突起的算法,能够更好地从现有数据中还原真实目标结果。我们可以构造优化模型 argminH(u)+J(u) 来还原真实目标数据,一般理解为 H(u) 是我们的目标最小化模型,常用的有 H(u)=1/2(Au−Y)2 ,其中u是目标,Y是观测结果,A是导致观测结果与真实结果不一致的原因;J(u)一般是一个约束项,自从压缩感知火了之后,一般J(u)是一个L1模型,即一个绝对值函数,等价于要找一组u,使得u的表示最简单,这里用Bregman距离来对L1进一步完善。
Bregman算法的核心之一是Bregman距离,给定泛函J,Bregman距离定义如下:
Dp(u,v)=J(u)−J(v)−<p,u−v> ≥0
符合上述条件的p,称为次梯度subgradient:
{p|Dp(u,v)=J(u)−J(v)−<p,u−v> ≥0} 其中<>表示内积。其中
D(u,u)=0 。
我们可以看出Bregman距离与泰勒展开式有密切的关系,反映了J(u)在v处的拟合误差。Bregman距离和KL距离是一类东西,不符合传统的距离定义,比如
D(u,v)≠D(v,u) ,不过
D(u,v) 显然的有
v→u,Dp(u,v)↓ ,因此Bregman距离可以反映一种远近关系。
先给出迭代算法,H(u)是优化模型:
Initialize: k=0,u0=0,p0=0 (1)
While uk not converge:
uk+1=argminuDpJ(u,uk)+H(u) (2)
pk+1=pk−∇H(uk+1)∈∂J(uk+1) (3)
k=k+1
end while
下面来证明这个算法是可行的:
下界
H(u)优化模型的定义是一个有下界、可微分的凸模型;Bregman距离有定义 Dp(u,v)≥0 。综上有 sup[J(u)+H(u)]=C,C>−inf ,因此Bregman优化模型可以达到一个明确的最小化值,即有下确界。
为什么迭代过程中 pk+1 是次梯度
然后是证明沿着 pk+1 也是最小化模型的次梯度。函数最小化时,梯度应当为0,有:
∇DpJ(u,uk)+∇H(u)=∇(J(u)−J(uk)−<p,u−uk>+H(u))=∇J(u)−p+∇H(u)⊃0→p′=p−∇H(u)⊂∇J(u) (4) 即
p′ 是新的次梯度,可令
pk+1=p′ 。
收敛性
由于Bregman距离是非负的,且未收敛时 uk+1≠uk ,所以 H(uk+1)<H(uk+1)+DpJ(uk+1,uk)=F(uk+1) ,而根据(2) F(uk+1) 最小。因此
F(uk+1)<F(uk)=H(uk)+DpJ(uk,uk)=H(uk)→H(uk+1)<H(uk) 即H在迭代算法中是单调下降的。
然后是证明J在迭代算法中单调下降。原始证明有个技巧:
Dpk(u,uk)+Dpk−1(uk,uk−1)−Dpk−1(uk,uk−1)=<pk−pk−1,uk−u> ,由(4)有
<pk−pk−1,uk−u>=∇H(uk)(uk−u) 这里变回了次梯度的定义,由Bregman距离非负性质得到
Dpk(u,uk)+Dpk−1(uk,uk−1)−Dpk−1(uk,uk−1)=∇H(uk)(uk−u)≤H(u)−H(uk)(5)
继续使用Bregman距离非负性质得到
Dpk(u,uk)−Dpk−1(uk,uk−1)<Dpk(u,uk)+Dpk−1(uk,uk−1)−Dpk−1(uk,uk−1)≤H(u)−H(uk) 当还没有收敛时,由(5)知道
H(uk+1)<H(uk) ,所以优化时应该有
H(uk)>H(u),H(u)−H(uk)<0 那么
Dpk(u,uk)−Dpk−1(uk,uk−1)<0→Dpk(u,uk)<Dpk−1(uk,uk−1)
综上,沿着
p 下降可以同时最小化H和D,即最小化目标模型可解。
为什么比L1模型好
设 J(u)=|u| ,即使用L1正则化。当迭代进行第一步时, p0,u0 为零向量,此时优化模型就是最初的L1优化模型: argmin[J(u)+H(u)]=argmin[|u|+H(u)] 。之后的迭代过程会在此基础上继续逼近真实答案,所以Bregman在考虑L1稀疏特征的基础上进行了进一步优化。
因此,通过Bregman距离的定义,可以找出一套次梯度,使得最小化模型可以更好地收敛到下确界。