压缩感知理论及其算法研究报告
摘 要:随着信息技术的发展,人们对信息的巨量需求以及硬件的发展缓慢造成了信号采样,传输和存储的巨大压力。如何解决在现有的硬件基础上传输大量的信息成为热点研究的内容。近年来压缩感知的出现为缓解这些压力提供了解决的办法。本文综述了压缩感知的理论框架及关键的技术问题,并着重介绍了压缩感知稀疏重构中的主流贪婪算法,通过算法实验分析了各种算法的重构性能。
关键词:压缩感知 贪婪算法 稀疏重构
1.引言
传统的信号采样定律-那奎斯特采样定律定理:为了不失真地恢复模拟信号,采样频率应该不小于模拟信号频谱中最高频率的2倍[1]。这样对于系统处理信息的硬件需求提出了很高的要求,同时在实际应用当中为了节约存储空间和降低传输成本,需要对采集的数据进行压缩处理,这样会造成大量采集的数据浪费。因而压缩感知技术应运而生,打破了传统的信号采样定理,从不同的角度解决了信号采样的问题。使得在保证信息不损失的情况下,用远低于奈奎斯特采样定理要求的速率采样信号。压缩感知理论指出只要信号是可压缩的或在某个变换域是稀疏的,那么就可以用一个与变换基不相关的观测矩阵将变换所得高维信号投影到一个低维空间上,然后通过求解一个优化问题就可以从这些少量的投影中以高概率重构出原信号[2]。在该理论框架下,采样速率不决定于信号的带宽,而决定于信息在信号中的结构和内容。压缩感知理论使得采样和计算的成本大大降低。
当前主流的压缩感知重构算法主要包括三类:凸优化方法,贪婪算法和基于贝叶斯框架提出的算法[3]。本文主要以压缩感知重构算法为主线,介绍了主流的贪婪追踪类算法包括正交匹配追踪(OMP)算法,正则化正交匹配追踪(ROMP)算法,分段正交匹配追踪(STOMP)算法,稀疏度自适应匹配追踪(SAMP)算法,并且对这些算法的优缺点进行了比较通过仿真实验分析了各种算法的重构性能。
2.压缩感知基本理论
压缩感知理论主要包括信号的稀疏表示,编码测量和信号重构算法三个方面。信号的稀疏表示是压缩感知的先验条件,信号的稀疏表示是将信号投影到正交变换基时,绝大多数的变换稀疏的绝对值很小,所得到的变换向量是稀疏的或者是近似稀疏的。任意的N维信号都可以通过某个稀疏矩阵线性表示。例如x为N维的信号,Ψ是x对应的稀疏矩阵,则x可以表示为:x = ∑_(i=1)^N▒〖θ_i ψ_i 〗其中,Ψ是N列ψ_i组成的矩阵,θ_i是x在ψ_i下的投影系数,θ是投影系数向量,θ=Ψ^Tx。稀疏矩阵一般根据信号本身特点灵活选取,常见的是离散余弦变换基,快速傅里叶变换基,离散小波变换基。在编码测量中首先选定一个平稳的,与稀疏基Ψ不相关的M × N 维的观测矩阵Ф,对θ进行观测得到观测集合Y = Фx = ФΨθ。令A=ФΨ为M × N 的矩阵,称为感知矩阵。Y可以看作是稀疏信号θ关于测量矩阵A的测量值,上式整体可以表示为图(1)。
在压缩感知的整个过程中,测量矩阵的设计是一个关键步骤。测量矩阵性质的好坏,关系到能否达到压缩的目的,同时又直接关系到信号能否被精确重构。设计一个合适的观测矩阵应该既能达到压缩采样的目的,同时又可以保证信号可以无失真的重构。有限等距性质[4]在理论上较好的解决了这个问题,只要感知矩阵A能够满足RIP条件,那么信号可以由少量的测量值经过重构算法精确的恢复出来,也就是说,理论上我们可以设计一个测量矩阵使得感知矩阵A满足RIP规则,这样既可以达到压缩采样的目的,又能保证信号无失真的恢复出来。RIP规则的数学表达描述为:设A=ФΨ为M × N 的矩阵,假设一个常数δ_k,使得对于任意向量s和所有的矩阵A_k,满足以下关系4
(1-δ_k)〖||s||〗_2≤〖||A_k s||〗_2≤(1+δ_k)〖||s||〗2 (2-1)
其中A_k是A子矩阵,大小为M×K,有限等距常数为δ_k∈(0,1)。
如果A满足约束等距原则,保证了信号恢复的唯一性。实际上要直接验证矩阵是否满足RIP条件是一件很困难的事情。在实际应用中,我们可以用RIP准则的一种等价情况,即非相干性来指导测量矩阵的设计。非相干性指测量矩阵中的行向量不能被稀疏矩阵线性表出同理稀疏矩阵中的列向量也不能被测量矩阵中的任意行向量线性表出。相干性的度量由相干度[5]如图(2-2)所示,关系数旳取值范围为U∈(1,√N)
U(Ф,Ψ)=√Nmax{|Ф_k,Ψ_J|} (2-2)
Donoho等人在文献[6]中指出服从高斯分布的随机矩阵可以高概率满足不相关性,对于一个大小为M×N的随机高斯矩阵Ф,Ф中每个值满足均值为0,方差为1/M的高斯分布,即Ф(i,j) ~ N(0,1/M)。可以证明当M>cKlog(N/K)时,A = ФΨ在很大概率下能满足RIP条件。而且随机高斯矩阵与大多数固定正交基构成的矩阵不相关,因此随机高斯测量矩阵满足理论上的最优性。目前大多数情况下都采用随机高斯矩阵作为压缩感知的测量矩阵,本文实验所用到的观测矩阵也是随机高斯矩阵。当选取好观测矩阵,压缩感知问题转化为求解(2-1)式的最优l_0范数问题
min〖||θ||〗_0 s.t. Aθ = Y (2-3)
如果得到x的稀疏表示θ,可以进一步由变换基Ψ通过下式(2-2)重构原始信号
x = Ψθ (2-4)
由于矩阵A的维度为M × N(M << N),所以方程(1)有无穷多解,通过贪婪算法可以逐步逼近最优解,直到求出原始信号。最早提出的是匹配追踪算法(MP),MP算法的基本思想是在每一次迭代过程中。从感知矩阵中选择与信号最匹配的原子来进行稀疏逼近求出余量,在稀疏度已知的情况下继续迭代选出与余量最匹配的原子。最匹配是指当前余量与原子的内积最大。经过数次迭代,该信号便可由这些原子线性表示,但是当前的余量仅与当前的原子正交而不是与已选定的所有的原子正交使,得每次迭代的结果可能是次最优的往往需要迭代多次。下面介绍四种主流的贪婪类重构算法并分析它们的优缺点进行比较。
3.正交匹配追踪类算法
3.1正交匹配追踪(OMP)算法
OMP算法作为MP算法的延申,仍然沿用了MP算法中原子选择的标准,不同的是OMP算法利用Gram-Schmidt正交化对已选定的原子进行正交化处理,再将信号在这些正交原子构成的张量空间投影,得到信号在选定原子上的分量和余量,然后用相同的方法迭代分解余量。通过每次对所选原子的正交化处理保证了迭代的最优性,从而减少了迭代的次数[7]。
OMP的具体步骤如下:
(1)令初始余量r_0 = Y,稀疏度为K,索引值集合J为空集,支撑集合Λ为空集;
(2)计算相关系数u(余量与原子的内积),并将u中最大值对应的索引值存入J;
(3)更新支撑集合 ,将更新索引对应的原子存入Λ;
(4)利用最小二乘法得到重建信号,同时对余量进行跟新;
(5)若迭代次数小于K,r = r_new,n = n+1,转到第二步继续迭代;否则,停止迭代。
为了说明OMP算法的重建性能,利用MATLAB R2016a作为平台,分两次实验验证。第一次实验,假定信号是稀疏的并且稀疏度为10,定常信号256 × 1的列向量中随机选取10个随机数随机排列到定长信号中。观测矩阵为128×256高斯随机矩阵。初始信号和恢复信号之间的误差用二者相减的二范数表示。实验结果如图(2)所示,实验误差为o(10e-15 )
第二次实验,测试对象为256×256lena图像。观测矩阵采用随机高斯矩阵,M和N表示观测矩阵的行数和列数,M/N表示压缩比0.5,实验结果如图(3),PSRN值为26.5536。
OMP算法虽然保证了每次迭代的最优性,减少了迭代的次数。但是,它每次迭代中仅选取一个原子来跟新原子的集合,这样必然会付出巨大的重建时间代价。OMP算法首次把最小二乘法引入压缩感知重建中,用正交化的思想来计算重建信号使得结果更加准确,这是压缩感知重建算法取得重大研究进展的一个标志[8]。
3.2正则化正交匹配追踪(ROMP)算法
ROMP算法首先根据相关原则进行原子的一次筛选,通过求余量r与测量矩阵Ф中各个原子之间的内积的绝对值,来计算相关系数u,并按照此方法筛选出的K个原子的索引值存到候选集J中以便进行原子的二次筛选。
ROMP算法采用正则化过程进行原子的二次筛选,将J中索引值对应的原子的相关系数分成若干,要求分组的原子在各自所在子集内的原子同误差向量的内积的最大值与最小值的比值在两倍以内[6]。数学表达式为(3-1)
|u(i)| ≤ 2|u(j)|, i,j ∈J (3-1)
然后选择能量最大的一组相关系数对应的原子索引值存入J_0中,该正则化过程可以使得ROMP算法最多经过K次迭代便可得到一个原子数|Λ|小于2K的支撑集Ф_Λ用于重建信号,对于没有选入支撑集的原子,正则化过程则能保证它们的能量一定远小于被选原子的能量,是一种简单有效的原子筛选方法。
ROMP的步骤:
(1)初始化余量r_0 = Y,估计信号稀疏度为K,迭代次数n = 1,索引值Λ为空集,J为空集;
(2)计算相关系数u,并从u中寻找K个最大值对应的索引值存入J中;
(3)对J中索引值对应原子的相关系数进行正则化,并将正则化的结果存入J_0;
(4)更新支撑集Ф_Λ,其中Λ=Λ∪J_0;
(5)利用最小二乘法得到重建信号,同时对余量进行跟新;
(6)若|Λ| 2K,则停止迭代,否则令r =r_new,n = n+1,转到步骤(2)继续迭代。
为了说明ROMP算法的重建性能,分两次实验实现算法重构,利用MATLAB R2016a作为平台。实验1假定信号是稀疏的并且稀疏度为10,定常信号256 × 1的列向量中随机选取10个随机数随机排列到定长信号中。观测矩阵为高斯随机矩阵。初始信号和恢复信号之间的误差用二者相减的二范数表示。实验结果如图(4)误差为o(10 )
实验2假定信号是四个余弦函数式表示
x=0.3cos(2π50t)+0.6cos(2π100t)+0.1cos(2π200t)+0.9cos(2π400t)
我们运用快速傅里叶变换对一维信号 x 进行变换,稀疏度为7,测量矩阵为64×256高斯矩阵实验结果如图(5),误差为o(10 )。
ROMP算法在OMP算法的基础上加入了正则化方法,以实现一次迭代选择多个原子的目的,从而提高重建速度,减少了算法的复杂度。但其代价是需要预估计信号的稀疏度,并且需要较多的采样数据
3.3分段正交匹配追踪(STOMP)算法
STOMP 算法采用分阶段的思想首先根据相关原则来筛选原子,利用阈值的方法从原子集合中选择和迭代余量匹配的原子,与OMP 算法不同的是,它并不是每次固定选择一个匹配原子,而是给定标准为大于门限值t_s δ_t的原子。δ_t为规范噪音水平, δ_t=〖||r_t ||〗2/√M。r_t是上一次跟新的余量值[9]。利用此标准可以一次找到多个原子,减少了匹配的次数,提高了追踪的效率; 然后更新支撑集和原子,并用最小二乘法求得近似解,同时完成对余量的更新。
STOMP算法步骤:
(1)初始化余量r_0 = Y,迭代次数默认为10,门限参数t_s默认为2.5。计数器t=1;
(2)计算感知矩阵各列原子与余量的内积,选择大于门限值t_s δ_t的感知矩阵对应的原子列向量存入集合J_0 ;
(3)跟新支撑集Λ_t = Λ(t-1) ∪ J_0,在支撑集上利用最小二乘法求出跟新余量;
(4)若t值小于迭代次数s,返回(2)继续执行,否则退出循环。
为了说明STOM算法的重建性能,利用MATLAB R2016a作为平台。假定信号是稀疏的并且稀疏度为10,定常信号256 × 1的列向量中随机选取10个随机数随机排列到定长信号中。观测矩阵为高斯随机矩阵。初始信号和恢复信号之间的误差用二者相减的二范数表示。实验结果如图(6)所示
STOMP 算法将 OMP 算法进行了一定程度的简化,提高了计算速度,但是由于其在每次迭代的过程中寻找的都不是信号的最佳表示,致使重构的精度降低,导致在实际中其重构的信号的精度远不如OMP 算法重构的信号的精度。门限参数和默认迭代次数的设置很大程度决定了算法的精度,使得算法的灵活度差。
3.4稀疏度自适应匹配追踪(SAMP)算法
以上算法均建立在稀疏度已知的情况下才能有效,但在实际情况中,信号的稀疏度信息往往事先是不可得的,SAMP相比较其他算法最吸引的就是可以不需要知道稀疏度的先验信息 ,这使得SAMP重建算法在实际应用中更加广泛[10]。
SAMP算法中采用转换阶段(stage) 的方式逐步增加该原子数,将同一个迭代过程分成多个阶段,设置一个可变步长(size)代替所选原子数目,相邻两个阶段所对应的支撑集的大小之差即为当前步长,随着步长的增加和支撑集的不断增大,实现了在未知稀疏度的前提下步长逐步逼近稀疏度K进而实现精确重建出原始信号的目的[11]。SAMP算法引入了回溯的思想,每次迭代都重新评估原子的有效性。
SAMP算法步骤:
(1)初始化余量r_0= Y,支撑集F_0为空集,候选集S_0为空集,初始步长为s,步长增量初始倍数j=1;
(2)选择感知矩阵内的原子和余量内积最大的s个列向量,将对应的原子列向量放入候选集s_k中;
(3)合并支撑集F_k和候选集s_k得到跟新后的支撑集C_k;
(4)以C_k的原子为基准,由最小二乘法得到重建信号并选择最大的s个元素所对应的原子,组成新的的支撑集F;
(5)由初始余量,支撑集F,利用最小二乘法计算更新余量r;
(6)如果满足迭代停止条件〖||r||〗_2 ≤ε(固定阈值)则退出循环,如果满足〖||r_k ||〗2 〖||r(k-1) ||〗_2则跟新步长倍数j = j + 1,跟新的步长为s = j × s转入步骤二继续迭代,否则更新支撑集,更新余量,转入步骤二继续迭代。
为了说明SAMP算法的重建性能,利用MATLAB R2016a作为平台,分2次实验验证。第一次实验,假定信号是稀疏的并且稀疏度为10,定常信号256 × 1的列向量中随机选取10个随机数随机排列到定长信号中。固定阈值为0.1,观测矩阵为128×256高斯随机矩阵。初始信号和恢复信号之间的误差用二者相减的二范数表示。实验结果如(7)所示,误差为o(10 )。
第二次实验,测试对象为256×256lena图像。观测矩阵采用随机高斯矩阵,M和N表示观测矩阵的行数和列数,M/N表示压缩比,实验的压缩比为0.5,阈值为100,验的PSRN值为24.3。实验结果如图(8)
SAMP算法通过提供了严格的误差界限(固定阈值)且不需已知信号的稀疏度 K 就可以重构信号,固定阈值的选取同测量矩阵有着很大的联系。初始步长的选取目前任然是一个问题,SAMP算法的初始步长只需要小于稀疏度K,为了避免过度检测,如果不知道稀疏度,选择初始步长为1可以确保足够的精度。但是初始步长越小,算法运行的时间也就越大,这就造成了过度检测与运行时间的矛盾。经验表明,对于指数衰减的信号初始步长选的较小比较好,对于二进制稀疏信号选择步长较大比较好。如果算法能随着算法逐渐接近真实的稀疏度K值而逐渐缩小这样会提高算法的精度。另外,有学者提出了稀疏度自适应子空间追踪算法,该算法能较为精确完成信号重构,不需要设定步长,能够估计稀疏度大小,但是输入参数对算法影响较大。也有学者提出变步长的自适应步长的稀疏度估计的方法[12],根据每次迭代得到的残差值,通过函数Ln=[L_(n-1)log(γ)/log((γ+0.9ε)) /2.1],其中γ=1-|(|r_2 |)|/||y_2 ||,来确定步长的大小,当步长远离稀疏度K时步长较大,当接近K时稀疏度较小。
3.5基于小波变换的分块压缩感知
根据压缩感知理论,图像重构时如果图像尺寸太大,为了维持一定的精度,测量矩阵所需要的观测值随之增加,造成了观测矩阵对于有限的存储空间显得十分巨大,而硬件难于满足需求。Lu Gan [13]提出了分块压缩感知12,该方法指出: 可以将原始图像分成一些大小相等的图像块,采用相同的观测矩阵单独对每个图像块进行观测,大大简化了计算复杂度,这种方法能解决大尺度图像实时传输的问题。分块图像的观测矩阵远远小于未分块的图像,降低了对硬件的需求,利用PC端将采集的样本重构恢复,并实现图像融合。
本实验利用MATLAB R2016a作为平台,对每一个子块采用小波变换,保留每块的低频小波稀疏,对高频小波稀疏进行采样得到测量向量。13重构时利用正交匹配追踪(OMP) 算法对高频系数进行恢复,再进行小波反变换重构图像。
实验步骤:
选取大小为256 × 256的二维图像,将图像分为16块大小为64 × 64的图像;
采用小波变换对图像进行稀疏化表示,利用50 × 64的观测矩阵进行观测得到观测向量;
采用OMP算法对观测向量进行重构恢复;
对重构的恢复矩阵进行小波反变换,得到重构图像。
实验结果如图(9)所示
为了比较几种算法的恢复精度,在固定的稀疏度12下对上述算法进行实验,实验信号为定常信号256 × 1的列向量,观测随着观测矩阵行数M的数目变化对一维信号恢复正确率的变化,实验中对每次M的取值实验100次,计算恢复率,信号之间的误差达到10 即视为正确,M的取值为从稀疏度K每次增加十个直到观测矩阵列数256。实验结果如下图所示(10)所示
图(10)为四种算法随着测量值M取值的不同,恢复值百分数变化
图中可以看出ROMP算法到达较高的精确度所需要的观测矩阵行数较其余的算法高,压缩量较低。SAMP算法在稀疏度未知的情况下,由较小的测量值得到恢复精确度较高。
4.总结
压缩感知利用信号稀疏的特性将原来基于奈奎斯特采样定理的信号采样过程转化为基于优化计算恢复信号的观测过程。有效缓解了高速采样实现的压力,减少了处理、存储和传输的成本,使得用低成本的传感器将模拟信息转化为数字信息成为可能,同时压缩感知使得信号的恢复率理论上比传统压缩算法更加精准。
研究还存在如下问题:
(1)对于一个稳定的优化算法,是否存在最优的观测矩阵使得观测值在达到一定的精度范围而观测数目控制在较少的范围。
(2)如何设计有效的软硬件来应用压缩感知理论解决大量的实际问题,这方面的研究还不成熟。
(3)含噪信号或采样过程中引入噪声时的信号重构问题也是难点所在。
5.参考文献
[1] 石光明, 刘丹华, 高大化等. 压缩感知理论及其研究进展[D]. 2009.
[2] 李卓凡, 闫敬文. 压缩感知及应用[J]. 微计算机应用, 2010, 31(03): 12–16.
[3] 李珅, 马彩文, 李艳等. 压缩感知重构算法综述[J]. 红外与激光工程, 2013, 42(S1): 225–232.
[4] 吴赟, 丛琳. 压缩感知测量矩阵的研究[D]. 西安电子科技大学, 2012.
[5] DONOHO D L. Compressed sensing[J]. IEEE Transactions on Information Theory, 2006, 52(4): 1289–1306.
[6] NEEDELL D, VERSHYNIN R. Signal Recovery From Incomplete and Inaccurate Measurements Via Regularized Orthogonal Matching Pursuit[J]. Ieee Journal of Selected Topics in Signal Processing, 2010, 4(2): 310–316.
[7] 杨真真, 杨震, 孙林慧. 信号压缩重构的正交匹配追踪类算法综述[J]. 信号处理, 2013, 29(04): 486–496.
[8] TROPP J A, GILBERT A C. Signal Recovery From Random Measurements Via Orthogonal Matching Pursuit[J]. IEEE Transactions on Information Theory, 2007, 53(12): 4655–4666.
[9] 汪浩然, 夏克文, 牛文佳. 分段正交匹配追踪(StOMP)算法改进研究[J]. 计算机工程与应用, 2017, 53(16): 55–61.
[10] DO T T, GAN L, NGUYEN N等. Sparsity adaptive matching pursuit algorithm for practical compressed sensing[C]//2008 42nd Asilomar Conference on Signals, Systems and Computers. 2008: 581–587.
[11] 杜秀丽, 胡兴, 顾斌斌等. 基于变步长的正则回溯SAMP压缩感知重构算法[J]. 计算机应用研究, 2018, 35(04): 1084–1087.
[12] FU Y, LIU S, REN C. Adaptive Step-Size Matching Pursuit Algorithm for Practical Sparse Reconstruction[J]. Circuits Systems and Signal Processing, 2017, 36(6): 2275–2291.
[13] 曹玉强, 柏森, 曹明武. 图像自适应分块的压缩感知采样算法[J]. 中国图象图形学报, 2016, 21(04): 416–424.