赞
踩
定义为向量中非零元素的个数,用于描述向量的稀疏程度。
问题描述如下:
min
x
∣
∣
x
∣
∣
0
,
s
.
t
.
A
x
=
b
\min_x{||x||_0}, s.t. Ax=b
xmin∣∣x∣∣0,s.t.Ax=b
对于稀疏表示这一特定应用,该公式可解释为找到最稀疏的
x
x
x(通过
L
0
L_0
L0范数作为罚项约束),使得
b
b
b能够在特定的矩阵
A
A
A下(稀疏表示任务中称
A
A
A为字典)被
x
x
x表示。我们的目的是求解稀疏系数
x
x
x。
引入一个概念:
矩阵
A
A
A的spark,即矩阵中最小的线性相关组中列向量的个数。
具体来说,如下矩阵的rank为4,而spark为3(即标红的三列是线性相关的,也是最小的线性相关列向量组)。
如果想要了解spark在压缩感知中的应用,可以去搜一下。
根据Michael Elad等人的证明:
当且仅当
s
p
a
r
k
(
A
)
>
2
k
spark(A)>2k
spark(A)>2k时,可以通过上述最小0范数优化问题得到稀疏系数
x
x
x的精确近似。我们可以直观想象一下spark的求解过程:
首先明确,
s
p
a
r
k
>
=
2
spark>=2
spark>=2,存在两个向量相等的情况时取等号。
进而,从
n
=
2
n=2
n=2开始搜索所有的列向量组合,直到第
n
=
N
n=N
n=N次时某一组合中的向量线性相关,则
s
p
a
r
k
=
N
spark=N
spark=N。
显然这种搜索所有可能性的方法由于矩阵
A
A
A庞大的列向量个数(过完备性),使得很难在多项式时间内得到问题的解。因此研究者们致力于如何优化最小0范数优化问题的求解。
具体来说,如果矩阵
A
A
A有2000列,
N
=
15
N=15
N=15的话,则需要大约
7.5
×
1
0
20
7.5 \times{10^{20}}
7.5×1020年来求解。
根据上述最小0范数优化问题描述,可以对
A
x
=
b
Ax=b
Ax=b限制不那么严格,引入如下误差:
r
k
=
b
−
A
x
k
r_k=b-Ax_k
rk=b−Axk
OMP的原理就是选择下一个非零值
x
x
x,以尽可能减少残差
r
k
r_k
rk使得
A
x
Ax
Ax更接近于
b
b
b。这就将最小0范数优化问题转化为了一个迭代求解问题。
借用一下Elad大佬的
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。