百科问答小站 logo
百科问答小站 font logo



如何理解压缩感知(compressive sensing)? 第1页

  

user avatar   bihan-wen 网友的相关建议: 
      

泻药,很高兴参加此次“心动信号”圆桌。

压缩感知(Compressed Sensing),曾今在2008 - 2013那段时间大红大紫,在信号处理,信息论,通信,甚至计算机视觉领域的热度,直逼如今的Deep Learning,几乎称霸了各大信号处理会议和期刊。

这波热潮的真正开端,应该是在06-07年,Terence Tao,Candès,Donoho他们几个搞出来的,基于sparsity prior的compressed sensing框架的时候。这套compressed sensing框架和配套理论证明了,在采样率低于critical sampling rate的时候,本来ill-posed的信号恢复和重建问题,可以在通过额外的sparisty prior的帮助下,达到巧妙的信号完美恢复。不仅如此,Tao他们还推导了Restricted Isotropic Property (RIP) 等一系列理论,证明了为了达到完美恢复,采样矩阵和信号稀疏度需要满足的条件和相互之间的关系。这为之后Compressed Sensing的发展和应用奠定了理论基础。


这一套Compressed Sensing的体系缔造了上一个信号处理的春天,大量的项目和学者投入研究,相关的工作无数,实在没法在这么短篇幅里全部总结。

我这里只用一些简单的例子,科普以下Compressed Sensing的基本概念,讲解一些应用,以及澄清几个常见的误区(包括题主在问题注释里面提到的几个问题)。我在这个答案里面,不会使用数学公式,因为知乎的context下,其实并不适宜讨论数学问题...


1. 什么是压缩感知

压缩感知,常见的对应英文词汇包括compressed sensing,compressive sensing, compressive sampling等等,其实都是一个意思。在这里我们一律简称为CS

要理解CS,要从sensing和compressed两个词入手。

(1)什么是感知(sensing)?

Sensing描述的是,为了表达和恢复某一个信号或者对象,对其采取某种感知手段(这里的感知包括了对图像的imaging, 对连续信号的sampling,等等),从而得到这种感知模态下的measurement,以便之后的信号重建以及分析等应用,这样一个过程。

我们拿图像重建举一个例子:

如果我们要感知一个10x10像素的图像,最简单最直接的方式,就是直接在空间域里面感知,得到并储存图像的100个像素点,这样的话,你可以通过把这100个像素点排列为矩阵的方式,重建这副目标图像。这里获取这100个点的过程,就称之为sensing。

(2)什么是压缩(compressed)?

在(1)的例子中,我们感知了一个10x10图像全部的100个像素点,我们一般称这种sensing叫做全采样(full sampling),因为目标信号是一个100维的信号,而你也获得了对应的100维measurement,你可以很直接地完美恢复图像。这样的感知方式没有任何的压缩,i.e., 感知到的维度=信号本身的维度。当然你也可以采集更高维度的measurement,我们称之为over-sampling / over-sensing, 但多余的采样并不会进一步提高你的图像恢复(信号已经达到完美恢复了)。

在不借助信号先验的前提下,我们把需要的最少的感知样本维度(这里是100),记做是critical sampling rate。那么你也可以选择感知少于critical rate的measurement,比如你只采集98个点,这种情况我们称之为是under-sampling,这样就起到了对full sensing的压缩,也就是compressed了。

(3)CS要解决什么问题

CS要解决的是,如何在under-sampling的情况下,依然可以完美地恢复目标图像

经典的信号处理体系是建立在经典的线性代数和统计的基础上的,那么处理这类under-sampling的重建问题,类似于你需要解100个未知数,却只有98个线性方程组。

按照经典信号处理的理论,这类问题是存在无穷多解的(无法唯一确定地完美恢复目标图像)。我们把这类问题成为病态问题(ill-posed problem),而compressed sensing就是用来解决ill-posed的inverse problems(逆问题)。


不同于咱们给的例子中,感知是直接幼稚地在空间域进行under-sampling,所谓compressed sensing,其实就是一种更加smart的under-sampling的感知,并且在借助有效的信号先验的帮助下,追求达到对图像的完美重建

但是为什么Compressed Sensing可以做到这一点呢?听上去很神奇,但这里主要的额外帮助来自于信号的先验。咱们还是用之前分析的恢复10x10图像的例子:

在不借助信号先验的条件下,通过98个线性方程组,解100个未知数,理论上的解空间的自由度会有一个二维平面那么大,而这平面上的每个点都可以是我们恢复的图像,没有唯一解。但如果我们引入了一个信号固有的先验:比如真实的图像的解只能在某条线上。这就相当于我们在98个线性方程上,外加了一个linear constraint。由这个line和我们的解空间自由的平面的交点,就唯一确定了一个解:这个解既满足我们的98个线性方程组,又在我们的linear constraint上。这个例子其实就解了一个极其简化的compressed sensing问题。


2. 狭义 vs 广义的Compressed Sensing

我们经常讨论的compressed sensing (CS),在方法层面上,有狭义和广义两种概念下的定义:

(1)狭义的CS

狭义的CS,是完全follow之前Tao他们在06-07提出的框架以及理论证明,只利用信号的稀疏性(sparsity),作为先验,帮助信号恢复。狭义的CS有比较完备的理论研究:比如如何设计Sensing的模态和方式,使得恢复信号质量最高(i.e., error最小)。

在这套理论下,要求采样矩阵和稀疏字典的coherence尽量要小,从而在给定某个sampling rate和sparsity的条件下,达到最佳的图像恢复。因为先验是sparsity,随机的sampling matrix成为了一个不错的sensing系统选择。

但值得提出的是,random sampling也见得是绝对意义上的最佳的sensing matrix。只不过用random sampling matrix,可以证明他和transform domain下的sparsity constraint,有比较小的coherence。在实际应用中,满足sparsity的信号,其实是在a union of low-dimensional subspaces里面的。在不确定non-zero的support的情况下,分析sensing matrix和general case下的sparsity constraint之间的coherence其实并不容易。所以用random sampling是个不错的选择。

(2)广义的CS

广义的CS,可以使用一切有效且可以利用的信号先验,帮助信号重建以及解决ill-posed inverse problems。实际上除了信号的可稀疏性以后,还有很多被证明有用的信号模型:包括low-rank model, statistical model, non-local mean,甚至包括深度先验(deep prior),都可以用来帮助图像重建。除了稀疏先验以外的先验,不一定有在CS框架下的理论和重建保证。

在广义定义下,只要是通过signal prior建立regularizer,构造一个优化问题解决ill-posed problem,都可以算compressed sensing。包括最新的一些利用plug-and-play拿deep prior做图像重建的问题。

随着CS应用的发展,i.e., 越来越多的论文灌水需要(大雾,划掉),越来越多的工作开始关注广义的CS,并且研究除了sparsity以外,不同prior之间对重建的增益。这样的框架,可以把当下最火的deep learning也包括在内。


3. 在图像处理的环境下,哪些任务是基于compressed sensing框架?

Compressed sensing在图像处理和计算成像领域,有很多应用。包括但不限于:

(1) 图像修复问题 - image super-resolution, interpolation, inpainting, etc. (Image Denoising不是CS问题)

(2) 计算成像问题 - low-dose CT, undersampled MRI, etc.

(3) 图像合成 - multi-channel measurement fusion, hyperspectral / multispectral fusion, etc.

第一项里面,inpainting应该是最好理解的:图像的一部分像素点缺失,恰好和我们在第一部分里面讨论的例子很像:在不借助外部先验的条件下,回复缺损的像素点,本身是病态问题。换句话说,你可以拿任何大小的像素点补全缺损的部分。但考虑到图像本身的性质和先验,就可以得到看起来最自然,也质量最高的inpainting结果。这个问题本质,其实就是在空间域里面的compressed sensing问题。

第二项里面,医学成像是compressed sensing得到商业应用的一个很重要部分。比如前段时间西门子的,基于compressed sensing的一台MRI扫描仪就获得了美国FDA的许可,开始应用于临床。总体来说,医学成像对compressed sensing感兴趣,主要是(但不限于)为了解决 (1) 发射过大 和 (2) 扫描过慢 这两个问题。比如 CT 就是一种带放射性的成像方式,相比于扫一般物体,可以无节制地增大扫描精度,扫人体必须要对放射量(dose)有限制。但如果不使用compressed sensing的技术,得到的可能就是非常低质量或者有artifacts的图像。再比如 MRI ,他本身是一个没有放射性的成像方式,但最大的问题是,经典 MRI 扫描人体可能会非常慢,这会对病人造成不舒适。Compressed Sensing可以实现在降采样(更快)的前提下,依然保证成像的质量。

第三项里面,可以认为多通道的采样,都是针对同一个目标的降采样。同样的,可以利用一个目标图像的固有属性,i.e., 信号先验,来帮助融合以及重建信号。相较于single channel的sensing问题,这类更加复杂的compressed sensing挑战,需要关注的不光是开发信号本身的先验,还有如何利用cross-channel correlation,使得不同的sensing matrix之间的关系得到最大化的利用。

4. 一些常见的误区

(1)Compressed Sensing这类型的概念,最早是Tao他们提出的。

这个其实是不准确的:利用信号先验,包括sparsity等等,来解决病态逆问题,这类框架和概念其实早在80 / 90年代就已经被信号处理领域研究,只不过没有叫Compressed Sensing这个名字而已。但可惜的是之前的研究很多并没有提供配套理论以及分析采样和先验的数学关系。所以Tao他们搞的CS体系,真正的贡献以及突破,是提供了比较完备的理论支持和保证,从而真正说服大家,并且带动了高热度的科研投入。

(2)Compressed Sensing只能用random sampling,并且只能用sparsity prior

在正文里面,我已经澄清了:

(i) random sampling在用sparsity prior的信号重建问题里,是个不错的sensing system,因为他和sparsity prior有较小的coherence。但并不是说random sampling就是绝对意义上的最佳选择。

(ii) 在广义的CS下,sparsity并不是唯一可用的signal prior。如果要回归到Tao他们的经典CS框架下,确实大量的理论证明,只讨论了sparsity作为prior的情况。但这并不能局限其他prior被应用到compressed sensing的应用中去。

(3)Compressed Sensing已经过时和完蛋了。

我记得前年的icassp,专门有一个panel discussion在讨论“Is compressed sensing dead?”

我的看法是:狭义的compressed sensing似乎已经有了比较完备的理论体系,并且有足够多的实践了。但这并不证明这套compressed sensing的框架已经过时了。事实上,广义的compressed sensing正在被应用到各种有趣的实际问题中,而且如今机器学习的热潮,带动了利用数据驱动的方式主动学习信号先验的可能性。我的很多研究也在关注这一块儿,并且我认为,compressed sensing never dies, it just becomes more flexible。比如我博士期间的论文,主要就是关注blind compressed sensing,也就是认为signal prior不再是事先可知(blind),而是通过数据驱动的方式去获取。这样的先验可以对于你将要处理的数据最优化,从而达到更加好的信号重建。

所以,相较于悲观和担忧,我们做信号处理和compressed sensing的学者,更应该思考的是,如何不再固步自封,而去拥抱最新的技术,使得经典的sensing框架更加灵活。

最后引用道德经里面的一句话:“执古之道,以御今之有”。




  

相关话题

  对于多指标评价,BP神经网络评价和TOPSIS有什么区别呢? 
  深度学习到底是「实验科学」还是「理论科学」?能否称为「算法」? 
  LSTM如何来避免梯度弥散和梯度爆炸? 
  如何看待NIPS2017图灵奖得主贝叶斯网络之父Judea Pearl讲座无人问津? 
  所谓大数据分析,究竟要学什么? 
  机器学习中有哪些形式简单却很巧妙的idea? 
  因果推断(causal inference)是回归(regression)问题的一种特例吗? 
  计算机视觉(CV)的算法有哪些,具体都有哪些特点? 
  为什么做stacking之后,准确率反而降低了? 
  一个无监督学习算法,如何判断其好坏呢? 

前一个讨论
为什么deep lab v3起,输出不再接 DenseCRF了?
下一个讨论
Mac上有些软件无法禁止开机启动怎么办?在“登陆项”里面没有它的选项,无法删去,比如Junos Pulse。





© 2024-11-09 - tinynew.org. All Rights Reserved.
© 2024-11-09 - tinynew.org. 保留所有权利