相信搞过数据处理的都遇到这样的公式:
一开始我也是一头雾水,看了很多解释,就是弄不明白为什么要这么写,最近在看SVD的时候将投影联系起来,恍然大悟,可能讲不明白,但是借用一下我老师的一句话:不管你们明白不明白,反正我是明白了。
投影: 在脑子里刻画一下,一个经典的题目:在三维坐标系下,求一个向量x在x-y平面上的投影。这不是手到擒来嘛?把x的z轴分量去掉就行了,没错,就是这么简单,但是现在我们要把简单的事情标准化,让其普适起来。联想傅里叶变换,我们利用傅氏变换与反变换可以去掉一些噪声,或者简单理解,就是用基频和高次谐频信号的线性组合来表示原始信号x,这样,x就处在了傅里叶正交基张成的空间内。这就可以表示为,将这些正弦信号作为列向量组成矩阵U,那么傅里叶变换就是F(x)=,就这么理解,傅里叶变换的每一个值就是信号与这个频率的正弦波的相关系数。因此,我们求得了m个系数,m就是正弦波的个数,也即U的列数。因此x在U上的投影,就是这些正弦波的线性组合,所以,简单的
这就是x的投影。
傅里叶的基都是标准正交基,也就是任何一个向量的自相关系数是1,而互相关系数为0。对于普通的矩阵A,这显然很难满足,因此,做投影的时候,我们先假装A满足,先求x在A上的投影,发现事情不对劲,我们需要对这个系数进行标准化,也就是对应列的系数需要除以对应列的模值,这个模值不就是
嘛,也就是A的自相关矩阵。不过对于标准化
这个系数来说,这个
是方差,多除了一个模值,其实并不是,这个多除的模值,是给矩阵A准备的,因为A不是标准的,在A的列向量张成空间上投影,首先自己也得标准化,那多除以一个模值就对了。所以整个的投影过程是
SVD分解之所以是奇异值分解,是因为它不管A是什么,一样搞。
分解出来的U是原始信号域的标准正交基,V是变换后的新标准正交基,这样,将A进行SVD分解后,利用得到U,就可以将投影过程
简化为
像傅里叶变换一样。
与傅里叶变换不同的是,这里的标准正交基与原始数据有关,基本上不会是正弦信号。这可以说是一种优势,也可以说是一种劣势。因为SVD利用信号自身特点可以将信号完整的表示而不会引入多余的分量,而傅里叶正交基在表示非平稳非线性信号时往往为了拟合跳跃点而引入很多原本不存在的频率分量;而在某些领域,频率依旧是很多特征的基础,傅里叶变换得出的结果具有可解释性,然而SVD得到的结果跟随信号特点不断变化,因而很难进行统一解释。