SVD 是奇异值分解 一、一般概念 酉矩阵 :设 A Î C n × n ,C 可以是复矩阵,实矩阵,如果 A*A= I (单位阵), 则称 A 为酉矩阵;当 A 是实矩阵时,就是我们常见的实正交矩阵。 Hermite 矩阵 :如果 A*=A, 那么 A 是 Hermite 矩阵,若 A 是实矩阵,称 A 为对称矩阵。 正规矩阵 :如果 A*A=AA* ,那么称 A 为正规矩阵。酉矩阵和 Hermite 矩阵均属于正规矩阵。 正定 :对于一 Hermite 矩阵 A ,如果对任意非零向量 x Î C n ,都满足 x*Ax0 ,称 A 为正定阵,如果是大于等于 0 ,称 A 为半正定阵。正定矩阵的特征值一定为正。 二、奇异值分解( Singular Value Decomposition , SVD ) 奇异值 :设 A Î C m × n , A*A 的特征值的非负平方根称 A 的奇异值,由此定义可知奇异值必然大于等于 0 。 奇异值分解定理 :设 ,则存在 m 阶酉矩阵 U 和 n 阶酉矩阵 V ,使得 U*AV= 其中 , s 为奇异值, 上面等式两边可以同时乘以 U 、 V* ,由于 U 和 V 都是酉矩阵,那么必然为正规矩阵, ,此为我们常见的 SVD 分解表达式。 关于 SVD 分解的证明,需用到 Schur 分解,可参看北京大学徐树方《矩阵计算的理论与方法》。 三、SVD的意义和用途 由 SVD 分解定理可知,一般矩阵都是可以进行 SVD 分解的,而常见的特征值分解则需用保证矩阵是方阵,前者分解的奇异值都是大于零的,而特征值不一定。 无论是奇异值还是特征值,都是表征矩阵重要特征的具体指标,这里的特征不妨认为是模式,即事物赖以存在的形式。该值越大表示信息的显著特征,值越小可能是噪声特征。(引申与扩展:过拟合) 如果取 A 的奇异值中较大的数值,比如取前 k 个( kr ),那么此时也能恢复 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 ) https://blog.csdn.net/bluecol/article/details/45971423