特征值分解和奇异值分解

前言

线性代数中介绍了方阵的特征值分解,将其一般化到任意形状的矩阵对应奇异值分解。

本文暂时假设所有矩阵都为实矩阵。

特征值分解(Eigenvalue Decomposition, EVD)

线性代数中的相似对角化

对于方阵(A_{n imes n}),求解其特征值(lambda_1, ..., lambda_n)和对应的特征向量(xi_1, ..., xi_n)

当特征向量(xi_1, ..., xi_n)线性无关时,可以对A进行特征分解(也就是相似对角化),得到:

[A = P Lambda P^{-1} ]

其中,(P)是由特征向量按列拼接构成的方阵,(Lambda)是主对角线由特征值构成的主对角矩阵,二者的顺序一一对应。

[P = [xi_1, ..., xi_n] ]

[Lambda = diag(lambda_1, ..., lambda_n) ]

一般将特征值和特征向量作调整:(1)特征值从大到小排列:(lambda_1 geq lambda_2 geq cdots geq lambda_n);(2)对特征向量(xi_1, ..., xi_n)进行单位化。

特殊地,当A为对称阵时,P为正交阵,即P的列向量为一组单位正交基,且有:

[egin{aligned} A & = P Sigma P^{-1}\ & = P Sigma P^{T}\ & = egin{bmatrix}xi_1, ..., xi_nend{bmatrix} egin{bmatrix} lambda_1 & &\ & ddots &\ & & lambda_nend{bmatrix} egin{bmatrix} xi_1^T\ vdots\ xi_n^T end{bmatrix}\ & = egin{bmatrix}lambda_1xi_1, ..., lambda_nxi_nend{bmatrix}egin{bmatrix} xi_1^T\ vdots\ xi_n^T end{bmatrix}\ & = lambda_1xi_1xi_1^T + ... + lambda_1xi_nxi_n^T end{aligned} ]

不足:特征值分解的要求A能够相似对角化,即A必须为方阵,且特征向量线性无关,现实很难满足。

特征值和特征向量的应用

图片压缩:在(Lambda)中保留前k个特征值不变,其余都用零替代,得到(A)近似处理的(A')

[A' = P egin{bmatrix} lambda_1 & & \ & ddots & &\ & & lambda_k & \ & & & f O end{bmatrix} P^{-1} ]

发散思维:前k个最大的特征值可以还原出近似的原矩阵,从这点上正好对应本身名字"特征值"。

数据降维:把(A)看成是n个n维的样本点构成的数据集,只取前k个特征值和其对应的特征向量,得到的降维后数据(A')

[A'_{n imes k} = A_{n imes n}P_{n imes k} ]

奇异值分解(Singular Value Decomposition, SVD)

对于普通的矩阵(A_{m imes n})根据奇异值分解得到:

[A_{m imes n} = U_{m imes m} Sigma_{m imes n} V^T_{n imes n} ]

其中(U = [u_1, ..., u_m])(V = [v_1, ..., v_n])都是酉矩阵[^1],即(U^{-1} = U^{T}, UU^{-1} = UU^T = I)(u_i)称为左奇异向量(v_i)称为右奇异向量(Sigma)(m imes n)的对角矩阵,其主对角线上的元素称为奇异值

推导如下:

[egin{aligned} A & = U Sigma V^T \ AA^T & = U Sigma V^T (V Sigma^T U^T) = U Sigma^2 U^T\ A^TA & = (V Sigma^T U^T)U Sigma V^T = V Sigma^2 V^T end{aligned} ]

(AA^T)(A^TA)都是方阵,还是对称阵,也就应证了U和V是酉矩阵的陈述,而奇异值就是(AA^T)的特征值:

[AA^T cdot u_i = lambda_i u_i ]

其中(U = [u_1, ..., u_i, ..., u_m])(Sigma = diag(lambda_1, ..., lambda_i, ..., lambda_{min{m, n}})),式中(AA^T)(u_i)对应用(A^TA)(v_i)也成立。

同样,如果只取前r个最大的特征值,可以得到近似的(A):

[A approx U_{m imes r}Sigma_{r imes r}V^T_{r imes n} ]

从向量空间去理解EVD和SVD

矩阵(A)左乘向量(x)就是对(x)进行缩放和旋转。

假设(A)为二阶方阵,(A)左乘向量(x)就是在(xi_1)(xi_2)两个方向上对(x)做缩放,缩放因子分为(lambda_1)(lambda_2),这里的的(lambda_1, lambda_2)就是(A)的两个特征值,而(xi_1, xi_2)则是两个特征值对应的特征向量。

如果(x = kxi_1),k不为0,此时(x)与其中一个特征向量共线,那么A只在(xi_1)上对向量进行缩放,缩放因子为(lambda_1),即(Ax = lambda_1 x),而矩阵A的另一个特征向量在当前特征向量上投影为0,所以不起任何作用。

如果A为对称阵,那么(xi_1)(xi_2)正交,那么这个时候(xi_1)(xi_2)就是一组单位正交基。

另外,特殊地,如果矩阵由两个单位正交基组成,它对向量就只有一个旋转的作用了(经过正交矩阵变换的向量,在向量空间中长度不变,所以正交阵对向量的作用只是变换了向量空间,但是不改变向量形状)。

再来看看SVD,其实就是把A分解成:旋转(V起作用)--> 缩放((Sigma)起作用)--> 再旋转(U起作用)。

原文地址:https://www.cnblogs.com/YoungF/p/12802412.html