压缩采样匹配追踪(CompressiveSampling MP)是D. Needell继ROMP之后提出的又一个具有较大影响力的重构算法。CoSaMP也是对OMP的一种改进,每次迭代选择多个原子,除了原子的选择标准之外,它有一点不同于ROMP:
ROMP每次迭代已经选择的原子会一直保留,而CoSaMP每次迭代选择的原子在下次迭代中可能会被抛弃
。
在这之前先读了下参考论文[1],论文前面还是看得懂一点的,讲了一些压缩感知的基础知识,还聊到了压缩重构方法主要分为三类,但是到了第2部分介绍算法的时候又看不懂了,感觉符号都还没聊清楚就开始讲流程了。佩服看得懂的博主,还说很容易就看懂了。。。希望自己好好努力也能看懂这些外文文献,fighting啦!
那么我先把论文中的流程贴出来,并没有对符号作过多的解释。。。
然后在网上找到了符合论文中符号的代码。
functionSest=cosaomp(Phi,u,K,tol,maxiterations) Sest = zeros(size(Phi,2),1); v = u; t = 1; numericalprecision=1e-12; T = []; while(t<=maxiterations)&&(norm(v)/norm(u)>tol) y = abs(Phi'*v); [vals,z]=sort(y,'descend'); Omega = find(y>=vals(2*K)&y>numericalprecision); T = union(Omega,T); b = pinv(Phi(:,T))*u; [vals,z]=sort(abs(b),'descend'); Kgoodindices = (abs(b)>=vals(K)&abs(b)>numericalprecision); T = T(Kgoodindices); Sest = zeros(size(Phi,2),1); phit = Phi(:,T); b = pinv(phit)*u; Sest(T)=b; v = u - phit*b; t = t+1; end
接下来综合代码我准备强行解释一波论文算法的伪代码流程,哎呀半懂半懂希望以后要全懂全懂。
1.Identification(识别)