【机器学习】奇异值分解(SVD)原理总结

前言


奇异值分解(SVD)在降维,数据压缩,推荐系统等有广泛的应用,任何矩阵都可以进行奇异值分解,本文通过正交变换不改变基向量间的夹角循序渐进的推导SVD算法,以及用协方差含义去理解行降维和列降维,最后介绍了SVD的数据压缩原理 。

目录


1. 正交变换

2. 特征值分解含义

3. 奇异值分解

4. 奇异值分解例子

5. 行降维和列降维

6. 数据压缩

7. SVD总结

1. 正交变换

正交变换公式:

fbe042fb9b49407a72c8adfe7f9a4f73.png

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

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

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

eb555d040ae3a6695aca69b72a2988e4.png

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

321905ca593c3aa961f69491018295b7.png

059d0ef06a820c3cf38f4df25698432b.png8d1c2b50b061ea9b62c75f3e53cb4b4c.png的模:

b0c4d38df26c9f6408fc0ce5d835fea4.png

由上式可知54094f72a98976d85cd6628e5edef1fc.pnge279a5de4147b244e52ee57738ae9705.png的模都为1。

7b16e46f807910d0900c295f8711714b.png1f59bcf3ad41dcd87a1d7be6ea9ffe90.png的内积:

44fda454b4a256d3b31119507c53774d.png

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

ca2d2e47b9862b9d52ee3c481c96f4d7.png08bc9a026a0a4e978155d42d0510af34.png的夹角f1c26f0e0eceb09fadcb22897bca1cfd.png

4c17752fcb075699bdbdd938aa9cfe7c.png

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

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

42f65fa53f56d29acd436aeae49cae08.png

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

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

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

如果向量71db0a1658d2ae2ae8b8808ae0b6ac3a.png9712bb8ce616a21095fedbe99ab910fa.png是基向量,那么正交变换的结果如下图:

b48f58de66f6255e78c7b595f0a14063.png

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

2. 特征值分解的含义

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

c5aaf60d0f7a38a86d869be2cdc018c3.png

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

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

49523d773fa2954efb5e07ef945e7fb1.png

用图形表示为:

9fa35e425ccad9fdff02a531cdd1e0aa.png


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

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

3. SVD分解推导

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

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

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

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

存在一组正交基V:

9f23f8f4ef111baf139c1b591fbc217a.png

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

a357aee5ea5e030618f775426ba4ce25.png

由正交基定义,得:

e3da4052425ad796ee669a5a64286144.png

上式展开:

f57c29fba37b318c6d338d33dbe31e49.png

393bb887ec51ed10024c5a86c443bcaf.png

b9859ef7cf98a323c4a5bad4ee9d1eb0.png

∴ (3.2)式得:

77edcb4f1f92411776b23900448f9342.png

即假设成立 。

图形表示如下:

973cba40f093da92cbb1bb0a0692b82a.png

正交向量的模:

4859f3272365e42eafac6da5a52b6466.png

单位化正交向量,得:

b39c3eb1cdc2e79604a389c5dfe4ec00.png

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

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

1ce8a46b99bb6ba688d7854d9e113152.png

508ae2f75b2926d0ce6a9e36b07acabe.png

0adfdba12b68c9606289b0455fed55cb.png

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

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

将正交基8352e59a54c53657e5f6de936387feb0.png扩展成c3d0e5d12f6acbe5e12d6d6a9da64e9d.png空间的正交基,其中00f43e98a8293a327197d8ec03f44fe4.png是矩阵A的零空间,即:

9e96b3f43b608b9c317b2ef17f34477a.png

对应的特征值dc60b9df1c97c4718b117996c74f78a4.png=0,a7ce9b4a3720aa8b2b1bfa9d8e4f0961.png是M*N对角矩阵,V是N*N方阵

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

fffaf1b0571551f2e4061804b38abd81.png

得:

4ef4d8d16a49dbbf3cfd0a75dafd44f3.png

cbdec07834dfce4d49b92851fd103b8b.png

9a9a07e86f1a8c31186b0d6d4a030be6.png

(3.5)式写成向量形式:

a2bc33578d143e75e988c8c2472093e8.png

令:

e7859cccd1af891925805ae55dd31cc4.png

155698245d97a5fda2fc54863f16d053.png

则:

A = XY

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

(3.5)式的奇异矩阵e973846f79e8a544c8b2131d5b1ea380.png的值3d0429707f060b0b9d7b7ba232a21144.pngec74811b8ca5eb8b99250dd554ae9501.png特征值的平方根,下面推导奇异值分解的U和V:

f8e9b1252e2819c24b8a37bfc6cf1dcd.png

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

0a6f7632379ae6af3053e821d43e7608.png

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

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

a7ca1dd685c44130032d292c01d38041.png

其中U是64fb4684254f6461f93286915d40177d.png的特征向量构成的矩阵,V是347e2778646b20440be196b9a9a6410b.png的特征向量构成的矩阵,奇异值矩阵a172bb66199cdda11ed9645e31112d7b.png的值是55e3072d3807045470eef541c4578dce.png特征值的平方根 。

3. 奇异值分解的例子

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

9912cf9f430fe9b9d477d1f0224828b8.png

7c150299091c324845fe95fdfb5fc61d.png

4411fca50f9f342c97dbee414ccaa35f.png

4c4fc9d8dba9e3ae7b5ea0ad3d2b967b.png

9335169a4627f4c716f71416978ed6df.png

aa571a782c73cb8307d974fee0758960.png

31034120475b253d2f5edc56932df23a.png

f26b95fca595b6ef726d4c7749c1b40c.png

f1bece8f8d4ed56fff03e10e5ec16778.png

d838d6b3a4bb16b99fb259259c0ecc55.png

4. 行降维和列降维

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

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

990ceb4b348f23ebbfc84f0c17dbdd86.png

40f8ddf0fc0d5d9c0fbdc312c3f60be9.png

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

9f75b3310d18417a79299b62d57a97ce.png

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

d562840359be2b7f7646de125fc2d968.png

相关系数公式:

886dd078319d9961ec6ea39e1938e43b.png

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

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

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

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

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

9238b3704b60567e1f967097ae26e0fe.png

现在开始讨论2936c8f411bcf440c04107e4b67e1c19.png6bf382ca21df8acd0d1a79ab6b70e9f9.png的含义:

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

ff39e18dfa37ba1a3a34098c79701ddc.png

4606256aba00cb98fe32dbbfcef52de6.png表示第i个样本,72d16892fec34db96a04b4a6f46df4aa.png表示第j维特征,f4c3b99b11865f51abe2e0c74c7f7a4b.png表示第i个样本的第j维特征 。

82ad19e281d16d0703ace33720425d64.png

15a4e62af6a1400ad498b995f47ef4d5.png

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

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

a826b5742c1754e51cb3c2ebc06aaf00.png

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

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

1a28464d311a5c14cf32b93445fd8c94.png

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

行降维:

35993d2cbfc2b40ec689a41e84b08230.png

68f1b7a76daebd400e6994257b931a79.png

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

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

78a6f1118526c993ac00e414be874ad7.png

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

5. 数据压缩

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

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

f88bed6867ae761815220cc2d4794e7c.png

满秩分解图形如下:

7a75b0c88ec493170066c1acdeca359c.png

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

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

矩阵A的奇异值分解:

c26c1cb34f1285b53c76bd98a133a8ce.png

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

1a6b55a5412711e2c42b9d5d9a5a2e8d.png

如下图:

fbcbc3b666918d1be882cbe698356862.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

 
 
往期精彩回顾




适合初学者入门人工智能的路线及资料下载(图文+视频)机器学习入门系列下载机器学习及深度学习笔记等资料打印《统计学习方法》的代码复现专辑机器学习交流qq群955171419,加入微信群请扫码

c41911013cc6a21b8da93126efceb273.png

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值