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

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

前言

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

硬阈值函数

若想吃透IHT算法,需要先了解硬阈值函数和Majorization-Minimization(MM)优化框架。首先说一下硬阈值函数。硬阈值函数的作用是用于求解如下优化问题:
优化
其中
XB
首先将目标函数进行展开如下:
展开
其中|x|0表示:在这里插入图片描述

那么将其抽象出来,就是求解N个独立的形如下式的优化问题:
在这里插入图片描述

将|x|0展开:
在这里插入图片描述

当x不是0的时候,f(x)的最最小值在b处取得,为λ,在x=0的时候,最小值就是b2,那么现在的问题是比较λ和b2的大小,求解不等式b2>λ可得下式,此时最小值在x=0处取得;
在这里插入图片描述
求解不等式b2<λ可得下式,此时最小值在x=b处取得;
在这里插入图片描述
即:在这里插入图片描述
若将上式中的b视为变量,sqrt(λ)视为阈值,上式即为硬阈值(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稀疏算法。顾名思义,其解决的问题如下:
在这里插入图片描述
迭代公式是:在这里插入图片描述
其中在这里插入图片描述
下面开始推导迭代公式。
首先原始优化式子中的目标函数优化较为困难,因此采用一个替代目标函数进行优化,替代目标函数需要满足MM框架的约束,即在这里插入图片描述
因此,论文中提出以下的替代目标函数:在这里插入图片描述
其中M下标表示M稀疏,S上标表示替代。这个替代目标函数在z=y时即原始目标函数。因此对其进行优化,将其展开在这里插入图片描述
其中后面的平方项与y无关,对于优化没有影响,可看做常量,即在这里插入图片描述
而上式的极值点即在这里插入图片描述
代入,即求得替代目标函数的极小值:在这里插入图片描述
此时考虑另外一个约束,||y||0≤M。即取yi*的最大的M项(因其前面有个负号)。即前述硬阈值函数,满足约束的替代目标函数的极小值应在在这里插入图片描述
取得。因此迭代公式即:
在这里插入图片描述

参考

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

  • 4
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Matlab中稀疏重构(Sparse Reconstruction)算法通常是指用于解决稀疏信号恢复或压缩感知问题的方法。这种算法假设信号中有大量的零元素或非常少的非零元素,即信号是稀疏表示的。在许多实际应用中,如图像处理、信号处理和机器学习等,我们可能无法直接获取完整的信号,但可以通过一些采样策略(比如随机矩阵的线性投影)得到部分数据。稀疏重构的目标就是从这些有限的数据重建出原始信号。 在Matlab中,常用的稀疏重构方法包括: 1. **基 pursuit**(BP):如匹配 Pursuit (MP) 或 Orthogonal Matching Pursuit (OMP),通过迭代选择最匹配的原子添加到信号表示中。 2. **LASSO**(Least Absolute Shrinkage and Selection Operator):利用拉格朗日正则化引入了绝对值惩罚项,寻找既稀疏又接近观测数据的最佳解。 3. **Elastic Net**:结合了LASSO和Ridge回归的优点,同时考虑了l1和l2范数,提供更好的稀疏性和模型性能。 4. **Basis Pursuit Denoising** (BPDN) 和 **Iterative Hard Thresholding** (IHT):适用于噪声较多的情况,通过迭代求解优化问题找到最接近的稀疏解决方案。 5. **Compressive Sensing Toolbox**: Matlab提供的官方工具箱提供了许多稀疏重构算法,如SPGL1, SPARSA等。 6. **Convex Optimization**:使用如CVX这样的工具包,可以解决像最小二乘加上l1惩罚的凸优化问题,这在实践中往往能得到更稳健的结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值