压缩感知算法

1、引言

 在介绍压缩感知算法(Compressed Sensing,CS)之前,博主先描述一下数据生成的过程。

 首先,信号采集装置会以大于奈奎斯特采样频率的频率进行工作(这是一个巨大的工作,有时候可能还会对目标物体造成一定的损伤),由于巨大的数据量,所以在数据传输之前通常会对数据进行压缩,然后在信号接收端再对数据解压缩。

从上面的过程来看,大量数据在传输之前,终究要丢弃,那么是否可以在数据采集的时候就不采集这些数据呢?

从香农采样定理角度来看是不可以的,如果这样,复现出来的信号就会产生失真。

那么压缩过的信号为什么可以很好地复现信号呢?这是因为压缩算法根据信号本身的情况进行有选择的舍弃。比如说10000000这一串二进制数,我们知道了该数据的全部内容,只需要保存1的位置信息就相当于保存全部信息了(当然实际的压缩算法没有这么简单)。

为了解决这一问题,经过几位科学家的努力证明了,如果原始的信号是稀疏的,通过一定规则的欠采样,也能很好地恢复原始信号。其实也好理解,根据不变性,在一方面损失了部分信息,只有在其它方面获得更多的信息,才能保证信息的完整性。

但是,现实世界中哪里有那么多的稀疏信号,显得这个算法好像很鸡肋,其实不然,将信号稀疏表示很早之前就有相关算法了,我们只需要拿来用就可以了。

引言写了很多,这些其实都是博主个人的学习过程,纯粹是为了讲明白。下面关于压缩感知理论的内容,我会从数学的角度来讲解,毕竟数学其实才是算法的本质,但是我也会尽量讲的通俗易懂。

2、信号稀疏表示

首先给出信号稀疏表示的数学模型,

设\({\bf{x}} \in {C^N}\),在一组基\(\Psi \)上是稀疏的,那么可以表示为,\[{\bf{x}} = {\bf{\Psi \alpha }}\]

其中\({\bf{\Psi }}\)为\(N \times N\)的稀疏变换矩阵,\({\bf{\alpha }}\)是\(N \times 1\)的系数向量,也就是稀疏变换后的信号,同时也是采样得到的信号。

观察各个变量的维度,不难发现这是一个适定方程,只要确定了\({\bf{\Psi }}\),\({\bf{x}}\)和\({\bf{\alpha }}\)就是等价的。

那么如何来确定稀疏变换矩阵\({\bf{\Psi }}\)呢?有两种办法,一个字典学习的方法,这需要很多计算资源,但是自适应较好。另外一种方法是建立超完备原子字典,简单但是自适应不好。

由于博主水平有限,这两种具体的方法就不展开了。

3、测量矩阵

 我们假设原始信号已经是稀疏的了(由第二节可知,稀疏前信号和稀疏后的信号是等价的),那么现在还要实现什么功能呢?一、数据要能压缩;二、压缩后还能恢复

关于第一点,可以采用一个\(M \times N\)的映射矩阵(M<<N),称为测量矩阵,使得, \[{\bf{y = \Phi x}}\]

其中\(y\)是压缩后的信号,维度为\(M \times 1\)。

从第二节可以得到,  \[{\bf{y = \Phi x = \Phi \Psi \alpha  = \Theta \alpha }}\]

从\({\bf{\Theta }}\)是\(M \times N\)的矩阵,称为感知矩阵,所以这是一个欠定方程,有无数个解,剩下的很多操作其实都是为了给这个等式增加约束,使不定方程的解固定下来。

       关于求解这个方程,是从\({\bf{\Theta }}\)矩阵出发,压缩感知理论给出了\({\bf{\Theta }}\)矩阵需要满足约束等距原则(RIP),  \[(1 - \delta )\left\| {\bf{\alpha }} \right\|_2^2 \le \left\| {{\bf{\Theta \alpha }}} \right\|_2^2 \le (1 + \delta )\left\| {\bf{\alpha }} \right\|_2^2\]

其中\(\delta \)是满足上式的最小值。

       我们尝试理解一下这个不等式(个人理解,不能保证十分正确),在极端的条件\(\delta \)=0,那么满足上式不等式,\({\bf{\Theta }}\)需要是单位矩阵(实际却是\({\bf{\Theta }}\)是\(M \times N\)的矩阵,所以\(\delta \)也不可能等于0);

让\(\left\| {{\bf{\Theta \alpha }}} \right\|_2^2 = \eta \left\| {\bf{\alpha }} \right\|_2^2\),其中\((1 - \delta ) \le \eta  \le (1 + \delta )\),所以我们可以假设\({\bf{\Theta \alpha }} = \lambda {\bf{\alpha }}\),其中\(1 - \delta  \le \sqrt \lambda   \le 1 + \delta \)。如果需要任意的\({\bf{\alpha }}\)都满足上面这些等式和不等式,我们可以令\(\lambda  = 1\),这样的话\({\bf{\Theta \alpha }} = {\bf{\alpha }}\),也就是说,我们通过\({\bf{\Theta }}\)对\({\bf{\alpha }}\)映射的结果唯一确定。

那么怎么来设计才能让\({\bf{\Theta }}\)满足RIP性质呢?科学家们证明了,只要使得测量矩阵\({\bf{\Phi }}\)和稀疏矩阵\({\bf{\Psi }}\)满足不相干条件,\({\bf{\Theta }}\)就会有很大概率满足RIP性质。常用的测量矩阵\({\bf{\Phi }}\)有高斯随机矩阵等。

4、信号重建

       我们已经知道了,只要设计好测量矩阵就能把稀疏信号唯一性地映射到输出空间,也就是说只有一个确定的解,那么我们也就可以对,   \[{\bf{y = \Phi x = \Phi \Psi \alpha  = \Theta \alpha }}\]

进行求解了。但是由于这个方程没有封闭解,所以即使知道了等式的解唯一确定,也没有办法求出来,就需要利用另外一个约束条件,方程的解是稀疏的,我们只需要找到这个方程里面所有解中最稀疏的那个就行了(注意,很明显最稀疏的解有可能不是真正的解,但是很接近,所以压缩感知算法实际上是一种有损的压缩了)。

       求解上述方程的问题,一般有两种主要的思路,凸优化和贪心算法。这里给出常用的一种方法OMP(Orthogonal Matching Pursuit)算法,实际上是通过迭代线性逼近的思想,算法的步骤:

输入:\(M \times N\)的感知矩阵\({\bf{\Phi }}\)(内部列向量已经进行了施密特正交化),采样信号\({\bf{y}}\),稀疏度k;

输出:索引集\({{\bf{\Lambda }}_t}\),重建信号\({\bf{\hat X}}\),余量\({{\bf{r}}_t}\);

  1. 初始化: \({{\bf{r}}_0} = {\bf{Y}},t = 1;\)
  2. 找索引集\({{\bf{\Lambda }}_t}\),是的\({{\bf{\Lambda }}_t} = {\arg _{i = 1,2, \cdots ,N}}\max \left| { < {{\bf{r}}_{t - 1}},{\phi _i} > } \right|\);
  3. 计算:\({{\bf{b}}_t} =  < {{\bf{r}}_{t - 1}},{\bf{\Phi }} > ,{{\bf{r}}_t} = {\bf{Y}} - {{\bf{b}}_t}\);
  4.  t=t+1,如果t<k,返回第2步。

5、总结

       这篇博文到这里就结束了,通篇写下来并没有感觉很顺畅,也看了一些资料,即使这样文章中仍然有一些问题没有讲,比如说为什么测量矩阵和稀疏矩阵满足非相干性,感知矩阵就能满足RIP性质了呢?这些问题博主自己也没有明白,而且也不是做这方面研究,所以就不在这里献丑了,仅仅希望这篇博文能够给感兴趣的同学入个门。如果有同学发现博文中有错误的地方,麻烦指正出来,博主十分感谢。

  • 15
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值