稀疏性:信号稀疏 矩阵稀疏 稀疏的发展史

作者:过拟合
链接:https://www.zhihu.com/question/26602796/answer/36470745
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 

在最初,稀疏性自然地产生于信号处理领域,因为自然界中的信号低频居多,高频部分基本都是噪声,因此使用小波或傅立叶做基矩阵时,表达系数往往只在几个低频的基上比较大,而高频的基所对应的系数基本都接近零。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统计系。
事实上,这个领域的经典文章大部分也都出自这里。

猜你喜欢

转载自blog.csdn.net/a493823882/article/details/104542031