当前位置:   article > 正文

OMP算法

omp算法

OMP算法 ( smit正交化)

也就是正交的MP算法。

MP算法的次最优性来源其残差只与当前投影方向垂直,这样在接下来的投影中,很有可能会再次投影到原来的方向。

于是,在投影时,如果我们使得残差Rk+1与x1-xk+1的所有向量垂直,则可以克服这个问题,如下:

 


求解方法

假设我们已经得到了第k步的最优解:


我们要继续更新到第k+1步,目标是得到:


需要注意的是,我们下一步更新时,之前原子的系数 也要更新,否则不能满足约束。

于是我们需要求得如何更新之前原子系数 ,以及如何求得下一个投影方向 。

 





收敛性:

同样根据勾股定理,得到如下:

于是算法收敛。

 

具体步骤:


  1. function [A]=OMP(D,X,L);
  2. %=============================================
  3. % Sparse coding of a group of signals based on a given
  4. % dictionary and specified number of atoms to use.
  5. % input arguments: D - the dictionary
  6. % X - the signals to represent
  7. % L - the maximal number of coefficient for representation
  8. % of each signal.
  9. % output arguments: A - sparse coefficient matrix.
  10. %=============================================
  11. [n,P]=size(X);
  12. [n,K]=size(D);
  13. for k=1:1:P,
  14. a=[];
  15. x=X(:,k);
  16. residual=x;
  17. indx=zeros(L,1);
  18. for j=1:1:L,
  19. proj=D'*residual;
  20. pos=find(abs(proj)==max(abs(proj)));
  21. pos=pos(1);
  22. indx(j)=pos;
  23. a=pinv(D(:,indx(1:j)))*x;
  24. residual=x-D(:,indx(1:j))*a;
  25. end;
  26. temp=zeros(K,1);
  27. temp(indx)=a;
  28. A(:,k)=sparse(temp);
  29. end;
  30. return;


 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/904706
推荐阅读
相关标签
  

闽ICP备14008679号