首发地址被屏蔽了。
SVD是奇异值分解
一、一般概念
酉矩阵:设AÎCn×n,C可以是复矩阵,实矩阵,如果A*A=I(单位阵),则称A为酉矩阵;当A是实矩阵时,就是我们常见的实正交矩阵。
Hermite矩阵:如果A*=A,那么A是Hermite矩阵,若A是实矩阵,称A为对称矩阵。
正规矩阵:如果A*A=AA*,那么称A为正规矩阵。酉矩阵和Hermite矩阵均属于正规矩阵。
正定:对于一Hermite矩阵A,如果对任意非零向量xÎCn,都满足x*Ax>0,称A为正定阵,如果是大于等于0,称A为半正定阵。正定矩阵的特征值一定为正。
二、奇异值分解(Singular Value Decomposition,SVD)
奇异值:设AÎCm×n,A*A的特征值的非负平方根称A的奇异值,由此定义可知奇异值必然大于等于0。
奇异值分解定理:设,则存在m阶酉矩阵U和n阶酉矩阵V,使得
U*AV=
其中,s为奇异值,
上面等式两边可以同时乘以U、V*,由于U和V都是酉矩阵,那么必然为正规矩阵,
,此为我们常见的SVD分解表达式。
关于SVD分解的证明,需用到Schur分解,可参看北京大学徐树方《矩阵计算的理论与方法》。
三、SVD的意义和用途
由SVD分解定理可知,一般矩阵都是可以进行SVD分解的,而常见的特征值分解则需用保证矩阵是方阵,前者分解的奇异值都是大于零的,而特征值不一定。
无论是奇异值还是特征值,都是表征矩阵重要特征的具体指标,这里的特征不妨认为是模式,即事物赖以存在的形式。该值越大表示信息的显著特征,值越小可能是噪声特征。(引申与扩展:过拟合)
如果取A的奇异值中较大的数值,比如取前k个(k<r),那么此时也能恢复A
,但此时A的信息则有缺失。那么此时U和V的维度也减少了(注意维度默认是列数,也称为数据的特征,而行一般称为观测值),这就是降维的一般概念。
SVD可用于机器学习中数据噪声的去除,保留数据的主要特征。由于SVD的结果多样,也不知道哪个是目标结果,所以无需训练算法,这是无监督学习的共性。
四、SVD的实战练习可参考链接:
1.手写体(MATLAB)
https://blog.csdn.net/google19890102/article/details/27109235
http://www-users.math.umn.edu/~lerman/math5467/svd.pdf
2.推荐算法提升(SVD竟然也可以,神奇)(Python)
https://blog.csdn.net/sinat_17451213/article/details/51201682
http://www.sohu.com/a/127149396_464826
3.图像压缩(MATLAB)