正交匹配追踪法(OMP)

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_20186593/article/details/80425223

正交匹配追踪法(OMP)

模型

OrthogonalMatchingPursuit (正交匹配追踪法)使用了 OMP 算法近似拟合了一个带l0范数限制的线性模型。

当提供参数n_nonzero_coefs时,优化目标为:

minw||yXw||22s.t.||w||0nnonzero_coefs

当提供参数tol时,优化目标为:
minw||w||0s.t.||yXw||22tol

算法

匹配追踪(MP)

假设初始的残差设置为 R0=yX=[x1,,xp],||xi||2=1,i

MP 首先选择满足下式的属性 xl0

|R0,xl0|=sup|R0,xi|

此时 y 可以分解为:
y=y,xl0xl0+R1(1)=R0,xl0xl0+R1

其中,R0,xl0xl0表示 yxl0 的投影,R1 表示用 xl0 逼近 y 的残差。

(1)式两边与 xl0 做内积可知,xl0 正交于 R1,因此:

||y||22=|R0,xl0|2+||R1||22

为了最小化残差,MP算法迭代的寻找最优属性。一般的,对于第 t 次迭代,设最优的属性为 xlt,逼近残差满足:
(2)Rt=Rt,xltxlt+Rt+1

其中,xlt 满足:
|Rt,xlt|=supi|Rt,xi|

(2)式两边与 xlt 做内积可知,xlt 正交于 Rt+1,因此:
||Rt||22=|Rt,xlt|2+||Rt+1||22

MP算法是收敛的,因为得出每一个残值比上一次的小,即 ||Rt||22>||Rt+1||22

若提供参数n_nonzero_coefs时,迭代n_nonzero_coefs次停止,此时有:

y=R0,xl0xl0++Rn1,xln1xln1+Rn

若提供参数tol时,当 ||Rn||22tol时,停止迭代,此时有:
y=R0,xl0xl0++Rn1,xln1xln1+Rn

缺点:如果残值在已选择的特征进行垂直投影是非正交性的,这会使得每次迭代的结果并不少最优的而是次最优的,收敛需要很多次迭代。举个例子说明一下:在二维空间上,有一个目标 yX=[x1,x2] 来表达,MP算法迭代会发现总是在 x1x2 上反复迭代,即 y=a1x1+a2x2+a3x1+,这个就是残值在已选择的特征进行垂直投影的非正交性导致的。

正交匹配追踪法(OMP)

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

算法:给定目标 y,设计矩阵 X=[x1,,xp],||xi||2=1,i,停止条件n_nonzero_coefstol

  1. 初始化:t=1,R0=y,特征矩阵D0=[ ],指标集L={ }

  2. 用以下公式寻找最优属性xlt

    |Rt1,xlt|=supi|Rt1,xi|

  3. 更新特征矩阵 Dt=[Dt1,xlt] 和指标集 L=L{lt}

  4. 计算稀疏系数

    w=argminw||yDtw||22

    此时 Dtwyspan{xl1,,xlt} 上的正交投影

  5. 更新残差

    Rt=yDtw

    此时有 Rtspan{xl1,,xlt}

  6. 检查是否满足停止条件,不满足则 t=t+1

展开阅读全文

没有更多推荐了,返回首页