压缩感知(压缩传感,Compressive Sensing)理论是近年来信号处理领域诞生的一种新的信号处理理论,由D. Donoho(美国科学院院士)、E. Candes(Ridgelet, Curvelet创始人)及华裔科学家T. Tao(2006年菲尔兹奖获得者)等人提出,自诞生之日起便极大地吸引了相关研究人员的关注。网站http://dsp.rice.edu/cs上可以获取大量相关的论文。

有关压缩感知,有两个科普文章,讲得很通俗易懂,可以很好地介绍了压缩感知:

http://www.cvchina.info/2010/06/08/compressed-sensing-2/

那什么叫压缩感知?为什么它的出现吸引了那么多的目光?

还记得我们在信号与信息处理有关课程里面必讲的一个知识吗?它可谓是现代数字信号处理系统理论建立的一个功臣之一。没错,就是能将物理世界和数字世界建立连接的采样定理:奈奎斯特采样定理(Shannon-Nyquist采样定理)。其要求:在进行模拟/数字信号的转换过程中,当采样频率fs.max大于信号中最高频率fmax的2倍时,采样之后的数字信号完整地保留了原始信号中的信息。

而压缩感知的出现,告诉我们:如果信号在某一个正交空间具有稀疏性(即可压缩性),就能以较低的频率(远低于奈奎斯特采样频率)采样该信号,并可能以高概率精确的重建该信号。

在上面所说的一篇科普文章中提到:所谓压缩感知,最核心的概念在于试图从原理上降低对一个信号进行测量的成本。比如说,一个信号包含一千个数据,那么按照传统的信号处理理论,至少需要做一千次测量才能完整的复原这个信号。这就相当于是说,需要有一千个方程才能精确地解出一千个未知数来。但是压缩感知的想法是假定信号具有某种特点(比如文中所描述得在小波域上系数稀疏的特点),那么就可以只做三百次测量就完整地复原这个信号(这就相当于只通过三百个方程解出一千个未知数)。

在cvchina里面有一篇很热的文章《稀疏表达:向量、矩阵与张量》,呵呵,有点深,我看不懂,但里面开篇的几张图像吸引了我:

首先是图像恢复,由左侧图像恢复出右侧结果:

然后是类似的图像inpainting

然后是图像去模糊,左上为输入模糊图像,右下为输出清晰图像及估计的相机运动(其实是PSF),中间均为迭代过程:

再然后是物体检测(自行车),左侧输入图像,中间为位置概率图,右侧为检测结果

当然我个人还推荐Yi Ma的sparse face,这个在对抗噪声的效果上很棒,比如下图中左侧的那张噪声图像(你能辨认是哪位不?这方法可以!)

上面的结果都很amazing,但是怎么实现的我就不知道了。原博主既然摆在那,就表明了它是稀疏表达的功劳了。

下面就针对自己的了解,具体总结下压缩感知理论。由于自己也是这几天看到那个《Real-Time Compressive Tracking》

http://www4.comp.polyu.edu.hk/~cslzhang/CT/CT.htm

其涉及到的理论就是压缩感知(或者稀疏表达)。然后感觉不错,了解了解(后面会对这个跟踪算法做介绍,具体见博客更新)。所以接触时间有限,理解未免出错,望各位不吝指正。

简单地说,压缩感知理论指出:只要信号是可压缩的或在某个变换域是稀疏的,那么就可以用一个与变换基不相关的观测矩阵将变换所得高维信号投影到一个低维空间上,然后通过求解一个优化问题就可以从这些少量的投影中以高概率重构出原信号,可以证明这样的投影包含了重构信号的足够信息。

在该理论框架下,采样速率不再取决于信号的带宽,而在很大程度上取决于两个基本准则:稀疏性和非相关性,或者稀疏性和等距约束性。

压缩感知理论主要包括三部分:

(1)信号的稀疏表示;

(2)设计测量矩阵,要在降低维数的同时保证原始信号x的信息损失最小;

(3)设计信号恢复算法,利用M个观测值无失真地恢复出长度为N的原始信号。

理论依据:

(1)设长度为N的信号X在某个正交基Ψ上是K-稀疏的(即含有k个非零值);

(2)如果能找到一个与Ψ不相关(不相干)的观测基Φ;

(3)用观测基Φ观测原信号得到长度M的一维测量值M个观测值Y,K<M<<N;

(4)那么就可以利用最优化方法从观测值Y中高概率恢复X

数学表达:

设x为长度N的一维信号,稀疏度为k(即含有k个非零值),A为M×N的二维矩阵(M<N),y=Φx为长度M的一维测量值。压缩感知问题就是已知测量值y和测量矩阵Φ的基础上,求解欠定方程组y=Φx得到原信号x。Φ的每一行可以看作是一个传感器(Sensor),它与信号相乘,拾取(Acquisition)了信号的一部分信息。而这一部分信息足以代表原信号,并能找到一个算法来高概率恢复原信号。

一般的自然信号x本身并不是稀疏的,需要在某种稀疏基上进行稀疏表示,xs,Ψ为稀疏基矩阵,s为稀疏系数(s只有K个是非零值(K<<N)。

压缩感知方程为yx=ΦΨss

将原来的测量矩阵Φ变换为Θ=ΦΨ(称之为传感矩阵),解出s的逼近值s’,则原信号x’ = Ψs’。

1、信号的稀疏表示

信号的稀疏性简单理解为信号中非0元素数目较少,或者说大多数系数为0(或者绝对值较小)。

自然界存在的真实信号一般不是绝对稀疏的,而是在某个变换域下近似稀疏,即为可压缩信号。或者说从理论上讲任何信号都具有可压缩性,只要能找到其相应的稀疏表示空间,就可以有效地进行压缩采样。信号的稀疏性或可压缩性是压缩感知的重要前提和理论基础。

稀疏表示的意义:只有信号是K稀疏的(且K<M<<N),才有可能在观测M个观测值时,从K个较大的系数重建原始长度为N的信号。也就是当信号有稀疏展开时,可以丢掉小系数而不会失真。

我们知道,长度为N的信号X可以用一组基ΨT=[Ψ1,…, ΨM]的线性组合来表示:

       xs,Ψ为稀疏基NxN矩阵,s为稀疏系数(N维向量),当信号X在某个基Ψ上仅有 K<<N个非零系数或远大于零的系数s时,称Ψ为信号X的稀疏基。我们需要做的就是合理地选择稀疏基,使得信号的稀疏系数个数尽可能少。

再啰嗦点的话:如果长度为N的信号X,在变换域Φ中只有K个系数不为零(或者明显大于其他系数),且K<<N,那么可以认为信号X在Φ域中是稀疏的并可称为K-稀疏(不是严格的定义)。那么在该域下,我们如果只保留这M个大系数,丢弃其他的系数,则可以减小储存该信号需要的空间,达到了压缩(有损压缩)的目的。同时,以这M个系数可以重构原始信号X,不过一般而言得到的是X的一个逼近。

我们应该熟悉JPEG跟JPEG2000的区别吧,JPEG的核心算法是DCT,而后者是DWT,本质上,这两种处理方法都是将信号从一个域变换到另外一个域(把坐标系进行旋转,将信号投影到不同的基上),从而获得信号的稀疏表示,即用最少的系数来表示信号,不过DWT比DCT更加稀疏而已。信号不同,对应最稀疏表达的基也会不同,比如,对于一维信号可能小波基是最稀疏的,而对于图像而言,可能那些Curvelet和contourlet是最优的,对于有些信号,也有可能需要将几种基结合起来才是最优的。稀疏分解是找到信号的最稀疏最有效的表达。

信号在某种表示方式下的稀疏性,是压缩感知应用的理论基础,经典的稀疏化的方法有离散余弦变换(DCT)、傅里叶变换(FFT)、离散小波变换(DWT)等。

最近几年,对稀疏表示研究的另一个热点是信号在冗余字典下的稀疏分解。 这是一种全新的信号表示理论:用超完备的冗余函数库取代基函数,称之为冗余字典,字典中的元素被称为原子。目前信号在冗余字典下的稀疏表示的研究集中在两个方面:一是如何构造一个适合某一类信号的冗余字典,二是如何设计快速有效的稀疏分解算法。目前常用的稀疏分解算法大致可分为匹配追踪(Matching Pursuit)和基追踪(Basis Pursuit)两大类。

2、信号的观测矩阵

观测矩阵(也称测量矩阵)MxN(M<<N)是用来对N维的原信号进行观测得到M维的观测向量Y,然后可以利用最优化方法从观测值Y中高概率重构X。也就是说原信号X投影到这个观测矩阵(观测基)上得到新的信号表示Y。

观测矩阵的设计目的是如何采样得到M个观测值,并保证从中能重构出长度为N的信号X或者稀疏基Ψ下等价的稀疏系数向量。

为了保证能够从观测值准确重构信号,其需要满足一定的限制:观测基矩阵与稀疏基矩阵的乘积满足RIP性质(有限等距性质)。这个性质保证了观测矩阵不会把两个不同的K稀疏信号映射到同一个集合中(保证原空间到稀疏空间的一一映射关系),这就要求从观测矩阵中抽取的每M个列向量构成的矩阵是非奇异的。

在CS编码测量模型中并不是直接测量稀疏信号X本身, 而是将信号投影到一组测量矩阵Φ上而得到测量值y。即,用一个与变换矩阵不相关的MxN(M<<N)测量矩阵Φ对信号x进行线性投影,得到线性测量值y: y=Φx ;

测量值y是一个M维向量,这样使测量对象从N维降为M维。测量矩阵的设计要求信号从x转换为y的过程中,所测量到的K个测量值不会破坏原始信号的信息,以保证信号可以精确重构。

由于信号x是是可稀疏表示的: x=Ψs,上式可以表示为下式:

y=Φx=ΦΨs=Θs

其中Φ是一个MxN矩阵。上式中,方程的个数远小于未知数的个数,方程无确定解,无法重构信号。但是,由于信号是K稀疏,若上式中的Φ满足有限等距性质(Restricted Isometry Property,简称RIP),则K个系数就能够从M个测量值准确重构(得到一个最优解)。RIP性质的等价条件是测量矩阵Φ和稀疏基Ψ不相关。

如果稀疏基和观测基不相关,则很大程度上保证了RIP性。CandeS和Tao等证明:独立同分布的高斯随机测量矩阵可以成为普适的压缩感知测量矩阵。则一般用随机高斯矩阵作为观测矩阵。目前常用的测量矩阵还有随机贝努利矩阵、部分正交矩阵、托普利兹和循环矩阵和稀疏随机矩阵等,这里不一一列举了。

3、信号的重构算法

当矩阵Φ满足RIP准则时。压缩感知理论能够通过对上式的逆问题先求解稀疏系数s,然后将稀疏度为K的信号x从M维的测量投影值y中正确地恢复出来。解码的最直接方法是通过l0范数(0-范数,也就是向量yˆ中非零元素的个数)下求解的最优化问题:

从而得到稀疏系数s的估计s’。则原信号x’ = Ψs’。由于上式的求解是个NP难问题(在多项式时间内难以求解,甚至无法验证解的可靠性)。L1最小范数下在一定条件下和L0最小范数具有等价性,可得到相同的解。那么上式转化为L1最小范数下的最优化问题:

L1范数最小化是通过用L1范数来近似0范数,取1而不取1/2,2/3或者其他值,是因为1范数最小化是凸优化问题,可以将求解过程转化成有一个线性规划问题。L1最小范数下最优化问题又称为基追踪(BP),其常用实现算法有:内点法和梯度投影法。内点法速度慢,但得到的结果十分准确:而梯度投影法速度快,但没有内点法得到的结果准确 。

目前,压缩感知的重构算法主要分为两大类:

(1)贪婪算法,它是通过选择合适的原子并经过一系列的逐步递增的方法实现信号矢量的逼近,此类算法主要包括匹配跟踪算法、正交匹配追踪算法、补空间匹配追踪算法等。

(2)凸优化算法,它是把0范数放宽到1范数通过线性规划求解的,此类算法主要包括梯度投影法、基追踪法、最小角度回归法等。

凸优化算法比贪婪算法所求的解更加精确,但是需要更高的计算复杂度。

从数学上来说,CS就是在一定的条件下求解欠定(不适定)方程,条件包括x要是稀疏的,测量矩阵要满足RIP条件,那么欠定(不适定)方程就会以很大的概率有唯一解。

转载https://blog.csdn.net/zouxy09/article/details/8118329

深度学习与神经网络-压缩感知(Compressive Sensing)学习(五)相关推荐

  1. 压缩感知 (Compressive sensing)之公式及关键点说明

    前言 压缩感知(Compressive sensing)和压缩采样(Compressive sampling)是一样的. 本想细更一下这个内容,但细看完"参考资料1"后,我决定放弃 ...

  2. 初识压缩感知 compressive sensing

    压缩感知是近年来极为热门的研究前沿,在若干应用领域中都引起瞩目.最近粗浅地看了这方面一些研究,对于Compressive Sensing有了初步理解,在此分享一些资料与精华.本文针对陶哲轩和Emman ...

  3. 初识压缩感知Compressive Sensing

    压缩感知是近年来极为热门的研究前沿,在若干应用领域中都引起瞩目.最近粗浅地看了这方面一些研究,对于Compressive Sensing有了初步理解,在此分享一些资料与精华.本文针对陶哲轩和Emman ...

  4. 压缩感知 compressive sensing(转)

    信号处理新理论 采样定理(又称取样定理.抽样定理)是采样带限信号过 程所遵循的规律, 1928年由美国电信工程师H.奈奎斯特首先提出来的,因此称为奈奎斯特采样定理.1948年信息论的创始人C.E.香农 ...

  5. matlab压缩感知,压缩感知(Compressed Sensing, CS)matlab代码

    [实例简介] 压缩感知(Compressed Sensing, CS)matlab代码.实现多个正弦信号的随机欠采样,通过压缩感知恢复.两个m文件分别是两个算法,正交匹配追踪(OMP)算法和SPGL1 ...

  6. 深度学习 --- 随机神经网络详解(玻尔兹曼机学习算法、运行算法)

    BM网络的学习算法 (1)  学习过程 通过有导师学习,BM网络可以对训练集中各模式的概率分布进行模拟,从而实现联想记忆.学习的目的是通过调整网络权值使训练集中的模式在网络状态中以相同的概率再现.学习 ...

  7. ICLR 2019最佳论文揭晓!NLP深度学习、神经网络压缩夺魁 | 技术头条

    整理 | Linstansy 责编 | Jane 出品 | AI科技大本营(id:rgznai100) [导语]ICLR 是深度学习领域的顶级会议,素有深度学习顶会 "无冕之王" ...

  8. 深度学习 --- 卷积神经网络CNN(LeNet-5网络学习算法详解)

    上一节我们详细探讨了LeNet-5网络的架构,但是还没有解释该网络是如何进行学习的,如何更新权值的,本节将接着上一节进一步CNN的学习机制和权值更新过程,这里请大家一定要对CNN网络有一个清晰的认识, ...

  9. 学习笔记——神经网络压缩

    以下内容来源与李宏毅老师的课程. 文章目录 一.Network Pruning--网络剪枝 二.Knowledge Distillation--知识蒸馏 三.Parameter Quantizatio ...

最新文章

  1. AI一分钟|阿里云解释故障原因:触发了一个未知代码Bug;清华蝉联ISC18超算竞赛总冠军...
  2. .NET智能客户端(SmartClient)
  3. python mysql股票分析_一颗韭菜的自我修养:用Python分析下股市,练练手
  4. vgg 名人人脸图像库_您看起来像哪个名人? 图像相似度搜索模型
  5. idea 线程内存_Java线程池系列之-Java线程池底层源码分析系列(二)
  6. LeetCode 824. 山羊拉丁文
  7. CART树回归、剪枝、Tkinter GUI
  8. Spring Boot基础学习笔记21:自定义用户认证
  9. Solartimes共识——PowerDesigner设计——引用的命名
  10. Elasticsearch 2.3.x 拼音分词 analysis-lc-pinyin
  11. pytorch和python一样吗_PyTorch可以和TensorFlow一样快,有时甚至比TensorFlow更快了?...
  12. 【Shiro第二篇】SpringBoot + Shiro实现用户身份认证功能
  13. C语言约瑟夫环(简单版)
  14. 基于springboot的薪资管理系统设计
  15. 店铺淘口令怎么生成, 怎么生成店铺淘口令
  16. MarkDown 分割线
  17. 2021年安全生产模拟考试(全国特种作业操作证电工作业-继电保护模拟考试题库一)安考星
  18. sicp3.5.2、3.5.3节部分习题尝试解答
  19. java joda range,Java:joda time
  20. 想做游戏场景建模师,如何拿到高薪资?

热门文章

  1. 三国杀代码12武将C++
  2. 百度云盘 破解上传限制4G(利用种子)
  3. 大学学习的期望与目标
  4. 如何在内网主机上快速搭建一个Wordpress个人网站
  5. 一、Oracle数据库
  6. 什么是职业测评?做职业测评有什么作用?
  7. 使用注解失败的原因及解决方法
  8. python下划线怎么输入_python中下划线的用法
  9. [关键字]volatile
  10. gin-gonic/gin使用详解