• 压缩感知(四)


    恢复算法

    1、L1 minimization

     这是一个凸优化问题,类似于统计学中的LASSO。

    优化算法有:

    特点:

    L1最小化的其他形式:

    2、Matching Pursuit

    MP算法(匹配追踪算法)

    算法描述:

    作为对信号进行稀疏分解的方法之一,将信号在完备字典库上进行分解。假定被表示的信号为y,其长度为n。假定H表示Hilbert空间,在这个空间H里,由一组向量{x1,x2,…,xn}构成字典矩阵D,其中每个向量可以称为原子(atom),其长度与被表示信号y的长度n相同,而且这些向量已作为归一化处理,即||xi||=1,也就是单位向量长度为1。MP算法的基本思想:从字典矩阵D(也称为过完备原子库中),选择一个与信号y最匹配的原子(也就是某列),构建一个稀疏逼近,并求出信号残差,然后继续选择与信号残差最匹配的原子,反复迭代,信号y可以由这些原子来线性和,再加上最后的残差值来表示。很显然,如果残差值在可以忽略的范围内,则信号y就是这些原子的线性组合。MP进行信号分解的步骤:

    1)计算信号y与字典矩阵中每列(原子)的内积,选择绝对值最大的一个原子,它就是与信号y在本次迭代运算中最匹配的。用专业术语来描述:令信号y∈H,从字典矩阵中选择一个最为匹配的原子,满足|<y,xr0>|=supi(1,…,k) |<y,xi>|,r0表示一个字典矩阵的列索引。这样,信号y就被分解为在最匹配原子xr0的垂直投影分量和残值两部分,即:y=<y,xr0>xr0+R1f。

    2)对残值R1f进行步骤1)同样的分解,那么第K步可以得到:

    Rkf=<Rkf ,xrk+1> xrk+1+ Rrk+1f,

    其中xrk+1满足|<Rkf, xrk+1>|=supi(1,…,k) |<Rkf, xi>|。

    Note:

    (1)为什么要假定在Hilbert空间中?Hilbert空间就是定义了完备的内积空。很显然,MP中的计算使用向量的内积运算,所以在在Hilbert空间中进行信号分解理所当然了。

    (2)为什么原子要事先被归一化处理了,即上面的描述。内积常用于计算一个矢量在一个方向上的投影长度,这时方向的矢量必须是单位矢量。MP中选择最匹配的原子是,是选择内积最大的一个,也就是信号(或是残值)在原子(单位的)垂直投影长度最长的一个。

    (3)MP算法是收敛的,因为得出的每一个残值比上一次的小,故而收敛。

    MP算法的缺点:

    如上所述,如果信号(残值)在已选择的原子进行垂直投影是非正交性的,这会使得每次迭代的结果并不少最优的而是次最优的,收敛需要很多次迭代。举个例子说明一下:在二维空间上,有一个信号y被D=[x1, x2]来表达,MP算法迭代会发现总是在x1和x2上反复迭代,即这个就是信号(残值)在已选择的原子进行垂直投影的非正交性导致的。由于MP仅能保证,所以一般情况下是次优的。不是说MP一定得到不到最优解,而且其前面描述的特性导致一般得到不到最优解而是次优解。

    3OMP算法

    算法描述:

    OMP算法的改进之处在于:在分解的每一步对所选择的全部原子进行正交化处理,这使得在精度要求相同的情况下,OMP算法的收敛速度更快。

    算法伪代码:

    矩阵描述:

     

    算法程序代码:

    国外学者的描述(更为严谨):

    特点:

  • 相关阅读:
    政务公开系统专栏首页的跨站攻击漏洞
    Spring+XFire WSSecurity安全认证开发感悟
    Appfuse使用中遇到的问题及解决方案
    How to get the rowid when insert the data to Oracle database
    How to configure CVS in IntelliJ IDEA
    localhost打不开 127.0.0.1可以打开,,,或 hosts 文件不起作用的解决方法
    ASp.net中Froms验证方式
    ASP.NET 页面执行顺序详解
    【转】防止用户通过后退按钮重复提交表单ASP中的response.Buffer,Response.Expires,Response.CacheControl
    页面事件(Init,Load,PreRender)执行顺序__简单总结
  • 原文地址:https://www.cnblogs.com/wangyinan0214/p/12330546.html
Copyright © 2020-2023  润新知