机器学习笔记(五)--SVD奇异值分解

SVD奇异值分解可运用在降维算法PCA中进行特征分解,在机器学习等领域有广泛应用,所以很有必要将它搞清楚。

优秀文章:https://www.cnblogs.com/pinard/p/6251584.html

一、特征值与特征向量

                                                                                  $Ax=\lambda x$

            其中,A是一个n×n的方阵,x为n维向量,\lambda是一个实数。那么,x为A的一个特征向量,\lambda为A的一个特征值。这样我们可以将矩阵A特征分解,如果我们求出了A的k个特征值λ1≤λ2≤...≤λk,和对应的n个特征向量x1->x2->...->xk。如果这些特征向量线性无关,那么矩阵A就可以用下面式子进行特征分解。

                                                                                        A = W \Sigma W^{-1}

            其中,W为{x1,x2,...,xk},即A的k个特征向量组成的n×k的矩阵,\Sigma为以k个特征值做主对角线的对角矩阵。一般的,我们会把这k个特征向量标准化(二范数为1),那么就会有W^{-1} = W^{T},则会有下式。

                                                                                       A = W \Sigma W^{T}

            列向量的线性组合结果是权重向量的延伸。特征值与特征矩阵的计算如下。

                                                         \lambda x - Ax = 0 \rightarrow (\lambda I - A)x = 0\rightarrow |\lambda I-A|=0

要进行特征分解,矩阵A必须为方阵,若A不是方阵时,我们使用SVD。

二、SVD的定义

                                                                                       A = U \Sigma V^{T}

            其中,A是一个M*N的矩阵,U是一个M×M的矩阵,\Sigma同上是一个M*N对角矩阵,主对角线由奇异值组成的奇异矩阵,V同上是一个N*N的酉矩阵,有V^{-1}=V^{T},且有U^{-1}=U^{T},分别为左右奇异矩阵。

三、SVD的应用

                         

              如图所示,奇异值与特征值类似,在奇异矩阵中,奇异值也是从大到小排列的,我们可以使用最大的k个奇异值和左右2k个奇异向量来表示原矩阵A。

                                                             A_{m \times n} = U_{m \times m}\Sigma_{m \times n} V^T_{n \times n} \approx U_{m \times k}\Sigma_{k \times k} V^T_{k \times n}

猜你喜欢

转载自blog.csdn.net/LawGeorge/article/details/88608466