向量|揭开矩阵分解的神秘面纱——特征分解,奇异值分解,伪逆矩阵( 四 )


向量|揭开矩阵分解的神秘面纱——特征分解,奇异值分解,伪逆矩阵
文章图片
Σ有如下结构 。左上角部分是一个对角线矩阵,对角线元素中有奇异值(后面会详细介绍) 。Σ的其他元素都是零 。
向量|揭开矩阵分解的神秘面纱——特征分解,奇异值分解,伪逆矩阵
文章图片
我们把奇异值按降序排列 。
向量|揭开矩阵分解的神秘面纱——特征分解,奇异值分解,伪逆矩阵
文章图片
奇异值的数量与矩阵A的秩相同,也就是独立列向量的数量 。
那么,我们如何创建这样一个分解呢?
主要的想法是,我们做一个如下的方形矩阵 。
向量|揭开矩阵分解的神秘面纱——特征分解,奇异值分解,伪逆矩阵
文章图片

向量|揭开矩阵分解的神秘面纱——特征分解,奇异值分解,伪逆矩阵
文章图片
我们可以选择其中之一,但使用元素较少的那一个比较容易 。例如,如果矩阵A是100×10,000 。AA^T是100×100,而A^TA是10,000×10,000 。所以,我会选择AA^T 。
假设我们用AA^T对矩阵A进行奇异值分解 。
向量|揭开矩阵分解的神秘面纱——特征分解,奇异值分解,伪逆矩阵
文章图片
其中:
向量|揭开矩阵分解的神秘面纱——特征分解,奇异值分解,伪逆矩阵
文章图片
是一个对角线矩阵(m×m) 。这些值是AA^T的特征值,因为我们对AA^T进行了如下的特征分解 。
向量|揭开矩阵分解的神秘面纱——特征分解,奇异值分解,伪逆矩阵
文章图片
矩阵U中的列向量是特征向量,因为:
向量|揭开矩阵分解的神秘面纱——特征分解,奇异值分解,伪逆矩阵
文章图片
换句话说,如果我们能对AA^T进行特征分解,我们就能计算出U和对角线的σ,然后我们就能计算出V 。
我们可以考虑用A^TA进行同样的计算:
向量|揭开矩阵分解的神秘面纱——特征分解,奇异值分解,伪逆矩阵
文章图片
其中
向量|揭开矩阵分解的神秘面纱——特征分解,奇异值分解,伪逆矩阵
文章图片
是一个对角线矩阵(n×n) 。这些值是特征值,因为我们对A^TA进行了如下的特征分解:
向量|揭开矩阵分解的神秘面纱——特征分解,奇异值分解,伪逆矩阵
文章图片
矩阵V中的列向量是特征向量,因为:
向量|揭开矩阵分解的神秘面纱——特征分解,奇异值分解,伪逆矩阵
文章图片
换句话说,如果我们能对A^TA进行特征分解,我们就能计算出V和对角线的Σ,然后我们就能计算出U 。
因此,如果我们对AA^T或A^TA进行特征分解,我们就可以进行奇异值分解 。
同样,我们应该选择AA^T或A^TA中较小的一个 。
让我们用Numpy试试奇异值分解 。
向量|揭开矩阵分解的神秘面纱——特征分解,奇异值分解,伪逆矩阵

推荐阅读