【SVD】奇异值分解 -- 学习笔记

参考资料:数值分析


  • 若A为Hermite阵,
    可用-酉相似变换-将其化为对角形式: Q ∗ A Q = Λ Q^{*}AQ=\Lambda QAQ=Λ,即得到谱分解,也就是特征值分解;
    谱分解保持矩阵的秩和特征值不变。
  • 若A非Hermite阵,
  1. 可用-初等变换-化为比较简单的对角形式,
    A = P [ I 0 0 0 ] Q A=P\begin{bmatrix}I&0\\0&0\end{bmatrix}Q A=P[I000]Q
    即满秩分解,保持矩阵的秩不变;
  2. 可用-相似变换-将其化为Jordan形,即Jordan分解, A = P J P − 1 A=PJP^{-1} A=PJP1,保持矩阵的秩和特征值不变。
  3. 可用-酉相似变换-将其化为上三角形式,即Schur分解 A = Q R Q ∗ A = QRQ^{*} A=QRQ,保持秩和特征值不变。
  4. 可用-酉变换-(不要求相似)j将其化为对角形式,即奇异值分解 A = U Σ V ∗ A=U\Sigma V^{*} A=UΣV,特点是不要求A是方阵。

奇异值分解定理:
对任意矩阵 A A A(可以不是方阵),存在酉矩阵U,酉矩阵V,对角元按非增次序排列的非负对角矩阵 Σ \Sigma Σ,使得: A = U Σ V ∗ A=U\Sigma V^{*} A=UΣV
其中,矩阵A的规模大小 = 对角矩阵 Σ \Sigma Σ规模大小。
上述是,完全奇异值分解(FULL SVD)。
还有经济型奇异值分解(economic svd),又称约化奇异值分解,此时 A = U Σ V ∗ A=U\Sigma V^{*} A=UΣV中,非负对角矩阵是方阵(被约化了,其实是矩阵分块的运算的结果),代价是:在完全奇异值分解中较大的那个方阵不再是方阵(会更小,可能是扁的,也可能是高的)。

在这里插入图片描述


奇异值分解的性质:

  1. 矩阵A的秩 = 非零奇异值的个数 r r r
    原因:酉矩阵是可逆的,不改变矩阵的秩,即 r a n k ( A ) = r a n k ( Σ ) rank(A)=rank(\Sigma) rank(A)=rank(Σ).
  2. 矩阵A的值域 = 前 r r r个左奇异向量所张成的空间。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    A ∗ A A^{*}A AA的非零特征值是矩阵A的非零奇异值的平方。
    在这里插入图片描述
    注: ∣ Λ ∣ |\Lambda| Λ表示对对角矩阵 Λ \Lambda Λ的每个元素取绝对值所组成的对角矩阵;
    s i g n ( Λ ) sign(\Lambda) sign(Λ)表示对角矩阵 Λ \Lambda Λ的对角元的符号,在这里,如果非负,取1,否则取-1.
    在这里插入图片描述

低秩逼近:
在这里插入图片描述
秩1矩阵,是指 u j v j ∗ u_{j}v_{j}^{*} ujvj,因为矩阵 u j u_{j} uj是列向量,所以它的秩为1,而矩阵的乘积的秩不大于每个因子矩阵的秩,所以秩为1.

在这里插入图片描述
说明:在所有-秩不超过k的-矩阵中,奇异值分解出的矩阵 A k A_{k} Ak与矩阵A的二范数意义下最近,距离为第k+1个奇异值。
在这里插入图片描述
在F范数的意义下, A k A_{k} Ak距离A也是最近的。


例题:
利用 A ∗ A A^{*}A AA的非零特征值是矩阵 A A A奇异值的平方,先求出奇异值,得到 Σ \Sigma Σ矩阵。
与此同时,求出 A ∗ A A^{*}A AA的特征向量,得到V矩阵。
利用 U = A V Σ − 1 U=AV\Sigma^{-1} U=AVΣ1,求出矩阵U。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注:构造 u 3 u_{3} u3的方法有很多,比如: u 3 u_{3} u3 u 2 u_{2} u2 u 1 u_{1} u1向量正交, u 3 u_{3} u3的长度(二范数)为1,联立这三个方程即可求解。


阅读博客的笔记:
https://www.cnblogs.com/pinard/p/6251584.html
这篇博客从原理、应用等方面对SVD进行了详细介绍。
有些地方,值得做下笔记。
在这里插入图片描述
在PCA中,我们需要计算 X T X X^{T}X XTX矩阵的特征向量,可以考虑对矩阵 X X X进行SVD分解 X = U Σ V T X=U\Sigma V^{T} X=UΣVT,那么 X T X = V Σ 2 V T X^{T}X=V\Sigma^{2}V^{T} XTX=VΣ2VT,也就是说右奇异矩阵正是我们所需要的: X T X X^{T}X XTX矩阵的特征向量。

求解大型矩阵奇异值分解是一种常见的数学问题,在多视图几何和机器学习领域中得到广泛应用。奇异值分解(Singular Value Decomposition,SVD)是一种矩阵分解的方法,它将一个矩阵分解为三个矩阵的乘积:A = UΣV^T,其中U和V是正交矩阵,Σ是一个对角矩阵奇异值分解的重要性在于它可以提供矩阵的最佳低秩近似。 对于大型矩阵奇异值分解,可以使用一些高效的算法和工具来求解。例如,在MATLAB中,可以使用svd函数来进行奇异值分解。这个函数可以接受大型矩阵作为输入,并返回相应的奇异值、左奇异向量和右奇异向量。 使用svd函数求解大型矩阵奇异值分解的代码如下所示: ```matlab % 定义一个大型矩阵A A = randn(1000, 1000); % 求解奇异值分解 [U, S, V = svd(A); % 输出结果 disp(U); disp(S); disp(V); ``` 上述代码中,我们首先定义了一个1000x1000的随机矩阵A。然后,使用svd函数求解矩阵A的奇异值分解,并将结果存储在U、S和V变量中。最后,我们输出了U、S和V的值。 需要注意的是,对于大型矩阵奇异值分解,计算时间可能会比较长,因此在实际应用中需要考虑计算效率和内存消耗。一些优化的方法,如分布式奇异值分解等,可以在处理大规模数据时提高计算效率。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [利用SVD(奇异值分解)求解线性方程组.zip](https://download.csdn.net/download/a435262767/12883418)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Matlab基础应用学习笔记.md](https://download.csdn.net/download/weixin_52057528/88284511)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值