一、奇异值分解
奇异值分解(SVD)是在线性代数和矩阵论中一种重要的矩阵分解法。它是一种在通信系统MIMO、机器学习、图像处理、数据压缩降噪等领域被广泛运用的算法,这足以说明它的重要性。那么我们在学习SVD之前需要掌握一些什么基础知识呢?
二、预备知识
首先我们必须掌握线性代数的相关知识:
- 矩阵的秩:矩阵的秩是矩阵中线性无关的行或列的个数
- 对角矩阵:对角矩阵是除对角线外所有元素都为零的方阵
- 单位矩阵:如果对角矩阵中所有对角线上的元素都为零,该矩阵称为单位矩阵
- 特征值:对一个M x M矩阵C和向量X,如果存在λ使得下式成立
- 特征向量…
三、SVD的求法
任何矩阵都可以通过SVD进行奇异值分解
转置相乘得到对称矩阵–>根据对称矩阵计算特征值与特征向量–>根据特征值与特征向量列出表达式计算可得。
其中UV都是幺正矩阵(如果一个n阶方阵,它的行向量或列向量构成一组标准正交基,那么这个矩阵就是幺正矩阵)、可根据特征向量得出、∑中的值是奇异值(特征值开根号所得)
注:在计算的过程中,我们可以丢掉小的奇异值,原因是丢掉小的奇异值可以减少计算量、消除杂讯。
现如今我们也可以借助其它工具来帮助我们更加高效的去求奇异值:Wolfram alpha:
利用 ‘diagnoalize’、normalize进行对角化等操作、也可直接利用SVD得出结果。