压缩感知(Compressed Sensing)

最近师兄在研究这个方法在体数据上的应用,略微了解了下。科学松鼠会上有两篇科普译文讲的不错:

http://songshuhui.net/archives/38054

http://songshuhui.net/archives/11006

另外就是这位叫许洪腾的仁兄发在人人上的个人见解,摘在这里:

一、压缩感知——出师未捷身先死?

转自:http://blog.renren.com/blog/333117051/490787279?from=010203042

    很久没写过和我专业有关的东西了,不是因为没感触,更不是吝惜分享。只是最近比较忙,而且觉得还积累的不够。如今中秋佳节,总算有了时间整理一下过去几个月的一点心得。全当个人意见,欢迎有兴趣的同学和我交流。

       随着离开天大,我的工作也从识别性稀疏编码转向了压缩感知。很多人对于这项以稀疏表示理论为基础的技术还不了解。我在这里大概说一下。大约56年前,CandiesTao Donoho几个人提出一种理论:如果一个信号可以用一个基(或是冗余基)稀疏表示,则可以用一个和这个基相关性很差的观测矩阵将信号随机投影到低维空间中,即压缩采样。通过凸优化的方法可以以很高的概率精确重构这个信号。

       这项技术现在火的不行。各个国家各个领域的各种人都在研究它或者想着把它用到某个工程领域中。像是rice大学DSP组的单像素照相机;图像信号的压缩;Faust用它做过心电信号采集器;据说清华通信专业有人用它做导频信号的压缩;到了上交还知道了在WSN中好像也有人在用。。。。。。

       但是,它真的这么好吗?真的这么有前途吗?做了一段时间了,对于它的问题,我还是可以说出一堆的~呵呵。

       运算复杂度高,重构算法速度慢是最大的瓶颈。目前大家多是用l1范数的最优化方法对重构信号进行求解(传说中的BP算法)。虽然也有TVMARX这些方法对压缩后的信号进行重构,但是这些方法都是需要迭代的,这就造成了很大的运算开销。(什么Newton法呀,EM呀,跑起来都巨慢呀。。。。。。)   

       迭代的另一个缺点是造成算法过程不可控,参数敏感。先说说过程不可控,迭代过程中往往涉及矩阵求逆,或是参数递归。而对于奇异或是近似奇异的矩阵求逆往往会得到病态解,而递归更是有可能将参数推到计算机的运算范围之外。再说说参数敏感,大家都知道,迭代的次数是由参数(残差容限,迭代上限等等)决定的,但是这些参数的取值往往是经验的,或是只适用于某一类信号,很难做到普适。

       至于观测矩阵和基的相关性无法保证这种顽疾,目前好像也没有非常有效的解决方法。尤其当基是单位矩阵时(即直接对空域信号进行压缩感知),即使观测矩阵时Gaussian随机阵也是无法使两者不相关的。

       上面这些都是很明显的问题,还有一些比较隐蔽的问题。一是数据扩张。虽然经过压缩感知信号被投影到低维空间,从数学角度上看数据是压缩了,但是数据的动态范围往往会增加(至少我的实验结果是这样,有异议者欢迎反驳),原本uint8型的数据用gaussian阵投影须转成double型,用Bernoulli阵投影须转成uint16型。从计算机的角度看,数据量往往还有增加,所以压缩感知要真的实现压缩还是需要时日的。

       另外一点就是解的敏感性。即使重构信号本身不是病态解,这个解对于噪声,尤其是量化噪声是很敏感的。上述的数据扩张问题可能有人会想用量化的方法来解决。遗憾的是,我这么做了,在量化参数为20的时候得到的解在视觉上就有很明显的量化噪声了。

       。。。。。。

       问题还有很多,这对于搞科研的人来说是“甜蜜的痛苦”吧。所以压缩感知在今后的35年内应该还会是signal领域的研究热点。上述的任何一个问题都是很好的研究课题。我现在也在为此努力,主要在算法加速方面。

       如果你觉得它还有其他问题,欢迎告诉我。如果你有解决上述问题的思路,欢迎交流。


二、再说压缩感知——从实现方法看本质

转自:http://blog.renren.com/blog/333117051/703449689?from=010203042

       关于压缩感知已经研究了一段时间了,应该说还是有些感悟的。每次一到逢年过节就有时间写这些东西了- -|||

上次说到了它的一些问题,这次就针对其中最重要的一点——观测矩阵,进行分析。众所周知,虽然仿真实验,以及实际中的后端恢复,观测矩阵都是用软件生成的,或是预先存储在RAM中。但实际上只有在信号采集的前端用硬件实现信号的压缩采集才有意义。也就是说观测矩阵是用硬件实现的。这样做的好处很明显——省钱+高速!以图像采集系统为例,如果我们采集N*N的图像时只需要远小于N的平方个传感器,那么就可以节省传感器的成本。因为数据量减少,传输所需的带宽也能被节省,传输速率也会更高。从模数转化的角度看,压缩感知提供了一种以低于Nyquist采样率的速率采样而无失真恢复信号的方法,这对于高频信号的采集可以说是革命——高频信号处理可以从采样速率的瓶颈中解放了,ADC的成本也会跟着下降。

       说了这么多,到底怎么实现呢?对于1维模拟信号,目前我所知道的是由伪随机序列发生器和积分器组成的采样系统。模拟信号通过积分器后被伪随机序列采样,采得样本可以看作部分积分的结果。根据DCC2009的论文,Ti公司已经做出了名为“Xampling”的样板,对2.4GHz的信号使用200MHz速率采样并恢复。但从效果上看,还有待改进。

       对于2维信号,通常是图像信号,情况变得稍稍有些复杂。研究的方向出现了分叉——一拨人天天想着怎么用硬件实现CS,而另伙人比较懒,他们想把压缩感知用在其他问题上,例如:去噪,超分辨率,去模糊,去抖等等。这类问题的共同点就是可以看作欠定方程组的求解问题,一般采用threshold iteration来进行求解。

       在硬件实现上,Rice大学做一个单像素照相机,利用反射角度可调的镜面阵列完成光学图像的矩阵运算,原理上和单发相机是一样的,只是所用的镜面不是平面的了。这种做法原理上是可行的,但是也许是设备精度问题,或是压缩比太大,恢复出的图像效果严重模糊,无法使用。而另一种则相对好实现,即CCD平动阵列——说是阵列,但实际上最少一行CCD就够了。原理上嘛~大家可以想一想指纹采集系统,这就是使用一行传感器采集一张图像的典型例子,只不过这是通过你手指的规则运动完成的。现实生活中这样的例子有很多,结合压缩感知的话,这时CCD的曝光时间会变成离散的(这样采样就减少了),顺序扫描过程也变成了部分积分的过程。对于采集设备和对象之间存在规则运动且采集传输速率要求很高的问题,这样做是很有必要的。

       至于第二类应用方法,这里我只对超分辨率做一下说明——实际上当我们用数码相机对自然图像进行采集时,观测矩阵就已经有了——一个结构化的下采样矩阵。胶片相机的成像分辨率一般为6000万像素,如果以此作为自然图像,数码相机在分辨率上还是有差距的。用下采样矩阵得到的信号可以用压缩感知恢复吗?我目前的答案是可以被估计,但是不能被精确恢复。主要是因为此时的观测矩阵和字典之间的相关性一般还是比较大的,它们的乘积不满足被约束的各向异性(矩阵的奇异值近似服从0-1分布)。这样的问题在用CS解决去模糊,去抖时,相信也是存在的。对于这类问题,观测矩阵已经给定,寻找合适的字典就是这类问题的关键了。目前比较火的是wavelet基,尤其是curvelet基,对与图像的纹理部分的恢复还是很有效果的。但是在实验中,我也发现curvelet虽然对于细节,尤其是线型细节有着很好的描述,但是整体上的PSNR是不如传统的db小波的——恢复出的图像振铃效果较明显,我觉得很有“油画”风格——像是用油彩沿边缘勾勒过一样~

三、压缩感知——路在何方转自:http://blog.renren.com/blog/333117051/713899873

这是我的第三篇也是短期内最后一篇关于压缩感知的小结,用以介绍压缩感知的发展和我对它未来应用的一些判断。

       如同我之前指出的,信号的可稀疏性和观测矩阵也字典的非相关性是压缩感知可行的两大必要条件。但是实际应用中,这两个条件相当苛刻,很难满足。一方面对于一些非平稳的随机信号,找到可以稀疏表示这种充满高频分量的怪物的字典是很困难的。另一方面,如何在模拟信号阶段进行压缩采样,即观测矩阵的物理实现是很困难的。

       就在所有人都在想着如何实现这两个约束时,Candies想的是可不可以放松这两个约束。于是,矩阵填补(matrix completion)横空出世。

       同压缩感知一样,矩阵填补也是一个类似的反问题——能否预测矩阵中缺失的元素。对于这个问题,Candies给出的答案是:对一个N*N的矩阵进行随机的下采样,得到C*NlogN个样本并保证每一行每一列至少保留一个元素。如果原始矩阵时低秩的,那么可以通过求解矩阵的奇异值最小化问题(又称核范数规划)精确恢复原始矩阵。发现了吧?这个结论里没有稀疏性,没有字典,取而代之的是低秩这个条件——换句话说,我们不需要再去寻找可以稀疏表示信号的字典了,只需要知道信号组成的矩阵时低秩的即可。另外一个好处就是,观测矩阵的约束条件也得到了放松,不再需要去考虑和字典的非相关性——因为已经没有字典了。单纯的随机采样就足以满足条件,模拟端的积分器(电信号处理用),运动或反射模块(光信号处理用)都可以下岗了——世界从此和谐了。

       但这并不是说压缩感知可以光荣退役了。实际上目前矩阵填补理论主要用在信息检索领域,用于估计网络用户对于某些信息的反馈。因为这些信息组成的矩阵被认为是低秩的。现实世界中,很多自然信号仍然是满秩或近似满秩的。对于这类信号的压缩采样仍然是压缩感知的应用领域。下面就谈谈我对其应用的理解。

       在我看来,适合用压缩感知处理的信号应该是“窄带”高频的。之所以对窄带用引号是因为我所说的窄带,其实是可稀疏性的一种保证,它的本质是信号在频域是紧支撑的。也许有人会反驳我,说根据海森伯格测不准原理,即使信号在频域上频谱很宽,信号仍可以在时域或空域稀疏——那我要说,这种信号往往在空域或者时域上用简单的下采样就能得到(即低秩信号)。另一个条件就是高频,即物理条件无法胜任这么高的采样速率要求,这时方能体现出压缩感知的优势,即低频采样,精确恢复。这也是为什么压缩感知最先在MRI图像重建上得到应用,因为那是一个要求采样速率非常高,而且越高越好的领域。我在之前的第一篇小结中说过清华有人用压缩感知采集导频信号,想想导频信号的特点,不就是窄带高频吗?

      最后,我想想说说我在6613那门课上的那次作业。当时虽然是写着玩儿的,有很多硬伤,但我相信航拍和MIMO是压缩感知的有前途的应用领域。有兴趣的看官可以和我讨论。

你可能感兴趣的:(压缩感知(Compressed Sensing))