标签:结果 列空间 cal 特征 pos 元素 空间 世界 等于
Research 我唯唯诺诺
划水摸鱼Tutorial 我重拳出击。
20200519凌晨睡不着的时候,我的脑子里告诉我世界上还有很多大学生不懂但渴望了解SVD(确信),于是20200520凌晨,有了这篇文章。
结构如下:首先是大致叙述下SVD,然后是给出一个大概的推导思路,最后是一些发散内容。本文仅对实数矩阵讨论,复数的情况均可以简单推广得到。数学推导相关的内容均参考于 Gilbert Strang 的 Linear Algebra and Its Application。
SVD 即奇异值分解(Singular Value Decomposition),在本文不考虑复数矩阵的前提下即对于任意 \(m\times n\) 实矩阵 \(A_{m\times n}\),我们都可以将其表示为 \(A_{m\times n} = U_{m\times m} \Sigma_{m\times n} V_{n\times n}^{\mathrm{T}}\),其中,\(U_{m\times m}\)和\(V_{n\times n}\)都是正交矩阵。对于矩阵\(\Sigma_{m\times n}\),我们将其对角线上第 \(i\) 个元素记作\(\sigma_i\) ,即矩阵中第 \(i\) 行第 \(i\) 列的元素,这个矩阵仅在这些位置可能不等于0。更具体的说,假设 \(r = rank(A_{m\times n})\),那么 \(\Sigma_{m\times n}\) 有且仅有 \(r\) 个非零元。一般我们将这些元素在对角线上按从大到小的顺序排列,也即 \(\sigma_1 \ge \sigma_2 \ge \sigma_3 \ge \sigma_r > 0\)。
那么,这样的分解有什么好处呢?明明\(V_{n\times n}^{\mathrm{T}}\) 和 \(V_{n\times n}\) 都是正交矩阵,为什么偏偏要写成转置的样子呢?
为了让大家对SVD 有confidence,我们先来对这两个问题做一个简单的分析。
分析之前,我们先来引入一点记号。
关于实矩阵 \(A_{m\times n}\),最朴素的观点就是将它看成\(m\times n\) 个实数的堆积。那么如果我们认为每一列元素看作一个 特殊的命运共同体 向量以后,我们就可以将这个矩阵看成 \(n\) 个 \(m\) 维的列向量横向排列的结果,假如我们把这些列向量按顺序记作 \(a_1,a_2,\dots,a_n\),那么矩阵 \(A_{m\times n}\) 就可以写成 \(A_{m\times n} = [a_1,a_2,\dots,a_n]\)。
注:后文为了方便,在不引起歧义的情况下,我们便不对矩阵加下标了。
假设 \(D\) 为 \(r\times r\) 的对角矩阵,且 \(d_{ii} = \sigma_i\) ,则我们的奇异值分解就可以看做
对于实在纠结但是又不会的人提供此hint,第二个等式来自于名人名言“左乘矩阵就是行变换,右乘矩阵就是列变换”中的第二句,第三个等式严格说明需要把左边的矩阵拆成 n 个只有单列不一定为0的矩阵的和,右边的矩阵拆成m个只有单行不一定为0的矩阵的和,于是这个矩阵乘法变成了\(m\times n\) 个矩阵乘法的和,但是通过简单检查可以发现只有 \(u_iv_i^{\mathrm{T}}\) 的组合才可能产生非零矩阵,这个小结论对于一般的矩阵乘法也是成立的。
注意,此时 \(u_i v_i^{\mathrm{T}}\) 均为 \(m\times n\) 的矩阵,即我们将 \(A\) 写成了 \(r\) 个矩阵的线性组合。很明显凭直觉可以想到 \(\sigma_i\) 越大,\(\sigma_i u_i v_i^{\mathrm{T}}\) 包含的关于 \(A\) 的信息就越多,于是这就提供了一个很好的即给 \(A\) 降维又尽可能保持 \(A\) 的信息的工具。简单来讲我们可以利用上述表达对 \(A\) 做如下近似
基于这样的想法,各类降维的应用便可以基于SVD 展开了。
我们按如下顺序来 mathematically 地推导一下 SVD。
实对称矩阵可以做谱分解,即对于实对称矩阵 \(A\),存在正交矩阵 \(Q\),使得\(A = Q\Lambda Q^{\mathrm{T}}\)
实对称正定矩阵的特征值大于0,实对称半正定矩阵的特征值大于等于0
对于任意矩阵\(A\) ,\(A^{\mathrm{T}}A\) 均为实对称半正定矩阵
因此,利用谱分解得到 \(A^{\mathrm{T}}A = V\Lambda V^{\mathrm{T}}\),并取 \(\sigma_i = \sqrt{\lambda_i}\) ,我们便得到了SVD中的 \(\Sigma\) 矩阵和 \(V\) 矩阵,最后利用 \(AV = U\Sigma\) 即可推出 \(U\)
回顾SVD的含义,注意到过程中 \(V\) 和 \(U\) 实际上都是存在冗余信息的,这种冗余信息的产生可以在SVD 的实践中清晰的看到原因,在此不予赘述。
实际上,SVD 对矩阵信息进行了非常深刻的提纯,两个正交矩阵分别可以解读为\(U = [\text{列空间} | \text{左零空间}]\) ,\(V = [\text{行空间} | \text{零空间}]\)。
同时,SVD一个非常显著的优点是它的普适性,这种普适而有效的分解手段给许多分析都带来了很多便利。
最后,再给个 SVD 的应用:求最小二乘
有的时候最小二乘解不唯一,这个时候我们希望找到其中模最小的解,一种简单有效的方法就是利用SVD求出伪逆,再利用伪逆去计算最优最小二乘,方法如下
假设问题 \(\min \|y - Ax\|\) 的最优解不唯一,找出\(x^{*}=\arg\min \|x\|\)
这个做法有个重要的点在于正交变换具有不改变模长的性质,正交变换nb!
标签:结果 列空间 cal 特征 pos 元素 空间 世界 等于
原文地址:https://www.cnblogs.com/HanDoMind/p/12922655.html