迭代硬阈值算法IHT:Iterative Hard-Thresholding

迭代硬阈值算法IHT:Iterative Hard-Thresholding

前言

最近在学习压缩感知的重构算法,重构算法整体来看分为三大类:
①贪婪迭代类算法:即MP和OMP及其改进算法。通过迭代选择原子的方式,进行逼近重构。
②凸优化类算法:即BP(基追踪)和BPDN(基追踪降噪)。通过将原始的非凸问题转化为凸优化问题,然后通过线性规划的方式来求解。
③组合算法:还未涉猎,后续跟进~
当前已经将贪婪迭代类的算法都实验过了,最近开始学习凸优化方法。首先说一下凸优化方法:即将原始的重构问题转化为凸优化的问题然后用线性规划的方式求解。主要包括两种,即BP(Basis Pursuit)和BPDN(Basis Pursuit Denoising)。区别就在于测量数据是否包含噪声。BP算法仅适用于无噪声的情况。即下式所述:
迭代硬阈值算法IHT:Iterative Hard-Thresholding
目标是从压缩的测量数据Y中找到输入信号X在库Θ中的稀疏逼近s^。仅适用于观测数据没有噪声的情况。而BPDN则放宽了约束条件:
迭代硬阈值算法IHT:Iterative Hard-Thresholding
通常改写为无约束形式即:
迭代硬阈值算法IHT:Iterative Hard-Thresholding
而为了解决以上的优化问题,则衍生出很多算法,主要包括:单纯形法,内点法,FPC算法,GPSR算法和Bregman算法。这些算法里面涉及到的数学知识非常多,比较难以理解,路越走越宽。。。而且讲解详细的资料较少,需要啃原始文献。。。
而本文所述的迭代硬阈值算法,很多文献将其归位凸优化类算法,在看FPC时找到了这个,就先把它学完了。。。但其和之后介绍的迭代软阈值(IST)算法,严格的说,应属于阈值迭代类,不完全属于凸优化类。下面正式开始介绍~

硬阈值函数

若想吃透IHT算法,需要先了解硬阈值函数和Majorization-Minimization(MM)优化框架。首先说一下硬阈值函数。硬阈值函数的作用是用于求解如下优化问题:
迭代硬阈值算法IHT:Iterative Hard-Thresholding
其中
迭代硬阈值算法IHT:Iterative Hard-Thresholding
首先将目标函数进行展开如下:
迭代硬阈值算法IHT:Iterative Hard-Thresholding
其中|x|0表示:迭代硬阈值算法IHT:Iterative Hard-Thresholding

那么将其抽象出来,就是求解N个独立的形如下式的优化问题:
迭代硬阈值算法IHT:Iterative Hard-Thresholding

将|x|0展开:
迭代硬阈值算法IHT:Iterative Hard-Thresholding

当x不是0的时候,f(x)的最最小值在b处取得,为λ,在x=0的时候,最小值就是b2,那么现在的问题是比较λ和b2的大小,求解不等式b2>λ可得下式,此时最小值在x=0处取得;
迭代硬阈值算法IHT:Iterative Hard-Thresholding
求解不等式b2<λ可得下式,此时最小值在x=b处取得;
迭代硬阈值算法IHT:Iterative Hard-Thresholding
即:迭代硬阈值算法IHT:Iterative Hard-Thresholding
若将上式中的b视为变量,sqrt(λ)视为阈值,上式即为硬阈值(Hard Thresholding)的公式. 至此,我们可以得到优化问题迭代硬阈值算法IHT:Iterative Hard-Thresholding
解为:迭代硬阈值算法IHT:Iterative Hard-Thresholding

迭代硬阈值算法

下面来介绍迭代硬阈值算法,最初的提出是2008年在文献【Blumensath T,Davies M E.IterativeThresholding for Sparse Approximations[J]. Journal of Fourier Analysis& Applications,2008, 14(5):629-654.】中,这时的叫法还不是IHT而是M稀疏算法。顾名思义,其解决的问题如下:
迭代硬阈值算法IHT:Iterative Hard-Thresholding
迭代公式是:迭代硬阈值算法IHT:Iterative Hard-Thresholding
其中迭代硬阈值算法IHT:Iterative Hard-Thresholding
下面开始推导迭代公式。
首先原始优化式子中的目标函数优化较为困难,因此采用一个替代目标函数进行优化,替代目标函数需要满足MM框架的约束,即迭代硬阈值算法IHT:Iterative Hard-Thresholding
因此,论文中提出以下的替代目标函数:迭代硬阈值算法IHT:Iterative Hard-Thresholding
其中M下标表示M稀疏,S上标表示替代。这个替代目标函数在z=y时即原始目标函数。因此对其进行优化,将其展开迭代硬阈值算法IHT:Iterative Hard-Thresholding
其中后面的平方项与y无关,对于优化没有影响,可看做常量,即迭代硬阈值算法IHT:Iterative Hard-Thresholding
而上式的极值点即迭代硬阈值算法IHT:Iterative Hard-Thresholding
代入,即求得替代目标函数的极小值:迭代硬阈值算法IHT:Iterative Hard-Thresholding
此时考虑另外一个约束,||y||0≤M。即取yi*的最大的M项(因其前面有个负号)。即前述硬阈值函数,满足约束的替代目标函数的极小值应在迭代硬阈值算法IHT:Iterative Hard-Thresholding
取得。因此迭代公式即:
迭代硬阈值算法IHT:Iterative Hard-Thresholding

参考

【1】Blumensath T,Davies M E.IterativeThresholding for Sparse Approximations[J]. Journal of Fourier Analysis& Applications,2008, 14(5):629-654.
【2】硬阈值(Hard Thresholding)函数解读