匹配追踪

匹配追踪(matching pursuit, MP)最早是时频分析的分析工具，目的是要将一已知讯号拆解成由许多被称作为原子讯号的加权总和，而且企图找到与原来讯号最接近的解。其中原子讯号为一极大的原子库中的元素。以数学式子表示可以得到：

$$f(t) = \sum_{n=0}^{+\infty} a_n g_{\gamma_n}(t)$$

其中，$a_n$是权重，$g_{\gamma_n}$是由字典$D$中获得的原子讯号。

如同傅立叶级数将一讯号拆解成一系列的正弦波的相加，其中每个成分拥有不同的系数作为权重，其数学式子如下：

$$f(x) = \sum_{n=-\infty}^ \infty c_n e^{inx}$$

而匹配追踪也具有将讯号拆解成一系列原子相加的意涵，甚至可以使用匹配追踪去描述傅立叶级数，也就是原子库对应到的所有正弦函数的集合。

## 算法

为了找到最符合原讯号的一组原子加权总合，如果对原子库进行所有组合的尝试过于耗费时间。在1993年由Mallat S和Zhang Z的论文1中，提出了一个贪婪算法（Greedy Algorithm），并大幅降低找出近似解的时间。其作法首先在原子库中寻找与原讯号内积结果最大的原子$g_{\gamma_n}$，找到此讯号以及其内积结果$a_n$之后再将原讯号减掉$a_n g_{\gamma_n}$作为下一次重复运算的原始讯号，如此反复做下去即可得到一系列的$a_n$以及原子$g_{\gamma_n}$，直到达到停止条件为止，其详细的算法如下：

输入：Signal: $f(t)$, dictionary $D$.

输出：List of coefficients: $\left( a_n, g_{\gamma_n}\right)$.

初始化：

$R_1\,\leftarrow\,f(t)$;

$n\,\leftarrow\,1$;

重复：

寻找 $g_{\gamma_n} \in D$ 具有最大内积 $| \langle R_n, g_{\gamma_n} \rangle |$;

$a_n\,\leftarrow\,\langle R_n, g_{\gamma_n}\rangle$;

$R_{n+1}\,\leftarrow\,R_n - a_n g_{\gamma_n}$;

$n\,\leftarrow\,n + 1$;

直到达到停止条件（例如：$\|R_n\| < threshold$）

## 时频原子分解(time-frequency atom decomposition)

在信号处理的许多应用中，需要将信号分解为一群在时域和频域都具有良好局部性(集中在某一范围)的函数，这些函数称为时频原子(time-frequency atom)。

选择不同的时频原子时，分解方式的特性会有很大的差异。窗函数傅立叶转换(window Fourier transform)和小波转换(wavelet transform)都是时频信号分解的方法。

通常一个时频原子群可以由单一的窗函数$g(t)\in L^2(R)$经过scale、translation和modulation产生，令$g(t)\in O(\frac{1}{t^2+1})$为一个实数的连续可微函数，且限制$\|g\|=1$、$g(t)$的积分不为零、$g(0)\neq0$。

以$\gamma=(s, u, \xi)$表示scale参数$s (s>0)$、translation参数$u$和modulation参数$\xi$，定义$g_\gamma(t)$为

$$g_\gamma(t)=\frac{1}{\sqrt{s}}g(\frac{t-u}{s})e^{i\xi t}$$

其中$\gamma$是集合$\Gamma=R^+\times R^2$中的元素，$\frac{1}{\sqrt{s}}$使得$\|g\|=1$。

事实上，函数群$D={(g_\gamma(t))}_{\gamma\in\Gamma}$含有许多冗余的元素，对于任何函数$f(t)$，更有效率的表示方法是，在原子${(g_{\gamma_n}(t))}_{n\in N}$中，只选取适当数量的子集合，其中$\gamma_n=(s_n, u_n, \xi_n)$，则$f(t)$可以表示为

$$f(t)=\sum_{n=-\infty}^{+\infty}a_ng_{\gamma_n}(t)$$

在窗函数傅立叶转换中，所有原子$g_{\gamma_n}$具有相同的scale参数$s_n=s_0$，因此主要分布在一个大小为$s_0$倍数的区间内，由于上述特性，窗函数傅立叶转换无法准确地描述比$s_0$大许多或小许多的函数结构。

小波转换将信号分解为不同尺度的时频原子，称为小波(wavelet)，小波群${(g_{\gamma_n}(t))}_{n\in N}$的建构方法是令$\xi_n=\xi_0/s_n$，其中$\xi_0$是一个常数。小波转换可以分析不同尺寸的信号成分，然而，受限于参数$\xi_n$和$s_n$必须成反比的条件，小波转换的系数无法精准估计傅立叶转换后具有良好局部性的频率成分。

## 希尔伯特空间(Hilbert space)的匹配追踪

自适应时频分解(adaptive time-frequency decomposition)的目的是将信号展开到一组波形(waveform)上，这些波形选自一个数量庞大的冗余字典，而匹配追踪是能达到自适应分解的一种方法。

一个希尔伯特空间可表示为$L^2(R)$，其组成的复数函数$f$必须满足

$$\|f\|=\int_{-\infty}^{+\infty}{|f(t)|}^2dt<+\infty$$

令$H$代表一个希尔伯特空间，则将“字典”定义为$H$中的一个向量群$D={(g_\gamma)}_{\gamma\in\Gamma}$，满足$\|g_\gamma\|=1$，其中$\gamma$是集合$\Gamma=R^+\times R^2$中的元素。$V$代表字典向量的封闭线性生成空间(closed linear span)，在空间$V$中，集合$D$之向量的有限线性展开(finite linear expansion)是稠密(dense)的，如果$V=H$，则称此字典具有完备性(completeness)。对于“时频原子分解”段落所描述的字典，$H=L^2(R)$，在空间$L^2(R)$中，时频分子的有限线性展开是稠密的，因此该字典具有完备性。

假设有一信号$f\in H$，欲将其线性展开到由集合$D$中选出的一组向量上，使得结果最匹配原来的信号结构。匹配追踪的方法是连续地将$f$以其在集合$D$中元素的正交投影(orthogonal projection)近似。

令$g_{\gamma_0}\in D$，向量$f$可以被分解为

$$f=\langle f, g_{\gamma_0}\rangle g_{\gamma_0}+Rf$$

其中$Rf$是将$f$以$g_{\gamma_0}$的方向近似后的剩余向量(residual vector)，由于$g_{\gamma_0}$和$Rf$正交，可得下式

$${\|f\|}^2={|\langle f, g_{\gamma_0}\rangle|}^2+{\|Rf\|}^2$$

为了最小化$\|Rf\|$，必须选取$g_{\gamma_0}\in D$使得$|\langle f, g_{\gamma_0}\rangle|$最大化。在某些情况下，只能找到近似最佳的向量$g_{\gamma_0}$，符合

$$|\langle f, g_{\gamma_0}\rangle|\geq\alpha\ \underset{\gamma\in\Gamma}{\sup}|\langle f, g_\gamma\rangle|$$

其中$0<\alpha\leq1$，在选择向量$g_{\gamma_0}$时，并非随机选择，而是由一个选择函数$C$决定。

重复上述步骤，迭代地将剩余向量$Rf$投影到集合$D$中最匹配$Rf$的向量，并将$Rf$分解。

匹配追踪的步骤可以由数学归纳法来表示

- 令$R^0f=f$
- 假设已经计算第$n$次的剩余向量$R^nf$，$n\geq0$
- 根据选择函数$C$，选取一个最匹配$R^nf$的元素$g_{\gamma_n}\in D$

$|\langle R^nf, g_{\gamma_n}\rangle|\geq\alpha\ \underset{\gamma\in\Gamma}{\sup}|\langle R^nf, g_\gamma\rangle|$剩余向量$R^nf$被分解为$R^nf=\langle R^nf, g_{\gamma_n}\rangle g_{\gamma_n}+R^{n+1}f$由于$g_{\gamma_n}$和$R^{n+1}f$正交，可得下式${\|R^nf\|}^2={|\langle R^nf, g_{\gamma_n}\rangle|}^2+{\|R^{n+1}f\|}^2$当分解到第$m$次时，$f$被分解为$\begin{align} f & = \sum_{n=0}^{m-1}(R^nf-R^{n+1}f)+R^mf \\ & = \sum_{n=0}^{m-1}\langle R^nf, g_{\gamma_n}\rangle g_{\gamma_n}+R^mf \\ \end{align}$ ${\|f\|}^2$被分解为$\begin{align} {\|f\|}^2 & = \sum_{n=0}^{m-1}({\|R^nf\|}^2-{\|R^{n+1}f\|}^2)+{\|R^mf\|}^2 \\ & = \sum_{n=0}^{m-1}{|\langle R^nf, g_{\gamma_n}\rangle |}^2+{\|R^mf\|}^2 \\ \end{align}$此公式具有能量守恒的意义，原来的向量$f$被分解为许多字典中元素的总和。

## 有限空间的匹配追踪

当信号存在的空间$H$具有有限的维度$N$时，匹配追踪方法会有特殊的特性。在字典$D$中，可能含有无限多的元素，假设此字典具有完备性，此时可以用一种有效率的匹配追踪方法，剩余向量的范数(norm)会以指数方式下降。

当字典含有非常多冗余的元素时，要寻找和剩余向量最匹配的向量，通常可以只限制在一个子字典$D_\alpha={(g_\gamma)}_{\gamma\in{\Gamma_\alpha}}\subset D$中寻找，假设$\Gamma_\alpha$是一个包含于$\Gamma$的有限索引集，使得对于所有信号$f\in H$，满足

$$\underset{\gamma\in\Gamma_\alpha}{\sup}|\langle f, g_\gamma\rangle|\geq\alpha\ \underset{\gamma\in\Gamma}{\sup}|\langle f, g_\gamma\rangle|$$

依据$\Gamma_\alpha$的大小和字典$D$的冗余程度，集合$\Gamma_\alpha$可以比$\Gamma$小许多。

以数学归纳法表示此处的匹配追踪方法

- 计算内积${(\langle f, g_{\gamma}\rangle)}_{\gamma\in\Gamma_\alpha}$
- 假设已经计算${(\langle R^nf, g_{\gamma}\rangle)}_{\gamma\in\Gamma_\alpha}$，$n\geq 0$
- 从子字典$D_\alpha$中找出一个元素$g_{\tilde{\gamma_n}}$，使得

$|\langle R^nf, g_\tilde{\gamma_n}\rangle|=\underset{\gamma\in\Gamma_\alpha}{\sup}|\langle R^nf, g_\gamma\rangle|$为了从字典中找到一个比$g_{\tilde{\gamma_n}}$更匹配$f$的元素，可以利用牛顿法(Newton’s method)，在$\Gamma$中寻找$\tilde{\gamma_n}$的邻近索引$\gamma_n$，使得内积达到局部最大值，在此情况下，可以得出下式$|\langle R^nf, g_{\gamma_n}\rangle|\geq|\langle R^nf, g_\tilde{\gamma_n}\rangle|\geq \alpha\ \underset{\gamma\in\Gamma}{\sup}|\langle R^nf, g_\gamma\rangle|$在此处，选择函数$C$与希尔伯特空间中的匹配追踪不同，必须进行二次搜寻。在选出一个$g_{\tilde{\gamma_n}}$后，必须计算新的剩余向量$R^{n+1}f$和任何$g_\gamma\in D_\alpha$的内积，更新公式如下$\langle R^{n+1}f, g_\gamma\rangle=\langle R^nf, g_\gamma\rangle-\langle R^nf, g_{\gamma_n}\rangle\langle g_{\gamma_n}, g_\gamma\rangle$由于先前的计算已经得到$\langle R^nf, g_\gamma\rangle$和$\langle R^nf, g_{\gamma_n}\rangle$，因此上式的更新只需要计算$\langle g_{\gamma_n}, g_\gamma\rangle$。对于一个给定的信号$f$，要对其剩余向量分解多少次，决定于要求的精准度$\epsilon$，重复的次数为能够满足下式的最小值$p$ $\|R^pf\|=\|f-\sum_{n=0}^{p-1}\langle R^nf, g_{\gamma_n}\rangle g_{\gamma_n}\|\leq\epsilon\|f\|$根据能量守恒，此公式等价于$\|f\|-\sum_{n=0}^{p-1}{|\langle R^nf, g_{\gamma_n}\rangle|}^2\leq\epsilon^2\|f\|$由于在此方法中，每一次重复计算时，并没有计算剩余向量$R^nf$，因此只根据上式来判断是否达到停止分解的条件。

重复次数$p$决定于$\|R^nf\|$的下降速率，依据信号的不同，$p$可以有很大的变化，但在一般情况下，$p$会比空间$H$的维度$N$小很多。

## 性质

- 任何讯号$f$都会在由原子库所张的空间中找到收敛的解。
- 稀疏性：当原子库很大的时候，MP算法找出来的最佳吻合解，其中的大部分原子讯号的系数可能都是0，只有少部分的系数不为0，此性质称为稀疏代表性，而此特性对于影像或视讯编码和压缩很有帮助。

## 应用

匹配追踪算法的灵活性和效率在讯号处理领域中越来越重要，尤其在以下几种领域中更有其重要的应用：

在视讯编码和影像压缩上，对于运动的影像估计和补偿，在提出新的原子库或是扩展的算法之后，有相当的改良。在影像辨识和形状辨认上，匹配追踪算法的稀疏性对于同样具有稀疏性的图像提供新的研究方向。另外在音乐、语音方面，最早即在时频分析上作为MP算法研究对象。