稀疏表达的意义在于?为什么稀疏表达得到广泛的应用?

关注者
1,038
被浏览
253,504

10 个回答

在最初,稀疏性自然地产生于信号处理领域,因为自然界中的信号低频居多,高频部分基本都是噪声,因此使用小波或傅立叶做基矩阵时,表达系数往往只在几个低频的基上比较大,而高频的基所对应的系数基本都接近零。Donoho等人为此提出了对表达系数做soft-thresholding,去掉高频分量,从而能滤掉噪声提升信号恢复效果。由于这些基矩阵是正交的,可以证明\min\|y-Ax\|_2^2+\lamba\|x\|_1的解为对A'y做soft-thresholding。后来人们脱离信号处理的背景,开始考虑一般性的基矩阵A,并把上面的问题当作对最小二乘的正则化来考虑,从而引出了LASSO(Tibshirani),以及压缩感知(Candes)等人的工作。

事实上对最小二乘做l2正则化早已有之(Stein, 1956

James

),因此考虑l1正则化也是一个自然的思路。这类正则化背后的基本原则都是bias-variance tradeoff,即降低模型复杂度,虽然牺牲一点bias,但通过大大降低variance而从整体上提升预测精度。这在高维问题(high variance)中是非常常用的手段,这种手法甚至几乎贯穿了整本

Elements of Statistical Learning: data mining, inference, and prediction. 2nd Edition.

。l1正则化的另一个新意在于引入了稀疏性,从而给模型带来了解释性(Model interpretability),即根据非零系数所对应的基的实际意义来解释模型的实际意义(例如

Face Recognition via Sparse Representation

)。注意,利用l2等传统方法可以得到大量很小的系数,似乎可以额外做一步截断来获得大量为零的系数。但需要强调的是:零和非零的小数有本质区别。因为首先要确定什么才是足够小,这一点就相当于引入额外的参数(即截断阈值),带来额外的误差(实际中要人工调整这个截断阈值)。系数也可能有不同的scale,有的时候0.001实际是很大的系数却被截断了,而有的时候0.1实际是很小却被留下了。另外,有的求解算法要引入一些数值计算上的近似策略,使得实际得到的小系数实际上有可能是数值计算不稳定所造成的,这就更难以区分到底其实际为零还是非零。而l1的解,零与非零是确切的,用LARS等方法画出解随lambda变化的图甚至都能看到在lambda取到某些值时某些系数开始从零变为非零。这可以说是一个优势。

2006年以后,稀疏表示产生了几个有趣的新思路。一是将系数的稀疏性,拓展到矩阵奇异值的稀疏性上。如果矩阵是一行行(或一列列)数据构成的,那么其非零奇异值个数就是数据真正所在的低维子空间的维数。传统的PCA方法即源自于此,通过观察奇异值下降的曲线,做个人工的截断来判断降维的维数(因此可以看作Donoho那种思路在矩阵上的对应版本)。Candes等人提出了Robust PCA,通过对矩阵施加奇异值的稀疏性(从l1变成了nuclear norm)来自动学得降维的维数,同时还能对原始矩阵去噪(可以看我写的另一个答案

如何理解矩阵的「秩」? - 过拟合的回答

)。这也引出了另一个新思路:一般来说数据矩阵可能存在野点,即少部分行被污染了,因此可以求取某个行稀疏的野点矩阵,来“净化”原始矩阵。这里稀疏性就是施加在待求解的野点矩阵上。还有一个新思路是Zou & Hastie提出的Sparse PCA,其大意是对loading vector施加稀疏性,从而可以对主成分做模型解释。总的来说,这个领域的人现在基本都在矩阵上搞新思路(有些人甚至开始玩更高阶的张量了)。

值得一提的是,本文提到的所有人物,均出自stanford统计系。

事实上,这个领域的经典文章大部分也都出自这里。

July 7, 2015更新。

之前的答案说的的压缩是sparse representation的第一个用处。因为相比于dimension reduction,sparsity的条件更加general,因此往往具有更大的压缩空间。关于dimensionality reduction和sparsity的对比和关系,可以参见我的回答:

为什么sparse representation比起其它成分分析方法(DFT,Wavelet)能得到更好的效果? - Bihan Wen 的回答

第二的用处更加有意义,就是作为自然信号的regularizer(约束器)

这里提出一个问题:什么样的信号才是自然信号(Natural Signal),例如自然图片,语音,视频,医疗图像?什么样的信号才是有”有意义“的?

我们在解决inverse problem(逆问题)的时候,例如要想从一切损坏或者噪声中把他们提取出来,例如denoising, inpainting, classification, compressed sensing等等应用,这本身是一个ill-posed question。或者你可以想象成在接一组不定方程,如果不加约束的话,会出现很多满足条件的解,并且你无法判断某一个解比其他解更加合适。

所以我们需要一个regularizer,作为这些想要的信号的固有模型。而稀疏表达被广泛地使用来作为自然信号的regularizer:认为这些信号都具有某个域(domian)或者某组基(bases, 或者dictionary)下的sparse representation。不具备如此特性的认为是noise, distortion, non-desirable solution...等这些可以被排除掉。

根据答主所知道的情况,并没有很明显的数学解释,可以证明稀疏性是自然信号的最佳约束。因为我们本身就缺乏对自然信号的约束:比如如何定义natural image?什么样的图才能叫是natural的?

实际应用里面,sparsity也只是已知的很多regularizer中的一种,但被广泛地证明有效。据我所知和工作实验中的感觉,sparsity在unsupervised learning中是极少的被显示出来广泛有效的prior information。另外在医疗成像中,这种sparse regularizer(关于这个regularizer是linear还是non-linear,要看如何定义,感谢

@rc du

和@Kevin Sun的指正)也是被广泛使用。

这里就不引用相关文献了,仅做科普使用。

排名第一的答案提到了compressed sensing和l1范数,值得指出的是,compressed sensing只是稀疏表达的用处之一。不过确实,稀疏表达在compressed sensing的概念被提出之后,获得了广泛的关注。

然后l1范数只是获得sparsity的约束之一,而最原始的regularizer应该是使用l0范数,直接限定non-zeros的个数。而问题在于l0会到处优化问题成为non-convex的,l1有些情况下可以巧妙地解决这一问题,从而获得解法的performance guarantee。