稀疏表达(稀疏编码)的一些理解
我们已经进入的大数据时代,正如http://tech.sina.com.cn/it/2012-06-01/00067200478.shtml一文中所讲述的,大数据正在悄然改变我们的生活,随之而来的一个问题是我们将如何有效地处理这些大数据,稀疏表达是一种应对这个问题当前比较流行的方法。
稀疏表达将原始信号表达为字典元素的一个线性组合,如 x = D*a中,我们用x表示原始信号(列向量),D为我们得到的字典(dictionary),a即为在字典D上原始信号x的表达,通常我们希望a是稀疏的,即其中只有较少的非零项,这样的一个突出优点是计算速度更快,因为matlab只对非零元素进行操作。那么我们如何得到字典D呢? 针对计算机视觉应用领域,之前比较流行的方法DCT,wavelets,curvelets,contourlets,wedgelets,bandlets,steerable wavelets等,这些方法得到的字典都是预先设定好的,手动设定一个好的字典是非常困难的,并且其复杂度和几何特性在表征不同信号时变化很大,如何自适应地得到字典呢?PCA方法就是其中的一个代表。PCA方法通过学习的方式,计算正交的主方向,通过将原始信号表示在以主方向为基准的空间上,使问题得到简化。但是PCA对字典中”基“(basis)要求太苛刻,它们必须是正交的,虽然此限制可以简化问题,但同时限制了解决问题的灵活性——稀疏表达的思想应运而生。
事情可以追溯到1993年,Stephane Mallat和Zhifeng Zhang提出了字典的概念,改进了传统的、缺乏灵活性的小波变换(wavelet transform)的概念,同时贪婪追踪(greedy pursuit)技术被引入到字典构建中来。1995年,统计学的大牛Scott Shaobing、David Donoho和Michael Saunders提出了另外一种追踪技术,其中使用到了L1范数,将字典学习任务转化成了凸规划(convex programming)。2001年,Donoho和Huo提出了在稀疏表达任务中至关重要的一个问题:如何保证追踪技术的成功?在什么条件下?并提出了一些具有启发性的见解。之后的一段时间里,稀疏表达思想如雨后春笋,迅速扩散到涉及到数据处理的各个领域,其中workshops, sessions, conferences, papers等起到了至关重要的作用。由于此领域处在信号处理(signal processing)和应用数学(applied mathematics)的交叉地带,活跃在此领域的是对近似理论(approximation theory)情有独钟的数学家们。2006年,Emmanuel Candes、Justin Romberg、Terence Tao和David Donoho等提出和完善了压缩感知(compressed sensing)的概念,作为稀疏表达的一个分支,压缩感知向传统的奈奎斯特-香农(Nyquist-Shannon)抽样定理发起了挑战,其可以极大地降低抽样频率。由上面的发展历程可以看出,稀疏表达作为一个年轻领域,其中有大量的“宝藏”等待我们去发掘。