SVD的介绍与原理
来源:互联网 发布:攻城掠地控号手软件 编辑:程序博客网 时间:2024/05/22 00:23
一.SVD的介绍
SVD,Singular Value Decomposition ,奇异值分解。PCA的实现一般有两种,一种是用特征值分解,一种是用奇异值分解。
- 优点:简化数据,去除噪声,提高算法的结果
- 缺点:数据的转换可能难以理解
- 适用数据类型:数值型数据
二.奇异值分解的定义
假设
其中,
则
其中,
奇异值有以下写性质,
1.如果M是n*n的方阵,那么有
2.考虑到
三.奇异值的意义
在几何中,我们可以把矩阵看做空间上的线性变换,比如对角矩阵M作用于任意一个变量,等同于在x方向上拉伸三倍,y方向上保持不变,如下:
如果M不是对角矩阵,而是一个对称正定矩阵,假设M如下,
那么我们总可以找到一组基,使得矩阵作用在该组基上,总变现为拉伸变换,而没有旋转变换。
对于更一般的非对称矩阵,我们再也找不到一组基,使得矩阵作用在该组基上只有拉伸变换,而没有旋转变换,如矩阵:
如果我们允许有拉伸和旋转变换,这是可以实现的。
则,奇异值分解的几何含义是:对于任何的一个矩阵,我们要找到一组两两正交单位向量序列,使得矩阵作用在此向量序列上后得到新的向量序列保持两两正交。
奇异值的含义是:这组变换后新的向量序列的长度
当矩阵M作用在正交的向量
依据前面的条件有,
其中,
很容易可以把结论推广到n维的情况。
举个例子说明一下,假设矩阵A存下以下奇异值分解,
其中
当A作用到x上,则有,
令
说一点它的物理意义:
假设有一张图像,我们用矩阵A来表示,A中的每一个元素代表一个像素,我们这里用和的形式表示A,
假设我们图像矩阵A为400*300的像素,那么存储这张图片我们需要120000个元素,那么右边的每一项需要元素1*300+1*400+1=701个,如果我们需要存储很多高清图片,存储空间又有限制的情况下,我们在保证图片能被识别的精度下,保留那么奇异值较大的一些项,假设这里我们保留了20个奇异值,那么我们需要存储701*20=14020项,相比原来需要的存储空间,减少了很多。
总结一下,奇异值往往隐含着矩阵中潜在的重要信息,重要性和奇异值大小正相关,每一个矩阵可以表示成一系列的秩为1的特殊矩阵之和,而奇异值则是衡量这些矩阵的权重。
四.总结
这里仅仅介绍了一下SVD的定义以及一些简单的物理意义,关于SVD的一些公式的证明,还有SVD在推荐系统,图像压缩、去噪中应用还需要大家多查阅其他的一些资料,以后有时间,会继续补充说明。
五.参考资料
1.《矩阵分析与应用》,张贤达著
2.知乎回答:http://www.zhihu.com/question/22237507
3.《机器学习实战》
0 0
- SVD的介绍与原理
- SVD比较好的介绍
- SVD与SVD++
- 文本分类之降维技术之特征抽取之SVD矩阵的分解的原理的介绍
- pca与svd的好文
- 负载均衡的原理与算法介绍
- 负载均衡的原理与算法介绍
- PHP的COOKIE原理介绍与使用
- PHP的SESSION原理介绍与使用
- 内部类的种类与原理介绍
- TCP/IP的原理与介绍
- SVD 与 PCA 的直观解释(3): SVD的直观解释及推导
- CGLIB介绍与原理
- CGLIB介绍与原理
- CGLib 介绍与原理
- CGLIB介绍与原理
- CGLIB介绍与原理
- flume介绍与原理
- hihoCoder_#1067_最近公共祖先·二(LCA+tarjan模板)
- 2015 Multi-University Training Contest 3(hdu 5324 - Boring Class)树套树
- objective C程序 NSString用法和类的概念
- 2015.8.1(建军节)
- system.exit(0)和system.exit(1)区别
- SVD的介绍与原理
- 客户端和服务器通讯 方法(1)
- 升级Android SDK后ADT找不到adb.exe文件的解决办法
- Bestcoder Untitled
- HDU 3374 String Problem (KMP+最大最小表示)
- View及Viewgroup
- Java反射机制
- 剑指Offer面试题17(Java版):合并两个排序的链表
- HDU 2017-字符串统计