奇异值分解(SVD)原理总结

594f49daba7545d22042fc4366a4b635.png

本文约2300字,建议阅读7分钟
本文通过正交变换不改变基向量间的夹角循序渐进的推导SVD算法,以及用协方差含义去理解行降维和列降维,最后介绍了SVD的数据压缩原理 。

前言

奇异值分解(SVD)在降维,数据压缩,推荐系统等有广泛的应用,任何矩阵都可以进行奇异值分解。

目录

1. 正交变换

2. 特征值分解含义

3. 奇异值分解

4. 奇异值分解例子

5. 行降维和列降维

6. 数据压缩

7. SVD总结

1. 正交变换

正交变换公式:9cc0cce9c66598f9e572aea0112046e5.png

上式表示:X是Y的正交变换 ,其中U是正交矩阵,X和Y为列向量 。

下面用一个例子说明正交变换的含义:

假设有两个单位列向量a和b,两向量的夹角为θ,如下图:

50c378ec1ba4ffcf88adaa5faaaebeb0.png

现对向量a,b进行正交变换:

884a067cc52b980bdb602823851552e0.png

18b629e7eb8e18e45a567131ad494c3f.pngd82b206995169455e5e048853a84dab6.png的模:

02025ba96bddb640df37fc101340e8ef.png

由上式可知d9405708101347f015b6ed0cd1d5073d.png5ba01f26adb449b3b95e4d2735a9bc78.png的模都为1。

90bef4118492d10295b6791e0855296e.png8bfbee03d44d70007a38c61f8d89e6e9.png的内积:

954b573b6eeaee51b07a6b40bbb0b61c.png

由上式可知,正交变换前后的内积相等。

564bd0a0fefba72c16d10cb9725d6cc0.png0021e791527c8cdd4faca2964d5e31d3.png的夹角97c7dd85b6094be9878d2c791e201b7b.png

a1ca3f3083dbf029537cf934c7a0d11c.png

比较(2)式和(3)式得:正交变换前后的夹角相等,即:03451aa436dd5e1a486e5f8aa8c2de2f.png

因此,正交变换的性质可用下图来表示:

b497b00a02ecba9011c1f49360e8e390.png

正交变换的两个重要性质:

1)正交变换不改变向量的模。

2)正交变换不改变向量的夹角。

如果向量6822db2fe8dc69a1b54df34fa83836e7.pnga2f512c5c13a3fcdc5c6bc837043791a.png是基向量,那么正交变换的结果如下图:

cfa5e10ff284040c04dab5d55088862b.png

上图可以得到重要结论:基向量正交变换后的结果仍是基向量 。基向量是表示向量最简洁的方法,向量在基向量的投影就是所在基向量的坐标,我们通过这种思想去理解特征值分解和推导SVD分解。

2. 特征值分解的含义

对称方阵A的特征值分解为:

84197273097a459c92a96e974a2d3b75.png

其中U是正交矩阵,de7a2e8fe61ef47e08637df8e67090e3.png是对角矩阵。

为了可视化特征值分解,假设A是2×2的对称矩阵,0df3cbb7f78c372c9e2e3a71c1a40348.png0b4917484fd5989ea08497c7d9b61cdc.png。(2.1)式展开为:

cee323ca065bcbb8358a3f90f71a94a5.png

用图形表示为:

cc8821b77555d394c23a8beacc2e2a71.png

由上图可知,矩阵A没有旋转特征向量,它只是对特征向量进行了拉伸或缩短(取决于特征值的大小),因此,对称矩阵对其特征向量(基向量)的变换仍然是基向量(单位化) 。

特征向量和特征值的几何意义:若向量经过矩阵变换后保持方向不变,只是进行长度上的伸缩,那么该向量是矩阵的特征向量,伸缩倍数是特征值。

3. SVD分解推导

我们考虑了当基向量是对称矩阵的特征向量时,矩阵变换后仍是基向量,但是,我们在实际项目中遇到的大都是行和列不相等的矩阵,如统计每个学生的科目乘积,行数为学生个数,列数为科目数,这种形成的矩阵很难是方阵,因此SVD分解是更普遍的矩阵分解方法 。

先回顾一下正交变换的思想:基向量正交变换后的结果仍是基向量 。

我们用正交变换的思想来推导SVD分解:

假设A是M*N的矩阵,秩为K,Rank(A)=k。

存在一组正交基V:

0044088c8dc2300daba9a07ff1a01661.png

矩阵对其变换后仍是正交基,记为U:

e72a4d228152d2e973839731e553e7b9.png

由正交基定义,得:

007ef5f76b3b48a6dbdb696a4bc2deae.png

上式展开:

f2d408e4ef0767cd7c31017c6807bafa.png

7e2e7b6bbc3771861bcc7de1c4b8d841.png

c5fefce948158133c7778f9f7a7feef1.png

∴ (3.2)式得:

2d7cac58623026d98e9b6e158ba6ce0e.png

即假设成立 。

图形表示如下:

9bc4fecf35f5ae15aab6ce38f8b6a198.png

正交向量的模:

a08091e494ec46883b67a57a6ced6b75.png

单位化正交向量,得:

822db11425cb8ddbf8c32d8f37ad5f02.png

结论:当基向量是4cf1d58332f526a2161c7103aaca5a5a.png的特征向量时,矩阵A转换后的向量也是基向量 。

用矩阵的形式表示(3.3)式:

8b7a17db322785aad5a28ab26e941209.png

6b8a282521e0048f52725742640aa55c.png

6a312c420a3a5c095ac4e4bf08c05935.png

V是N*K矩阵,U是M*K矩阵,4370f8b1bf229148005514e319c9f345.png是M*K的矩阵,需要扩展成方阵形式:

将正交基e73ef50cc187329e4576c73951d6125b.png扩展de31402a129dd6e8d6812ca93076ce99.png空间的正交基,即U是M*M方阵 。

将正交基244da80ad42319b5d4f0001ffeeb46b4.png扩展成321ee540923713b58032eda4e0a5b133.png空间的正交基,其中7b84821fd7a98fa290fd0424df68358c.png是矩阵A的零空间,即:7e7bf325b46ad2079c34e087c197306c.png

对应的特征值26247d55d50b71b1742899334d5e4bb0.png=0,1848a72c4de4f94681728cdfc90327b6.png是M*N对角矩阵,V是N*N方阵

因此(3.4)式写成向量形式为:

290b98867c3cfc5e930098ffad41d8f5.png

得:

1f49e08abf35eef00d639416d41a9cd2.png

146d43aa6da037576bc9118bdcd0067f.png

1ba7cabf31c85a591d555e7f6f2c8f75.png

(3.5)式写成向量形式:

70f6103e9a96d2378d8bef7927e8355a.png

令:

fc4c371ccbe9677d8c96a8975b7985e8.png

c1a83e2f5d299a4788e73f250b38a488.png

则:A = XY

因为X和Y分别是列满秩和行满秩,所以上式是A的满秩分解。

(3.5)式的奇异矩阵ff7636fc399de057e53be27e37e71cda.png的值331cb281d680ab6e5413394d929ec301.png09818d921021ebee4797e7b7c539c161.png特征值的平方根,下面推导奇异值分解的U和V:

a38c19cf5306e5cf43f606d8174969d5.png

即V是3b35107721bed292ec548ae189a427e5.png的特征向量构成的矩阵,称为右奇异矩阵。

6b0e64b305a7c7d0d7cd5eaac15482bc.png

即U是8201f0f9a3ea7ed242fcfc45b86bb97a.png的特征向量构成的矩阵,称为左奇异矩阵 。

小结:矩阵A的奇异值分解:

2990fca73792fe013ab95e6201850dd3.png

其中U是e9e00f263015648cac4b4df6784251ef.png的特征向量构成的矩阵,V是7eca80258ad29fcdd7625b52eb6e44e2.png的特征向量构成的矩阵,奇异值矩阵e796f0a2beb59af4c1648e6b2df8a2a0.png的值是fb23124cec5b443aa3bc01515dc4d53f.png特征值的平方根 。

3. 奇异值分解的例子

本节用一个简单的例子来说明矩阵是如何进行奇异值分解的。矩阵A定义为:

19e4b795f62ae82508d88e17ddaefa9a.png

ba77f1bb2f0142c1f204e77180275c39.png

e9797c67107f749d90231a47aad8c5fe.png

b81f88771c0739e3127ca61cde6e7c24.png

2641111a762883a244a9b4feb6c375a9.png

3d72c867ae47d36f06d6177d1cdcab73.png

1e32e0c225a651abd97f9c5157f3d209.png

55b94e6c612051b554d1db2733f03949.png

756515f3d6aa68dc81125867e07077bc.png

a5b3e10ded96601e79157a61b5f7df5b.png

4. 行降维和列降维

本节通过协方差的角度去理解行降维和列降维,首先探讨下协方差的含义:

单个变量用方差描述,无偏方差公式:

0779ac8334fe09764596477dd75574d1.png

66bf017c7db2b98c0087e2766c9df603.png

两个变量用协方差描述,协方差公式:

0b722e459299b904791fa197009a3916.png

多个变量(如三个变量)之间的关系可以用协方差矩阵描述:

c9197a8737caba0723913da640394a7b.png

相关系数公式:

8aae865d7906f65722dd45df60f8b61b.png

由上式可知,协方差是描述变量间的相关关系程度:

1)协方差cov(x,y) > 0时,变量x与y正相关;

2)协方差cov(x,y)<0时,变量x与y负相关;

3)协方差cov(x,y)=0时,变量x与y不相关;

变量与协方差关系的定性分析图:

980d19781f5dee5790965c94f6555b20.png

现在开始讨论5a8a8274efd65a66558cf79e82b69925.png3d3ab5d991772d337f90e3e9844f10f7.png的含义:

假设数据集是n维的,共有m个数据,每一行表示一例数据,即:

57fb367c66ff55d73740e3cfdd48d378.png

437d1d5b5c2adb3ec93dd368fa2345e7.png表示第i个样本,d2f0a51466e223a28512d11f36115b02.png表示第j维特征,b2b3aa21640d0f692bb6c310fb991b5a.png表示第i个样本的第j维特征 。

61789991d8a370eefb0c49abaceadee9.png

a5c8153541338439f2720dc72d352292.png

由上式可知,313fc934cce11479537b4f106336d4a9.png是描述各特征间相关关系的矩阵,所以117601ab3cc256ad42907a40f42458b6.png的正交基V是以数据集的特征空间进行展开的。

数据集A在特征空间展开为:

0637dd2e2109b67f2aa8b0243a825034.png

由上一篇文章可知,特征值表示了b76c165030515690fcc45e413c3624d7.png在相应特征向量的信息分量。特征值越大,包含矩阵650b1eac65c6b96007d129777ea7ab94.png的信息分量亦越大。

若我们选择前r个特征值来表示原始数据集,数据集A在特征空间展开为:

fcd958d742a2d778e14b64d1e982c2df.png

(4.2)式对列进行了降维,即右奇异矩阵V可以用于列数的压缩,与PCA降维算法一致。

行降维:

a5a8e0e21414fc00507d2b10925829c6.png

698581db46c9e125b776493d83aeeedf.png

由上式可知:b44c114311a1f2337694f053136f1caa.png是描述样本数据间相关关系的矩阵,因此,左奇异矩阵U是以样本空间进行展开,原理与列降维一致,这里不详细介绍了 。

若我们选择前r个特征值来表示原始数据集,数据集A在样本空间展开为:

20f05277c824c887690afcc438be55d7.png

因此,上式实现了行降维,即左奇异矩阵可以用于行数的压缩 。

5. 数据压缩

本节介绍两种数据压缩方法:满秩分解和近似分解

矩阵A的秩为k,A的满秩分解:

f73c9fdca343240ff02072a538d2d0f2.png

满秩分解图形如下:

9ccb05c1aa16d916abf7fae911d25185.png

由上图可知,存储X和Y的矩阵比存储A矩阵占用的空间小,因此满秩分解起到了数据压缩作用。

若对数据再次进行压缩,需要用到矩阵的近似分解。

矩阵A的奇异值分解:

7a7bed0680d421685d666e7de5a752e5.png

若我们选择前r个特征值近似矩阵A,得:

ab95037f4b7fbdf140feffcac1c29cf0.png

如下图:

7d1a2d2846cc0c09f12f1f99c77f7282.png

我们用灰色部分的三个小矩阵近似表示矩阵A,存储空间大大的降低了。

6. SVD总结

任何矩阵都能进行SVD分解,SVD可以用于行降维和列降维,SVD在数据压缩、推荐系统和语义分析有广泛的应用,SVD与PCA的缺点一样,分解出的矩阵解释性不强。

参考:

https://blog.csdn.net/zhongkejingwang/article/details/43053513

https://www.cnblogs.com/pinard/p/6251584.html

编辑:王菁

ab8d363fde640c3331eebcefb6457ea7.png

猜你喜欢

转载自blog.csdn.net/tMb8Z9Vdm66wH68VX1/article/details/131714139