一、首先,奇异值分解与普通的矩阵分解的区别:
普通矩阵分解要求矩阵是一个方阵,行列数目相等,对于实际应用中出现的非方阵、非对称的矩阵进行分解,引入了奇异值分解
(Singular Value Decomposition)。
普通矩阵的分解,就是线性代数中求解特征值和特征向量的过程。
其中U的列向量是特征向量,Λ 是对角矩阵,Λ 对角元素是对应特征向量的特征值。
二、奇异值分解SVD
假设矩阵 A 的维度为 mxn,虽然 A 不是方阵,但是下面的矩阵却是方阵,且维度分别为 mxm、nxn。
因此,我们就可以分别对上面的方阵进行分解:
其中,Λ1 和 Λ2 是对角矩阵,且对角线上非零元素均相同,即两个方阵具有相同的非零特征值,特征值令为 σ1, σ2, … , σk。
值得注意的是,k<=m 且 k<=n。
根据 σ1, σ2, … , σk 就可以得到矩阵 A 的特征值为:
接下来,我们就能够得到奇异值分解的公式:
其中,P 称为左奇异矩阵,维度是 mxm,Q 称为右奇异矩阵,维度是 nxn。Λ 并不是方阵,其维度为 mxn,Λ 对角线上的非零元
素就是 A 的特征值 λ1, λ2, … , λk。图形化表示奇异值分解如下图所示:
举个简单的例子来说明,令 A 为 3×2 的矩阵:
则有:
计算得到特征向量 P 和对应的特征值 σ 为:
然后,有:
计算得到特征向量 Q 和对应的特征值 σ 为:
则我们看可以得到 A 的特征值为:
最后,整合矩阵相乘结果,满足奇异值分解公式。
奇异值分解可以写成以下和的形式:
其中,p1 和 q1 分别为左奇异矩阵和右奇异矩阵的特征向量。
------------------------------------------------------------------------------------------------------