浅谈压缩感知(八):两篇科普文章
分享两篇来自科学松鼠会的科普性文章:
1、压缩感知与单像素相机(陶哲轩,Terence Tao)
原文链接:http://songshuhui.net/archives/11006
2、填补空白:用数学方法将低分辨率图像变成高分辨率图像(Jordan Ellenberg)
原文链接:http://songshuhui.net/archives/38054
英文名:Fill in the Blanks: Using Math to Turn Lo-Res Datasets Into Hi-Res Samples
英文链接:http://songshuhui.net/archives/35169
一、压缩感知与单像素相机
木遥按:这是数学家陶哲轩在他自己的blog上写的一篇科普文章,讨论的是近年来在应用数学领域里最热门的话题之一:压缩感知(compressed sensing)。所谓压缩感知,最核心的概念在于试图从原理上降低对一个信号进行测量的成本。比如说,一个信号包含一千个数据,那么按照传统的信号处理理论,至少需要做一千次测量才能完整的复原这个信号。这就相当于是说,需要有一千个方程才能精确地解出一千个未知数来。但是压缩感知的想法是假定信号具有某种特点(比如文中所描述得在小波域上系数稀疏的特点),那么就可以只做三百次测量就完整地复原这个信号(这就相当于只通过三百个方程解出一千个未知数)。可想而知,这件事情包含了许多重要的数学理论和广泛的应用前景,因此在最近三四年里吸引了大量注意力,得到了非常蓬勃的发展。陶哲轩本身是这个领域的奠基人之一(可以参考《陶哲轩:长大的神童》一文),因此这篇文章的权威性毋庸讳言。另外,这也是比较少见的由一流数学家直接撰写的关于自己前沿工作的普及性文章。需要说明的是,这篇文章是虽然是写给非数学专业的读者,但是也并不好懂,也许具有一些理工科背景会更容易理解一些。
【作者 Terence Tao;译者 山寨盲流,他的更多译作在这,那;校对 木遥】
最近有不少人问我究竟"压缩感知"是什么意思(特别是随着最近这个概念名声大噪),所谓“单像素相机”又是怎样工作的(又怎么能在某些场合比传统相机有优势呢)。这个课题已经有了大量文献,不过对于这么一个相对比较新的领域,还没有一篇优秀的非技术性介绍。所以笔者在此小做尝试,希望能够对非数学专业的读者有所帮助。
具体而言我将主要讨论摄像应用,尽管压缩传感作为测量技术应用于比成像广泛得多的领域(例如天文学,核磁共振,统计选取,等等),我将在帖子结尾简单谈谈这些领域。
相机的用途,自然是记录图像。为了简化论述,我们把图像假设成一个长方形阵列,比如说一个1024x2048像素的阵列(这样就总共是二百万像素)。为了省略彩色的问题(这个比较次要),我们就假设只需要黑白图像,那么每个像素就可以用一个整型的灰度值来计量其亮度(例如用八位整型数表示0到255,16位表示0到65535)。
接下来,按照最最简化的说法,传统相机会测量每一个像素的亮度(在上述例子中就是二百万个测量值),结果得到的图片文件就比较大(用8位灰度值就是2MB,16位灰度就是4MB)。数学上就认为这个文件是用超高维矢量值描绘的(在本例中就是约二百万维)。
在我开始讲“压缩感知”这个新故事之前,必须先快速回顾一下“老式压缩”的旧故事。(已经了解图像压缩算法的读者可以跳过这几段。)
上述的图片会占掉相机的很多存储空间(上传到计算机里还占磁盘空间),在各种介质之间传输的时候也要浪费时间。于是,相机带有显著压缩图像的功能就顺理成章了(通常能从2MB那么大压缩到十分之一——200KB的一小坨)。关键是尽管“所有图片”所构成的空间要占用2MB的“自由度”或者说“熵”,由“有意义的图片”所构成的空间其实要小得多,尤其是如果人们愿意降低一点图像质量的话。(实际上,如果一个人真的利用所有的自由度随机生成一幅图片,他不大可能得到什么有意义的图像,而是得到相当于电视荧屏上的静电雪花那样的随机噪声之类。)
怎么样压缩图像?方式多种多样,其中有些非常先进,不过我来试试用一种不太高科技的(而且也不太精确的)说法来描述一下这些先进技术。图像通常都含有大片无细节部分--比如在风景照里面,将近一半的画面都可能被单色的天空背景占据。我们假设提取一个大方块,比方说100x100像素,其中完全是同一颜色的——假设是全白的吧。无压缩时,这个方块要占10000字节存储空间(按照8位灰度算);但是我们可以只记录这个方块的维度和坐标,还有填充整个方块的单一颜色;这样总共也只要记录四五个字节,省下了可观的空间。不过在现实中,压缩效果没有这么好,因为表面看来没有细节的地方其实是有着细微的色差的。所以,给定一个无细节方块,我们记录其平均色值,就把图片中这一块区域抽象成了单色色块,只留下微小的残余误差。接下来就可以继续选取更多色彩可见的方块,抽象成单色色块。最后剩下的是亮度(色彩强度)很小的,肉眼无法察觉的细节。于是就可以抛弃这些剩余的细节,只需要记录那些“可见”色块的大小,位置和亮度。日后则可以反向操作,重建出比原始图像质量稍低一些,占空间却小得多的复制图片。
其实上述的算法并不适合处理颜色剧烈变动的情况,所以在实际应用中不很有效。事实上,更好的办法不是用均匀色块,而是用“不均匀”的色块——比方说右半边色彩强度平均值大于左半边这样的色块。这种情况可以用(二维)Haar小波系统来描述。后来人们又发现一种"更平滑的"小波系统更能够避免误差,不过这都是技术细节,我们就不深入讨论了。然而所有这些系统的原理都是相同的:把原始图像表示为不同“小波(类似于上文中的色块)”的线性叠加,记录显著的(高强度的)小波的系数,放弃掉(或者用阈值排除掉)剩下的小波系数。这种“小波系数硬阈值”压缩算法没有实际应用的算法(比如JPEG 2000标准中所定义的)那么精细,不过多少也能描述压缩的普遍原理。
总体来讲(也是非常简化的说法),原始的1024x2048图像可能含有两百万自由度,想要用小波来表示这个图像的人需要两百万个不同小波才能完美重建。但是典型的有意义的图像,从小波理论的角度看来是非常稀疏的,也就是可压缩的:可能只需要十万个小波就已经足够获取图像所有的可见细节了,其余一百九十万小波只贡献很少量的,大多数观测者基本看不见的“随机噪声”。(这也不是永远适用:含有大量纹理的图像--比如毛发、毛皮的图像——用小波算法特别难压缩,也是图像压缩算法的一大挑战。不过这是另一个故事了。)
接下来呢,如果我们(或者不如说是相机)事先知道两百万小波系数里面哪十万个是重要的,那就可以只计量这十万个系数,别的就不管了。(在图像上设置一种合适的“过滤器”或叫“滤镜”,然后计量过滤出来的每个像素的色彩强度,是一种可行的系数计量方法。)但是,相机是不会知道哪个系数是重要的,所以它只好计量全部两百万个像素,把整个图像转换成基本小波,找出需要留下的那十万个主导基本小波,再删掉其余的。(这当然只是真正的图像压缩算法的一个草图,不过为了便于讨论我们还是就这么用吧。)
那么,如今的数码相机当然已经很强大了,没什么问题干吗还要改进?事实上,上述的算法,需要收集大量数据,但是只需要存储一部分,在消费摄影中是没有问题的。尤其是随着数据存储变得很廉价,现在拍一大堆完全不压缩的照片也无所谓。而且,尽管出了名地耗电,压缩所需的运算过程仍然算得上轻松。但是,在非消费领域的某些应用中,这种数据收集方式并不可行,特别是在传感器网络中。如果打算用上千个传感器来收集数据,而这些传感器需要在固定地点呆上几个月那么长的时间,那么就需要尽可能地便宜和节能的传感器——这首先就排除了那些有强大运算能力的传感器(然而——这也相当重要——我们在接收处理数据的接收端仍然需要现代科技提供的奢侈的运算能力)。在这类应用中,数据收集方式越“傻瓜”越好(而且这样的系统也需要很强壮,比如说,能够忍受10%的传感器丢失或者各种噪声和数据缺损)。
这就是压缩传感的用武之地了。其理论依据是:如果只需要10万个分量就可以重建绝大部分的图像,那何必还要做所有的200万次测量,只做10万次不就够了吗?(在实际应用中,我们会留一个安全余量,比如说测量30万像素,以应付可能遭遇的所有问题,从干扰到量化噪声,以及恢复算法的故障。)这样基本上能使节能上一个数量级,这对消费摄影没什么意义,对传感器网络而言却有实实在在的好处。
不过,正像我前面说的,相机自己不会预先知道两百万小波系数中需要记录哪十万个。要是相机选取了另外10万(或者30万),反而把图片中所有有用的信息都扔掉了怎么办?
解决的办法简单但是不太直观。就是用非小波的算法来做30万个测量——尽管我前面确实讲过小波算法是观察和压缩图像的最佳手段。实际上最好的测量其实应该是(伪)随机测量——比如说随机生成30万个“滤镜”图像并测量真实图像与每个滤镜的相关程度。这样,图像与滤镜之间的这些测量结果(也就是“相关性”)很有可能是非常小非常随机的。但是——这是关键所在——构成图像的2百万种可能的小波函数会在这些随机的滤镜的测量下生成自己特有的“特征”,它们每一个都会与某一些滤镜成正相关,与另一些滤镜成负相关,但是与更多的滤镜不相关。可是(在极大的概率下)2百万个特征都各不相同;更有甚者,其中任意十万个的线性组合仍然是各不相同的(以线性代数的观点来看,这是因为一个30万维线性子空间中任意两个10万维的子空间极有可能互不相交)。因此,基本上是有可能从这30万个随机数据中恢复图像的(至少是恢复图像中的10万个主要细节)。简而言之,我们是在讨论一个哈希函数的线性代数版本。
然而这种方式仍然存在两个技术问题。首先是噪声问题:10万个小波系数的叠加并不能完全代表整幅图像,另190万个系数也有少许贡献。这些小小贡献有可能会干扰那10万个小波的特征,这就是所谓的“失真”问题。第二个问题是如何运用得到的30万测量数据来重建图像。
我们先来关注后一个问题。如果我们知道了2百万小波中哪10万个是有用的,那就可以使用标准的线性代数方法(高斯消除法,最小二乘法等等)来重建信号。(这正是线性编码最大的优点之一——它们比非线性编码更容易求逆。大多数哈希变换实际上是不可能求逆的——这在密码学上是一大优势,在信号恢复中却不是。)可是,就像前面说的那样,我们事前并不知道哪些小波是有用的。怎么找出来呢?一个单纯的最小二乘近似法会得出牵扯到全部2百万系数的可怕结果,生成的图像也含有大量颗粒噪点。要不然也可以代之以一种强力搜索,为每一组可能的10万关键系数都做一次线性代数处理,不过这样做的耗时非常恐怖(总共要考虑大约10的17万次方个组合!),而且这种强力搜索通常是NP完备的(其中有些特例是所谓的“子集合加总”问题)。不过还好,还是有两种可行的手段来恢复数据:
• 匹配追踪:找到一个其标记看上去与收集到的数据相关的小波;在数据中去除这个标记的所有印迹;不断重复直到我们能用小波标记“解释”收集到的所有数据。
• 基追踪(又名L1模最小化):在所有与录得数据匹配的小波组合中,找到一个“最稀疏的”,也就是其中所有系数的绝对值总和越小越好。(这种最小化的结果趋向于迫使绝大多数系数都消失了。)这种最小化算法可以利用单纯形法之类的凸规划算法,在合理的时间内计算出来。
需要注意到的是,这类图像恢复算法还是需要相当的运算能力的(不过也还不是太变态),不过在传感器网络这样的应用中这不成问题,因为图像恢复是在接收端(这端有办法连接到强大的计算机)而不是传感器端(这端就没办法了)进行的。
现在已经有严密的结果显示,对原始图像设定不同的压缩率或稀疏性,这两种算法完美或近似完美地重建图像的成功率都很高。匹配追踪法通常比较快,而基追踪算法在考虑到噪声时则显得比较准确。这些算法确切的适用范围问题在今天仍然是非常热门的研究领域。(说来遗憾,目前还没有出现对P不等于NP问题的应用;如果一个重建问题(在考虑到测量矩阵时)是NP完备的,那它刚好就不能用上述算法解决。)
由于压缩传感还是一个相当新的领域(尤其是严密的数学结果刚刚出现),现在就期望这个技术应用到实用的传感器上还为时尚早。不过已经有概念验证模型出现了,其中最著名的是Rice大学研制的单像素相机。
最后必须提到的是,压缩传感技术是一种抽象的数学概念,而不是具体的操作方案,它可以应用到成像以外的许多领域。以下只是其中几个例子:
• 磁共振成像(MRI)。在医学上,磁共振的工作原理是做许多次(但次数仍是有限的)测量(基本上就是对人体图像进行离散拉东变换(也叫X光变换)),再对数据进行加工来生成图像(在这里就是人体内水的密度分布图像)。由于测量次数必须很多,整个过程对患者来说太过漫长。压缩传感技术可以显著减少测量次数,加快成像(甚至有可能做到实时成像,也就是核磁共振的视频而非静态图像)。此外我们还可以以测量次数换图像质量,用与原来一样的测量次数可以得到好得多的图像分辨率。
• 天文学。许多天文现象(如脉冲星)具有多种频率震荡特性,使其在频域上是高度稀疏也就是可压缩的。压缩传感技术将使我们能够在时域内测量这些现象(即记录望远镜数据)并能够精确重建原始信号,即使原始数据不完整或者干扰严重(原因可能是天气不佳,上机时间不够,或者就是因为地球自传使我们得不到全时序的数据)。
• 线性编码。压缩传感技术提供了一个简单的方法,让多个传送者可以将其信号带纠错地合并传送,这样即使输出信号的一大部分丢失或毁坏,仍然可以恢复出原始信号。例如,可以用任意一种线性编码把1000比特信息编码进一个3000比特的流;那么,即使其中300位被(恶意)毁坏,原始信息也能完全无损失地完美重建。这是因为压缩传感技术可以把破坏动作本身看作一个稀疏的信号(只集中在3000比特中的300位)。
许多这种应用都还只停留在理论阶段,可是这种算法能够影响测量和信号处理中如此之多的领域,其潜力实在是振奋人心。笔者自己最有成就感的就是能看到自己在纯数学领域的工作(例如估算傅立叶子式的行列式或单数值)最终具备造福现实世界的前景。
二、填补空缺——压缩感知
红猪按(by 木遥)
压缩感知是近年来极为热门的研究前沿,在若干应用领域中都引起瞩目。关于这个题目,松鼠会已经翻译了两篇文章,一篇来自于压缩感知技术最初的研究者陶哲轩(链接),一篇来自威斯康辛大学的数学家艾伦伯格(本文正文)。这两篇文章都是普及性的,但是由于作者是专业的研究人员,所以事实上行文仍然偏于晦涩。因此我不揣冒昧,在这里附上一个画蛇添足的导读,以帮助更多的读者更好了解这个新颖的研究领域在理论和实践上的意义。
压缩感知从字面上看起来,好像是数据压缩的意思,而实则出于完全不同的考虑。经典的数据压缩技术,无论是音频压缩(例如 mp3),图像压缩(例如 jpeg),视频压缩(mpeg),还是一般的编码压缩(zip),都是从数据本身的特性出发,寻找并剔除数据中隐含的冗余度,从而达到压缩的目的。这样的压缩有两个特点:第一、它是发生在数据已经被完整采集到之后;第二、它本身需要复杂的算法来完成。相较而言,解码过程反而一般来说在计算上比较简单,以音频压缩为例,压制一个 mp3 文件的计算量远大于播放(即解压缩)一个 mp3 文件的计算量。
稍加思量就会发现,这种压缩和解压缩的不对称性正好同人们的需求是相反的。在大多数情况下,采集并处理数据的设备,往往是廉价、省电、计算能力较低的便携设备,例如傻瓜相机、或者录音笔、或者遥控监视器等等。而负责处理(即解压缩)信息的过程却反而往往在大型计算机上进行,它有更高的计算能力,也常常没有便携和省电的要求。也就是说,我们是在用廉价节能的设备来处理复杂的计算任务,而用大型高效的设备处理相对简单的计算任务。这一矛盾在某些情况下甚至会更为尖锐,例如在野外作业或者军事作业的场合,采集数据的设备往往曝露在自然环境之中,随时可能失去能源供给或者甚至部分丧失性能,在这种情况下,传统的数据采集-压缩-传输-解压缩的模式就基本上失效了。
压缩感知的概念就是为了解决这样的矛盾而产生的。既然采集数据之后反正要压缩掉其中的冗余度,而这个压缩过程又相对来说比较困难,那么我们为什么不直接「采集」压缩后的数据?这样采集的任务要轻得多,而且还省去了压缩的麻烦。这就是所谓的「压缩感知」,也就是说,直接感知压缩了的信息。
可是这看起来是不可能的事情。因为压缩后的数据并不是压缩前的数据的一个子集,并不是说,本来有照相机的感光器上有一千万个像素,扔掉其中八百万个,剩下的两百万个采集到的就是压缩后的图像,──这样只能采集到不完整的一小块图像,有些信息被永远的丢失了而且不可能被恢复。如果要想采集很少一部分数据并且指望从这些少量数据中「解压缩」出大量信息,就需要保证:第一:这些少量的采集到的数据包含了原信号的全局信息,第二:存在一种算法能够从这些少量的数据中还原出原先的信息来。
有趣的是,在某些特定的场合,上述第一件事情是自动得到满足的。最典型的例子就是医学图像成像,例如断层扫描(CT)技术和核磁共振(MRI)技术。对这两种技术稍有了解的人都知道,这两种成像技术中,仪器所采集到的都不是直接的图像像素,而是图像经历过全局傅立叶变换后的数据。也就是说,每一个单独的数据都在某种程度上包含了全图像的信息。在这种情况下,去掉一部分采集到的数据并不会导致一部分图像信息永久的丢失(它们仍旧被包含在其它数据里)。这正是我们想要的情况。
上述第二件事就要归功于陶哲轩和坎戴的工作了。他们的工作指出,如果假定信号(无论是图像还是声音还是其他别的种类的信号)满足某种特定的「稀疏性」,那么从这些少量的测量数据中,确实有可能还原出原始的较大的信号来,其中所需要的计算部分是一个复杂的迭代优化过程,即所谓的「L1-最小化」算法。
把上述两件事情放在一起,我们就能看到这种模式的优点所在。它意味着:我们可以在采集数据的时候只简单采集一部分数据(「压缩感知」),然后把复杂的部分交给数据还原的这一端来做,正好匹配了我们期望的格局。在医学图像领域里,这个方案特别有好处,因为采集数据的过程往往是对病人带来很大麻烦甚至身体伤害的过程。以 X 光断层扫描为例,众所周知 X 光辐射会对病人造成身体损害,而「压缩感知」就意味着我们可以用比经典方法少得多的辐射剂量来进行数据采集,这在医学上的意义是不言而喻的。
这一思路可以扩展到很多领域。在大量的实际问题中,我们倾向于尽量少地采集数据,或者由于客观条件所限不得不采集不完整的数据。如果这些数据和我们所希望重建的信息之间有某种全局性的变换关系,并且我们预先知道那些信息满足某种稀疏性条件,就总可以试着用类似的方式从比较少的数据中还原出比较多的信号来。到今天为止,这样的研究已经拓展地非常广泛了。
但是同样需要说明的是,这样的做法在不同的应用领域里并不总能满足上面所描述的两个条件。有的时候,第一个条件(也就是说测量到的数据包含信号的全局信息)无法得到满足,例如最传统的摄影问题,每个感光元件所感知到的都只是一小块图像而不是什么全局信息,这是由照相机的物理性质决定的。为了解决这个问题,美国 Rice 大学的一部分科学家正在试图开发一种新的摄影装置(被称为「单像素照相机」),争取用尽量少的感光元件实现尽量高分辨率的摄影。有的时候,第二个条件(也就是说有数学方法保证能够从不完整的数据中还原出信号)无法得到满足。这种时候,实践就走在了理论前面。人们已经可以在算法上事先很多数据重建的过程,但是相应的理论分析却成为了留在数学家面前的课题。
但是无论如何,压缩感知所代表的基本思路:从尽量少的数据中提取尽量多的信息,毫无疑问是一种有着极大理论和应用前景的想法。它是传统信息论的一个延伸,但是又超越了传统的压缩理论,成为了一门崭新的子分支。它从诞生之日起到现在不过五年时间,其影响却已经席卷了大半个应用科学。
译者:Armeny 原文 校对:拟南芥、剃刀、木遥
扩展阅读:数字图像的压缩与恢复/奥卡姆剃刀
2009年早春,斯坦福大学露西尔·帕卡德儿童医院的一组医生把一名两岁男孩送进磁共振成像[f1] 扫描仪。这个将被我称为布赖斯的男孩身处巨洞般的金属仪器中,看上去是那么弱小无助。他被施以全身麻醉,一根弯弯曲曲的管子从他的咽喉联接到扫描仪傍的呼吸机上。十个月前, 布赖斯接受了肝脏移植术,来自捐献者的部分肝脏取代了他自己的已坏死的肝脏。他的康复情况一度不错。但是,最近的实验室测试结果令人担忧,他的身体出现了问题——可能一条或者全部的两条胆管被堵住了。
帕卡德医院的儿童放射科医生施里亚斯·瓦萨纳瓦拉需要高精度的扫描结果来告诉他问题出在哪,但是这将意味着他的小病人在扫描过程中不得不保持绝对静止。哪怕布赖斯只是呼吸了一次,成像结果都会变得模糊。要避免上述情况,就需要进行足够深的麻醉让病人停止呼吸。进行一次标准的磁共振成像检测需要两分钟时间,但如果麻醉师真的让布赖斯在这么长时间里停止呼吸,那么带来的问题将远远超过他肝脏的小毛病。
不过,瓦萨纳瓦拉和他的电子工程师同事迈克尔·勒斯蒂格打算使用一种快得多的新扫描方法,名曰“压缩感知”。这种技术可能是当今应用数学界最热门的话题了。未来,它可能会改变我们寻找遥远星系的方式。而现在,这种技术使得瓦萨纳瓦拉和勒斯蒂格只需要40秒就可以采集到精确重建布赖斯肝脏图像所需的数据。
压缩感知的发现纯属偶然。2004年2月,伊曼纽尔·坎迪斯正在自己的电脑上看着Shepp-Logan图像(译注:这是医学图像处理领域用来进行仿真测试的标准模拟图像,由一些大大小小的椭圆模拟生物器官)打发时间。这幅通常被计算机科学家和工程师用于测试成像算法的标准图像,看起来就像《第三类接触》里那个搞笑地将眉毛扬起的外星人。坎迪斯,斯坦福大学教授,曾在加州理工学院工作过,打算用一个严重失真的模型图像作为磁共振成像仪不能精确扫描而产生的非清晰图像来进行实验。他想到一种名为L1(校对注:这里虽然原文用的是小写,但是在中文上下文中用小写则极易同11混淆,而数学上这里大小写都可以用)范数极小化的数学技术可能有助于清除小部分斑痕。他按下一个键,算法运行起来了。
坎迪斯希望屏幕上的模型图像变得稍微清晰一些。但是,他突然发现用残缺的数据渲染出来的图像是那么细腻完美,对每个细节而言都是如此,这简直就像变魔术一样。太不可思议了,他认为。“这就好像,你给了我十位银行账号的前三位,然后我能够猜出接下来的七位数字。”他说。他尝试在不同类型的模型图像上重新进行这个实验,结果都非常好。
在博士后贾斯廷·龙伯格的帮助下,坎迪斯提出了一个粗略的理论。之后,他在黑板上向加州大学洛杉矶分校的同事陶哲轩介绍了自己的理论。坎迪斯在结束讨论离开的时候觉得陶哲轩对此持怀疑态度,毕竟,图像清晰度的提高也太离谱了。然而,第二天晚上,陶哲轩给坎迪斯送去关于他们之前讨论的问题的一叠笔记。这叠笔记为他们共同发表的第一篇论文奠定了基础。在随后的两年中,他们写了更多文章。
上面介绍的是压缩感知技术的开端,这个数学界的全新领域改变了人们处理大规模数据集的方式。仅仅六年时光,它为上千篇论文提供了灵感,吸引了数百万美元的联邦基金。2006年,坎迪斯在这一领域内的工作为他赢得了奖金值50万美元的沃特曼奖,这是美国国家科学基金授予研究者的最高荣誉。其原因是显而易见的。想象一下,磁共振成像仪可以在几秒钟的时间里生成原本需要花费一个小时才能生成的图像;军用软件截获敌方通信的能力得到极大加强;传感器能够解析遥远星际的无线电波。突然之间,数据的采集、操作以及解析都变得容易了。
压缩感知的原理是这样的:你有一张图片,假设是总统的肾脏图片,这不是关键。图片由一百万个像素构成。对传统成像来说,你不得不进行一百万次量度。而采用压缩感知技术,你只需要量度一小部分,好比说从图像的不同部分随机抽取十万个像素。从这里开始,有大量的实际上是无穷多的方式填充那剩余的九十万个像素点。
寻找那个唯一正确的表示方式的关键在于一种叫稀疏度的概念。所谓稀疏度,是描述图像的复杂性或者其中所缺的一种数学方法。一幅由少数几个简单、可理解的元素(例如色块或者波浪线构成的图片)是稀疏的;满屏随机、散乱的点阵则不是稀疏的。原来在无限多的可能性中,最简单、最稀疏的那幅图像往往就是正解,至少很接近正解。
但是,怎样进行数字运算,才能快速获得最稀疏的图像呢?分析所有可能的情况太费时间。然而,坎迪斯和陶哲轩知道最稀疏的图像是用最少的成分构成的,并且,他们可以用L1范数极小化技术迅速找到它。
这样,在输入不完整的图像后,算法开始试着用大色块来填充空白区。如果有一团绿色的像素点聚集在一起,算法可能会用一个大的绿色矩形填充它们之间的空间;而如果是一团黄色的像素点,那么就用黄色的矩形来填充。在不同颜色交错散布的区域,算法会使用越来越小的矩形或其他形状填充各种颜色之间的空间。算法会重复这样的过程,最终,得到一幅由最少的可能的色块构成的图像,它的一百万像素都已被彩色填满。
并不能绝对保证这样的图像就是最稀疏的,或者正是你所试图重建的那个。但是坎迪斯和陶哲轩已经从数学上证明了,它的错误率是无穷小的。算法运行可能还是需要几个小时,但是,让电脑多跑一个小时,总好过让孩子在额外的一分钟里停止呼吸。
压缩感知已经产生了令人惊叹的科学影响。这是因为每一个有趣的信号都是稀疏的,只要你能够正确定义它的稀疏性。例如,钢琴和弦的乐音是一小组不超过五个纯音符的组合。在所演奏的音频中,只有少部分频率包含有效的音乐信息,而其余大部分频段是一片无声地带。因此,你可以用压缩感知技术从“欠采样”的老旧唱片中重建出当时的乐章,而不用担心失去了由特定频率构成的声波的信息。只需要你手头的材料,就可以用L1范数极小化法以稀疏方式填补空白,从而获得与原音一般无二的旋律。
带着建筑师式的眼睛,顶着略显蓬松的头发,坎迪斯散发着时尚极客的气息。这个39岁的法国人语气温和,但是面对他认为不达标的事情绝不妥协。“不,不,他说的没有道理。”当我提到压缩感知领域某个和他有些观点有着细小差别的专家的工作时,他如是说,“不,不,不,不。那没有道理,没道理,是错的。”
坎迪斯曾经预见,将来会有大量应用技术是以他的研究成果作为理论基础的。他举例说道,在未来,这项技术不会仅仅用在磁共振成像仪上。例如,数码相机收集了大量信息,然后压缩图像。但是,至少在压缩感知技术可用的情况下,压缩是一种极大的浪费。如果你的相机记录了大量的数据,却在压缩时丢弃了其中的90%,那么为什么不在一开始就只记录10%的数据从而节省电池电量和内存?对于您的孩子的数码快照,费电可能没什么大不了,你只要插上电源为相机充电就可以了。“但是,当废电池多到可以环绕木星,”坎迪斯说,“结果就不是那么简单了”。同样,如果你希望自己的相机能够拍摄万亿像素的照片而不是几百万像素,你就必须使用压缩感知技术。
从信息的小样本中收集有用数据的能力也引起了军方的重视:比如,敌方通信可能从一个频率跳到另一个频率。但是,还没有一种硬件设备能以足够快的速度扫描整个频域。但是无论在什么情况下,对手的信号都是稀疏的,是由频段内极少数的某种简单信号构成的,出现在一些相对较小却未知的频段。这意味着压缩感知可以用来从“噼啵”声中区分来自任意波段的敌人的交谈。所以不出意外的,美国国防部先进计划研究署正在支持压缩感知技术的研究。
压缩感知不仅可以用于解决现在的技术难题。将来,它还将帮助我们处理已存储的大量信息。每天,全世界都要产生数不清的数据,我们希望这些数据安全、有效、可恢复地保存起来。目前,我们大部分的视听信息都是用复杂的压缩格式存储起来的。如果有一天,这种格式被淘汰了,你不得不进行痛苦的格式转换。但是坎迪斯相信,在拥有压缩感知技术的未来,对于采用高成本红外技术拍摄的天文图像,只需要拍摄到20%的像素就可以了。因为我们一开始就只记录了极少部分的数据,所以不需要再进行压缩。那么我们只需要逐步改进数据的解析算法,而不是数据的压缩算法,就可以精确地恢复出原始图像了。
上面说的都是将来的事情。今天,压缩感知技术已经改写了我们获取医学信息的方式。在GE医疗集团的参与下,威斯康辛大学的一个研究小组正在把压缩感知技术与HYPR和VIPR技术结合,以提高特定种类磁共振扫描的速度,在某种情况下可以达到原来的几千倍。(我是这所大学的教员,但是没有参与这项研究。)GE医疗集团还在实验一种新的方法,有希望利用压缩感知技术大大改善对癌症病人代谢动力学的观测。同时,帕卡德医院应用了压缩感知技术,使磁共振成像仪的图像记录速度提升为传统扫描仪的三倍。
这对于两岁的布赖斯来说恰好够用。瓦萨纳瓦拉在控制室发出工作信号,麻醉师给男孩注射了一点镇静剂,然后关掉了呼吸机。男孩的呼吸立刻停止了。瓦萨纳瓦拉开始扫描,而麻醉师监视着布赖斯的心率和血氧水平。40秒钟之后,扫描结束,布赖斯没有出现明显的缺氧情况。当天晚些时候,压缩感知算法从粗略的扫描中生成了清晰的图像,能让瓦萨纳瓦拉看清双侧胆管的堵塞情况。一名介入放射科医生将一根弯曲的导线依次插入双侧胆管中,轻轻清除淤塞,并为男孩安装了让胆汁恰当流出的细小导管。正是数学与医学的结合,才使得布赖斯的检测结果又恢复了正常。
原文作者:
Jordan Ellenberg (ellenber@math.wisc.edu), 是威斯康辛大学的数学副教授。原文发表在《连线》杂志三月号上。
数学怎样得出那些颗粒:压缩感知技术是一种从低分辨率样本中重建高精度数据的数学工具。它可以用来重现古老的音乐录音、寻找敌人的无线电信号,并更加迅速地完成磁共振成像。这里展示的是它如何处理照片。
[f1]坚持用‘磁共振’的原因:1)MRI直译就是磁共振成像;2)现代人谈‘核’色变,而传统‘核磁共振’中的‘核’其实指的是原子核。因为‘核磁共振’这个名字让我们在招募fMRI实验被试时困难重重……赶明儿打算写个磁共振成像原理给大家做科普,希望以后招被试容易些……