压缩感知(II) A Compressed Sense of Compressive Sensing (II)
今天在吃饭的时候,其中一个人得知我的学校之后非要出一些 puzzle 来考我……口算都很困难的我觉得压力山大,要给本校的 CS 算法天才们丢脸了。然后其中一道题就是十二球重量的问题,似乎是一个经典面试题。当时想了一下觉得确实是可以放在之前看的一些 Compressive Sensing 框架下来考虑这个问题,后来去查了一下,发现果真如此。
十二球问题是说,现在有十二个球,其中有一个是“异类”,除了这个异类之外,其他十一个球的重量是相等的,而这个异类球可能比其他轻或者重,现在提供一个天平,要求你通过最多三次天平测量,找出哪个球重量和其他不一样,并得出是轻还是重的结论。
仔细想一下发现做一次天平测量相当于做一次 linear measurement,将球编号为 ,排成一个向量记为 的话,做一次测量相当于用 去内积一个向量 ,其中 的元素可能是 或者 。 表示放在天平左边, 放在天平右边。用 表示正常球的质量, 表示异常球的质量,则
其中 是一个全 的向量,而 是第 个位置为 ,其他位置为零的向量,这里假设第 个球是异类球,但是 的值目前未知。注意我们在测量的时候一定是会在左边和右边放上同样数目的球,否则测出的结果一般情况下得不到任何有用的信息:所以 向量里正负 的数目应该是一样多的,于是 ,也就是说:。
题目要求我们使用三次测量,分别记为 ,排成矩阵为 (题目并没有限制不能使用 adaptive 的测量方法,也就是说,根据上一次测量的结果动态地决定接下来测量那些球。但是我们这里采用 non-adaptive,也就是事先就把三次测量全部定下来的方式。)
我们用 表示 矩阵的第 列,则
由于我们 的编码中 表示放左边, 表示放右边,所以如果左边重,我们的观察值 会是负数,右边重是正数,一样重是零。由于我们的天平实际上不是刻度天平,所以我们的观察值实际上是 (所以说我们刚才说的“测量是线性的”这个说法实际上是需要纠正的。)
也就是说,我们的观察值实际上将会是矩阵的第 列或者该列的相反数,具体取决于异类球的质量是比正常球大还是小。所以说,如果我们能将矩阵 设计为任意两列以及它们的相反数都互不相等的话(当然还必须满足每一行的 个数相等),就可以根据这个测量矩阵找出异类球的位置 了。具体的做法就是直接拿测量结果去和 的每一列比较,如果和其中第 列相等的话,那么异类球就是第 个,并且重量比其他球大;否则再用测量结果的相反数去和 的每一列比较,相同的那一列对应的就是异类球的标号,并且此时异类球的质量比普通球要小。
那么这样的矩阵究竟能不能构造出来呢?首先矩阵每一个元素可能的取值范围是三个,矩阵有 3 行,所以所有可能的不同的列的个数为 个,除去全零(永远不测量该球)这种极端的情况,还剩 26 种,由于每一种情况和它的相反数的情况对应起来,因此我们实际上会得到 13 种,任选 12 种填满这十二列。下面是一个例子:
类似的算法可以推广到做 次测量,可以在多少个球中找出异类球来上,就不在这里再具体说了。所以这和 Compressive Sensing 有什么关系呢?当然在很多地方都是很相似的。首先 是一个“稀疏”的向量(除了一个位置之外其他的位置值都一样),然后现在通过数目远小于 的维度的测量来恢复出原始的 来。其中有一点和普通的 CS 不一样的是:这里并不是直接做原来的线性测量,而是在通过一个矩阵进行线性投影之后,测量结果的符号:,稍微忽略掉等于零的情况的话,一个符号 可以用一个 bit 来表示,所以这样的特殊的设定通常称为 1-bit Compressive Sensing。
由于 是一个非线性函数,所以这里的测量也是和普通 CS 不同的非线性测量。问题的设定也有些不同,因为很容易可以看到的是:原始向量 的长度信息永久丢失了,因为对于任意正数 ,,所以通常情况下会尝试恢复一个单位长度的向量 。更常见的设定是只寻找 的非零元素的位置,而不去管具体的值,比如对应我们刚才的问题,就是找出 是多少,通常叫做 support recovery。这通常被认为是更加 achievable 的目标。
在 1-bit CS 里,除了普通 CS 里常用的随机高斯或者伯努利测量矩阵之外,由于问题设定和 Computer Science 里的 Group Testing 问题也联系更加紧密一些,所以还有许多通过巧妙地构造出来的特殊矩阵配合上专门的恢复算法(而不是简单的 -norm 最小化)可以来完成给定的目标。
另外,介于 1-bit CS 和普通的 CS 之间还可以有 -bits CS,因为我们在电子计算机上处理数据的时候实际上是没有用无限精度来表示测量值的,总是在一定程度上做了 quantization,这个 quantization 的步骤(也就是用 个 bit 来近似真正的观察值)会产生怎样的影响,以及 的取值会对结果精度产生什么样的 trade-off,这也是目前 CS 里正在被研究的一个问题。
from: http://freemind.pluskid.org/machine-learning/a-compressed-sense-of-compressive-sensing-ii/
压缩感知(II) A Compressed Sense of Compressive Sensing (II)相关推荐
- 压缩感知(III) A Compressed Sense of Compressive Sensing (III)
在本文第一篇的时候我们介绍了 RIP 以及相关的概念,并给出了投影矩阵 满足一定的 RIP 条件的时候通过 -norm 最小化可以求得 CS 问题的最优解,该问题是通过凸优化来进行求解.这里我们介绍 ...
- 压缩感知(I) A Compressed Sense of Compressive Sensing (I)
CS,全称一般被认为是 Compressive/Compressed Sensing/Sampling,中文叫做压缩感知,于 2004 至 2006 年之间由 David Donoho.Emamnue ...
- DeepMind论文:深度压缩感知,新框架提升GAN性能(附链接)
来源:新智元 本文共2200字,建议阅读9分钟. 本文介绍一种将压缩感知和GAN联系起来的创新框架. [ 导读 ] DeepMind提出一种全新的"深度压缩感知"框架,将压缩感知与 ...
- DeepMind论文:深度压缩感知,新框架提升GAN性能
https://www.toutiao.com/a6694045305064653324/ [新智元导读]DeepMind提出一种全新的"深度压缩感知"框架,将压缩感知与深度学习相 ...
- 初识压缩感知 compressive sensing
压缩感知是近年来极为热门的研究前沿,在若干应用领域中都引起瞩目.最近粗浅地看了这方面一些研究,对于Compressive Sensing有了初步理解,在此分享一些资料与精华.本文针对陶哲轩和Emman ...
- 初识压缩感知Compressive Sensing
压缩感知是近年来极为热门的研究前沿,在若干应用领域中都引起瞩目.最近粗浅地看了这方面一些研究,对于Compressive Sensing有了初步理解,在此分享一些资料与精华.本文针对陶哲轩和Emman ...
- 压缩感知(Compressed Sensing)
compressive sensing(CS) 又称 compressived sensing ,compressived sample,大意是在采集信号的时候(模拟到数字),同时完成对信号压缩之意. ...
- 压缩感知 (Compressive sensing)之公式及关键点说明
前言 压缩感知(Compressive sensing)和压缩采样(Compressive sampling)是一样的. 本想细更一下这个内容,但细看完"参考资料1"后,我决定放弃 ...
- 压缩感知 compressive sensing(转)
信号处理新理论 采样定理(又称取样定理.抽样定理)是采样带限信号过 程所遵循的规律, 1928年由美国电信工程师H.奈奎斯特首先提出来的,因此称为奈奎斯特采样定理.1948年信息论的创始人C.E.香农 ...
最新文章
- JAVA sql2000 连接细节
- python字典经典例题_python 字典(Dictionary)的一些内置函数和经典例题
- YJX_rxjh_10_2.5.2
- 蒸发器分段设计matlab程序_制冷系统蒸发器过热度控制回路的MATLAB仿真_何煜
- 全平台硬件解码渲染方法与优化实践
- poj 2823 单调队列
- 佳鑫诺计算机模拟卷答案,微机原理练习册答案佳鑫诺).docx
- java发送QQ群邮件,简单两步使用node发送qq邮件
- mysql双向复制_MySQL 双向复制
- 队列,链队列,链式存储的队列
- R语言ggplot2画图3
- 读大师的书 说自己的话——《传世经典书丛评注版》邀你来点评
- 栈Stack的相关操作(java)
- 第四周项目1-三角形类的构造函数
- STM32F401CCU6 核心板的功能描述(针对采集数据)
- 新人如何顺利度过试用期,让你受益终身的几个技能
- 我的大学,被初恋女友甩了!
- vue滑杆_Vue无限滑杆组件
- 315线上知识竞赛答题活动方案及模板分享
- 淘宝SEO优化提高流量的绝密办法
热门文章
- C语言N台服务器通信,使用socket的Linux上的C语言文件传输顺序服务器和客户端示例程序 ....
- 设计模式 -行为型模式_ 观察者模式Observer Pattern 之 JDK内置的实现
- Apache Kafka-消费端_批量消费消息的核心参数及功能实现
- 方舟修改显示服务器个数,方舟生存进化服务器模式设置教程
- 交叉熵损失函数分类_交叉熵损失函数
- Docker-compose 安装Jenkins
- 深圳python如何评价_Python分析18万条《八佰》影评,看看观众怎么说?
- 使用java代码发送电子邮件
- Win10不能使用Genymotion模拟器的解决方案
- 郑州计算机技校哪个学校好,郑州十大技校排名 详细介绍