参考文献:D. Needell, J.A. Tropp, CoSaMP: Iterative signal recovery from incomplete and inaccurate samples, ACM Technical Report 2008-01, California Institute of Technology, Pasadena, 2008.
压缩采样匹配追踪(CompressiveSampling MP)与前面写的ROMP形式上想类似,但是没有正则项了,也是在一次迭代中选择多个索引项,而不是像OMP中一次只选择一个索引项。
文中对于2010年前现有的算法进行了大致的分类总结,分成了贪婪迭代类算法、凸优化松弛迭代型、组合型算法,此处对于这个组合型算法我认为他说的应该是类似于常规压缩分组寻找组测试的那种算法,因为后文中提到了FFT和HHS,点明了CoSaOMP是属于贪婪算法与组合算法的一种结合产物。
该算法的假设前提如下:
- 输入信号的稀疏度固定。
- 观测矩阵 ϕ \phi ϕ 满足有限等距常数RIC的 δ S ≤ 0.1 \delta_{S} ≤ 0.1 δS≤0.1。
- 输入信号 X X X是任意的。
- 输入噪声 e e e是任意的。
- 整个采样模型为 u = ϕ × x + e u=\phi\times x+e u=ϕ×x+e。
文中符号体系
输入部分: 观测矩阵
ϕ
\phi
ϕ,观测向量
u
u
u,后文以
y
y
y替代,稀疏度
s
s
s,后文
K
K
K替代。
输出部分: 重构估计值
a
a
a,后文以
θ
^
\widehat{\theta}
θ
替代。
过程符号部分: 索引序号集为
T
T
T,迭代计数变量为
k
k
k,残差为
r
r
r。
算法流程
文中将算法流程分为了5个步骤:
- 鉴定:有残差反映当前数据的误差,寻找支撑集。
- 合并:用新一次更新的结果与原本的结果合并在一起,覆盖式合并,除索引集以外的直接清零。此时的索引集大小为2倍的稀疏度,即2K。
- 估计:使用最小二乘法求解近似值,求出2K个近似解。
- 修剪:在2K个估计值中进行降序排列,之后取前K个做为本次迭代的输出解。
- 样本更新:用当前的输出解做 r = y − ϕ × θ ^ r=y-\phi\times\widehat{\theta} r=y−ϕ×θ 更新残差值。
我个人对于这个步骤的理解如下:
1、 初始化各参数,0次迭代残差 r 0 r_0 r0初始化为输入变量 y y y,迭代计数变量 k k k。
(---------------------称该步骤为算法初始化过程---------------------)
2、 计算优化问题 u 1 × N = ∣ ∣ r k − 1 , a j ∣ ∣ 2 u_{1\times N}=||r_{k-1},a_j||_2 u1×N=∣∣rk−1,aj∣∣2, j ∈ N j\in N j∈N,即将残差与传感矩阵的各列分别做内积,在 u u u中按降序排列,取前 2 K 2K 2K 个最大值。将其序号存于序列 T 2 k × 1 T_{2k\times1} T2k×1中,并挑选观测矩阵中的 2 K 2K 2K 个索引列 ϕ T \phi_{T} ϕT。
(---------------------称该步骤为算法鉴定与合并---------------------)
3、 计算 y ^ = ϕ T θ ^ \widehat y=\phi_{T} \widehat{\theta} y =ϕTθ 的 2 K 2K 2K 个最小二乘解,降序排列后取前 K K K个解,按照索引列的顺序排列,作为最终输出的解。
(---------------------称该步骤为算法估计与修剪---------------------)
4、 计算残差, r = y − y ^ r=y-\widehat y r=y−y ,看残差是否满足精度要求,如果满足的话就停止迭代,如果不满足就返回第2步继续迭代过程。
(---------------------称该步骤为算法迭代并输出过程---------------------)
算法总结
算法本身相较于ROMP效果好了很多,时间复杂度相较于OMP也有了一个乘数项的提高,文中给出其专注讨论的是算法迭代次数固定。
分别从一下几方面入手:
- 原始数据采样规则(随机采样或者是RIP采样)
- 重构所需样本数
- 能否在固定观测矩阵情况下恢复原信号(此处是否涉及确定性随机观测?)
- 算法稳定性(主要是突出了一下ROMP和CoSaMP算法的抗噪性比较好,对于一些噪声污染和可压缩不稀疏的信号来说优势较大)
- 算法运行时间(从时间复杂度角度说)
对比了OMP算法、ROMP算法、松弛迭代、傅里叶、HHS追踪等算法。
我个人从中感觉印象比较深刻的就是在这个算法描述过程中没有像传统的算法那样给出一些实际操作对比的图表,大量的证明使得这篇论文有点让人难以下手,其中涉及到求解估计值那里直接套用了伪逆的概念,不知道这样写是不是可以跳过讨论观测矩阵是否满足列空间各列互不相关的条件。虽然目前采用的方法可以保证互不相关。。。,总的效果相对于OMP算法是有所提升,具体就不放图了,参见链接: 博主jbb0523-压缩感知重构算法之压缩采样匹配追踪(CoSaMP)。感谢大佬的无私奉献。