线性代数之——SVD 分解
SVD 分解是线性代数的一大亮点。 1. SVD 分解 \(A\) 是任意的 \(m×n\) 矩阵,它的秩为 \(r\) ,我们要对其进行对角化,但不是通过 \(S^{-1}A S\) 。 \(S\) 中的特征向量有三个大问题:它们通常不是正交的;并不总是有足够的特征向量; \(Ax=\lambda x\) 需要 \(A\) 是一个方阵。 \(A\) 的奇异向量很好地解决了上述所有问题。 代价是我们需要两组奇异向量,一组是 \(\boldsymbol{u}\) , 一组是 \(\boldsymbol{v}\) 。 \(\boldsymbol{u}\) 是 \(AA^T\) 的特征向量, \(\boldsymbol{v}\) 是 \(A^TA\) 的特征向量,因为这两个矩阵都是对称矩阵,我们可以选出一组标准正交的特征向量。即: \[AA^T=U\Sigma^2U^T \quad A^TA =V\Sigma^2V^T\] 证明: 让我们从 \(A^TAv_i=\sigma_i^2v_i\) 开始,两边同乘以 \(v_i^T\) ,有: \[v_i^TA^TAv_i=\sigma_i^2v_i^Tv_i=\sigma_i^2 \to ||Av_i||=\sigma_i\] 这说明向量 \(Av_i\) 的长度为 \(\sigma_i\) 。然后两边同乘以 \(A\) ,有: \[AA^T