Geeks_Z の Blog Geeks_Z の Blog
首页
  • 学习笔记

    • 《HTML》
    • 《CSS》
    • 《JavaWeb》
    • 《Vue》
  • 后端文章

    • Linux
    • Maven
    • 汇编语言
    • 软件工程
    • 计算机网络概述
    • Conda
    • Pip
    • Shell
    • SSH
    • Mac快捷键
    • Zotero
  • 学习笔记

    • 《数据结构与算法》
    • 《算法设计与分析》
    • 《Spring》
    • 《SpringMVC》
    • 《SpringBoot》
    • 《SpringCloud》
    • 《Nginx》
  • 深度学习文章
  • 学习笔记

    • 《PyTorch》
    • 《ReinforementLearning》
    • 《MetaLearning》
  • 学习笔记

    • 《高等数学》
    • 《线性代数》
    • 《概率论与数理统计》
  • 增量学习
  • 哈希学习
GitHub (opens new window)

Geeks_Z

AI小学生
首页
  • 学习笔记

    • 《HTML》
    • 《CSS》
    • 《JavaWeb》
    • 《Vue》
  • 后端文章

    • Linux
    • Maven
    • 汇编语言
    • 软件工程
    • 计算机网络概述
    • Conda
    • Pip
    • Shell
    • SSH
    • Mac快捷键
    • Zotero
  • 学习笔记

    • 《数据结构与算法》
    • 《算法设计与分析》
    • 《Spring》
    • 《SpringMVC》
    • 《SpringBoot》
    • 《SpringCloud》
    • 《Nginx》
  • 深度学习文章
  • 学习笔记

    • 《PyTorch》
    • 《ReinforementLearning》
    • 《MetaLearning》
  • 学习笔记

    • 《高等数学》
    • 《线性代数》
    • 《概率论与数理统计》
  • 增量学习
  • 哈希学习
GitHub (opens new window)
  • 线性代数

  • 概率论与数理统计

  • 矩阵

    • 理解矩阵-孟岩
    • 新理解矩阵-苏剑林
    • 低秩近似之路一伪逆
    • 低秩近似之路二SVD
      • 结论初探
      • 一些应用
        • 伪逆通解
        • 矩阵范数
        • 低秩近似
      • 理论基础
        • 谱之定理
        • 数学归纳
        • 奇异分解
      • 近似定理
      • 文章小结
    • 低秩近似之路三CR
    • 低秩近似之路四ID
    • Monarch矩阵
  • 分布

  • 数学笔记
  • 矩阵
Geeks_Z
2024-11-06
目录

低秩近似之路二SVD

低秩近似之路(二):SVD

Author: [苏剑林]

Link: [https://zhuanlan.zhihu.com/p/2957340022]

最佳排版请看原博客:

低秩近似之路(二):SVD - 科学空间|Scientific Spaces (opens new window)上一篇文章中我们介绍了“https://kexue.fm/archives/10366 (opens new window)”,它关系到给定矩阵M A(或B)时优化目标‖AB−M‖F2 最优解。这篇文章我们来关注A,B 不给出时的最优解,即

argminA,B⁡‖AB−M‖F2

其中A∈Rn×r,B∈Rr×m,M∈Rn×m,r<min(n,m)。说白了,这就是要寻找矩阵M “最优r 近似(秩不超过r 最优近似)”。而要解决这个问题,就需要请出大名鼎鼎的“SVD(奇异值分解)”了。虽然本系列把伪逆作为开篇,但它的“名声”远不如SVD,听过甚至用过SVD但没听说过伪逆的应该大有人在,包括笔者也是先了解SVD后才看到伪逆。

接下来,我们将围绕着矩阵的最优低秩近似来展开介绍SVD。

结论初探

对于任意矩阵M∈Rn×m,都可以找到如下形式的奇异值分解(SVD,Singular Value Decomposition):

M=UΣV⊤ 其中U∈Rn×n,V∈Rm×m 是正交矩阵,Σ∈Rn×m 非负对角矩阵: Σi,j={σi,i=j0,i≠j

对角线元素默认从大到小排序,即σ1≥σ2≥σ3≥⋯≥0,这些对角线元素就称为奇异值(Singular Value)。从数值计算角度看,我们可以只保留Σ 非零元素,将U,Σ,V 大小降低到n×r,r×r,m×r(r M 秩),保留完整的正交矩阵则更便于理论分析。

SVD对于复矩阵同样成立,但需要将正交矩阵改为酉矩阵,转置改为共轭转置,但这里我们主要聚焦于跟机器学习关系更为密切的实矩阵结果。SVD的基础理论包括存在性、计算方法以及它与最优低秩近似的联系等,这些内容笔者后面都会给出自己的理解。

在二维平面下,SVD有非常直观的几何意义。二维的正交矩阵主要就是旋转(还有反射,但几何直观的话可以不那么严谨),所以Mx=UΣV⊤x 味着任何对(列)向量x 线性变换,都可以分解为旋转、拉伸、旋转三个步骤,如下图所示:

一些应用

不管是理论分析还是数值计算,SVD都有非常广泛的应用,其背后的原理之一是常用的矩阵/向量范数对正交变换具有不变性,所以SVD左右两个正交矩阵夹着中间一个对角矩阵的特点,往往能用来将很多矩阵相关的优化目标转换为等价的非负对角矩阵特例,起到简化问题的作用。

伪逆通解

以伪逆为例,当A∈Rn×r 秩为r ,我们有

A†=argminB∈Rr×n⁡‖AB−In‖F2

上一篇文章我们通过求导得出了A† 表达式,然后又花了一些心思推广到A 秩小于r 情形。但如果引入SVD的话,那么问题就简化得多了。我们可以将A 解为UΣV⊤,然后将B 示成VZU⊤,注意我们没有规定Z 对角阵,所以B=VZU⊤ 是可以做到的,于是

minB‖AB−In‖F2=minZ‖UΣV⊤VZU⊤−In‖F2=minZ‖U(ΣZ−In)U⊤‖F2=minZ‖ΣZ−In‖F2

最后一个等号是基于我们上一篇文章证明过的结论“正交变换不改变F 数”,这样我们就将问题简化成对角阵Σ 伪逆了。接着我们可以用分块矩阵的形式将ΣZ−In 示为

ΣZ−In=(Σ[:r,:r]0(n−r)×r)(Z[:r,:r]Z[:r,r:])−(Ir0r×(n−r)0(n−r)×rIn−r)=(Σ[:r,:r]Z[:r,:r]−IrΣ[:r,:r]Z[:r,r:]0(n−r)×r−In−r)

这里的切片就按照Python数组的规则来理解。从最后的形式可以看出,要使得ΣZ−In F 数最小,唯一解是Z[:r,:r]=Σ[:r,:r]−1,Z[:r,r:]=0r×(n−r),说白了,Z 是将Σ⊤ 非零元素都取倒数然后转置,我们将它记为Σ†,于是在SVD下就有

A=UΣV⊤⇒A†=VΣ†U⊤

可以进一步证明这个结果也适用于秩小于r A,所以它是一个通用的形式,一些教程也直接将它作为伪逆的定义。此外,我们也可以观察到这个形式不区分左伪逆和右伪逆,这表明同一个矩阵的左伪逆和右伪逆是相等的,因此在说伪逆的时候不用特别区分左右。

矩阵范数

利用正交变换不改变F 数的结论,我们还可以得到

‖M‖F2=‖UΣV⊤‖F2=‖Σ‖F2=∑i=1min(n,m)σi2

也就是说奇异值的平方和等于F 数的平方。除了F 数外,SVD也可以用来计算“谱范数”。上一篇文章我们提到,F 数只是矩阵范数的一种,另一种常用的矩阵范数是基于向量的范数诱导出来的谱范数,它定义为:

‖M‖2=max‖x‖=1‖Mx‖

注意等号右端出现的范数都是向量的范数(模长,2-范数),因此上述定义是明确的。由于它是向量的2-范数所诱导出来的,所以它也称为矩阵的2-范数。数值上,矩阵的谱范数等于它的最大奇异值,即‖M‖2=σ1。要证明这一点,只需要将M SVD为UΣV⊤,然后代入谱范数的定义

max‖x‖=1‖Mx‖=max‖x‖=1‖UΣ(V⊤x)‖=max‖y‖=1‖Σy‖

第二个等号正是利用了正交矩阵不改变向量范数的特点。现在我们相当于将问题简化成为对角阵Σ 谱范数,这个比较简单,设y=(y1,y2,⋯,ym),那么

‖Σy‖2=∑i=1mσi2yi2≤∑i=1mσ12yi2=σ12∑i=1myi2=σ12

所以‖Σy‖ 超过σ1,并且y=(1,0,⋯,0) 取到等号,因此‖M‖2=σ1。对比F 数的结果,我们还可以发现恒成立‖M‖2≤‖M‖F。

低秩近似

最后我们再回到本文的主题最优低秩近似,也就是目标(???)。将M 解为UΣV⊤,那么我们就可以写出

‖AB−M‖F2=‖UU⊤ABVV⊤−UΣV⊤‖F2=‖U(U⊤ABV−Σ)V⊤‖F2=‖U⊤ABV−Σ‖F2

注意U⊤ABV 可以代表任意秩不超过r 矩阵,所以通过SVD我们将矩阵M 最优r 近似简化成了非负对角阵Σ 最优r 近似。

在https://kexue.fm/archives/10226 (opens new window)中我们用同样思路求解过一个类似的优化问题:

argminA,B⁡‖AA⊤M+MB⊤B−M‖F2

利用SVD和正交变换不改变F 数,可以得到

‖AA⊤M+MB⊤B−M‖F2=‖AA⊤UΣV⊤+UΣV⊤B⊤B−UΣV⊤‖F2=‖UU⊤AA⊤UΣV⊤+UΣV⊤B⊤BVV⊤−UΣV⊤‖F2=‖U[(U⊤A)(U⊤A)⊤Σ+Σ(BV)⊤(BV)−Σ]V⊤‖F2=‖(U⊤A)(U⊤A)⊤Σ+Σ(BV)⊤(BV)−Σ‖F2

这就将原本一般矩阵M 优化问题转化为M 非负对角阵的特例,降低了分析难度。注意如果A,B 秩不超过r,那么AA⊤M+MB⊤B 秩顶多为2r(假设2r<min(n,m)),所以原始问题也是在求M 最优2r 近似,转化为非负对角阵后就是求非负对角阵的最优2r 近似,跟前一个问题本质上是一样的。

理论基础

肯定了SVD的作用后,我们就需要补充一些理论证明了。首先要确保SVD的存在性,其次要找出至少一种计算方案,这样SVD的各种应用才算是切实可行的,接下来我们将用同一个过程把这两个问题一起解决掉。

谱之定理

在此之前,我们需要先引入一个“谱定理”,它既可以说是SVD的特例,也可以说是SVD的基础:

谱定理 对于任意实对称矩阵M∈Rn×n,都存在谱分解(也称特征值分解) M=UΛU⊤ 其中U,Λ∈Rn×n,U 正交矩阵,Λ=diag(λ1,⋯,λn) 对角矩阵。

说白了,谱定理就是断言任何实对称矩阵都可以被正交矩阵对角化,这基于如下两点性质:

1、实对称矩阵的特征值和特征向量都是实的; 2、实对称矩阵不同特征值对应的特征向量是正交的。

这两点性质的证明其实很简单,这里就不展开了。基于这两点我们可以立马得出,如果实对称矩阵M n 不同的特征值,那么谱定理成立:

Mu1=λ1u1Mu2=λ2u2⋮Mun=λnun⇒M(u1,u2,⋯,un)⏟U=(u1,u2,⋯,un)⏟U(λ10⋯00λ2⋯0⋮⋮⋱⋮00⋯λn)⏟Λ

其中λ1,λ2,⋯,λn 特征值,u1,u2,⋯,un 对应的单位特征(列)向量,写成矩阵乘法形式就是MU=UΛ,所以M=UΛU⊤。证明的难点是如何拓展到有相等特征值的情形,但在思考完整的证明之前,我们可以先从一个不严谨的角度感受一下,这个不等特征值的结果是一定可以推广到一般情形的。

为什么这样说呢?从数值角度看,两个实数绝对相等的概率几乎为零,所以根本不需要考虑特征值相等的情形;用更数学的话说,那就是特征值不等的实矩阵在全体实矩阵中稠密,所以我们总可以找到一簇矩阵Mϵ,当ϵ>0 它的特征值两两不等,当ϵ→0 它等于M。这样一来,每个Mϵ 们都可以分解为UϵΛϵUϵ⊤,取ϵ→0 得到M 谱分解。

数学归纳

不幸的是,上面这段话只能作为一个直观但不严谨的理解方式,因为将这段话转化为严格的证明还是很困难的。事实上,严格证明谱定理的最简单方法可能是数学归纳法,即在任意n−1 实对称方阵都可以谱分解的假设上,我们证明M 可以谱分解。

证明的关键思路是将M 解为某个特征向量及其n−1 正交子空间,从而可以应用归纳假设。具体来说,设λ1 M 一个非零特征值,u1 对应的单位特征向量,那么有Mu1=λ1u1,我们可以补充n−1 跟u1 交的单位向量Q=(q2,⋯,qn),使得(u1,q2,⋯,qn)=(u1,Q) 为一个正交矩阵。现在我们考虑

(u1,Q)⊤M(u1,Q)=(u1⊤Mu1u1⊤MQQ⊤Mu1Q⊤MQ)=(λ101×(n−1)0(n−1)×1Q⊤MQ)

注意到Q⊤MQ 一个n−1 方阵,并且很明显是一个实对称矩阵,所以根据假设它可以谱分解为VΛ2V⊤,这里V n−1 正交矩阵,Λ2 n−1 对角阵,那么我们有(QV)⊤MQV=Λ2。根据这个结果,我们考虑U=(u1,QV),可以验证它也是一个正交矩阵,并且

U⊤MU=(u1,QV)⊤M(u1,QV)=(λ101×(n−1)0(n−1)×1Λ2)

也就是说U 是可以将M 角化的正交矩阵,所以M 以完成谱分解,这就完成了数学归纳法最关键的一步。

奇异分解

至此,所有准备工作都已经就绪,我们可以正式证明SVD的存在性,并给出一个实际计算的方案。

上一节我们引入了谱分解,不难发现它跟SVD的相似性,但也有两点明显区别:1、谱分解只适用于实对称矩阵,SVD适用于任意实矩阵;2、SVD的对角阵Σ 非负的,但谱分解的Λ 未必。那么,它们具体联系是什么呢?容易验证,如果M SVD为UΣV⊤,那么

MM⊤=UΣV⊤VΣ⊤U⊤=UΣΣ⊤U⊤M⊤M=VΣ⊤U⊤UΣV⊤=VΣ⊤ΣV⊤

注意到ΣΣ⊤ Σ⊤Σ 是对角阵,所以这意味着MM⊤ M⊤M 谱分解分别是UΣ2U⊤ VΣ2V⊤。这看起来将MM⊤、M⊤M 别做谱分解就可以得到M SVD了?确实没错,这可以作为SVD的一种计算方式,但我们无法直接通过它证明这样得出的U,Σ,V 足M=UΣV⊤。

解决问题的关键是只对MM⊤ M⊤M 一做谱分解,然后通过另外的方法构造另一侧的正交矩阵。不失一般性,我们设M 秩为r≤m,考虑对M⊤M 谱分解为VΛV⊤,注意M⊤M 一个半正定矩阵,所以Λ 非负的,并且假设对角线元素已经从大到小排列,秩r 味着只有前r λi 大于0的,我们定义

Σ[:r,:r]=(Λ[:r,:r])1/2,U[:n,:r]=MV[:m,:r]Σ[:r,:r]−1

可以验证

U[:n,:r]⊤U[:n,:r]=Σ[:r,:r]−1V[:m,:r]⊤M⊤MV[:m,:r]Σ[:r,:r]−1=Σ[:r,:r]−1V[:m,:r]⊤VΛV⊤V[:m,:r]Σ[:r,:r]−1=Σ[:r,:r]−1I[:r,:m]ΛI[:m,:r]Σ[:r,:r]−1=Σ[:r,:r]−1Λ[:r,:r]Σ[:r,:r]−1=Ir

这里约定切片的优先级高于转置、求逆等矩阵运算,即U[:n,:r]⊤=(U[:n,:r])⊤、Σ[:r,:r]−1=(Σ[:r,:r])−1 。上述结果表明U[:n,:r] 正交矩阵的一部份。接着我们有

U[:n,:r]Σ[:r,:r]V[:m,:r]⊤=MV[:m,:r]Σ[:r,:r]−1Σ[:r,:r]V[:m,:r]⊤=MV[:m,:r]V[:m,:r]⊤

注意MVV⊤=M 恒成立的,而V[:m,:r] V 前r ,根据M⊤M=VΛV⊤ 们有可以写出(MV)⊤MV=Λ,我们记V=(v1,v2,⋯,vm),那么就有‖Mvi‖2=λi,由于秩r 设定,所以当i>r λi=0,这意味着此时的Mvi 际上是一个零向量,所以

M=MVV⊤=(MV[:m,:r],MV[:m,r:])(V[:m,:r]⊤V[:m,r:]⊤)=(MV[:m,:r],0m×(m−r))(V[:m,:r]⊤V[:m,r:]⊤)=MV[:m,:r]V[:m,:r]⊤

这表明U[:n,:r]Σ[:r,:r]V[:m,:r]⊤=M,再结合U[:n,:r] 正交矩阵的一部分这一事实,我们已经得到了M SVD的关键部分,我们只需要将Σ[:r,:r] 零成n×m 小的Σ,将U[:n,:r] 全为n×m 正交矩阵U,那么就得到完整的SVD形式M=UΣV⊤。

近似定理

最后,别忘了我们的最终目标是开始的优化问题(???)。有了SVD后,我们就可以给出答案了:

如果M∈Rn×m SVD为UΣV⊤,那么M 最优r 近似为U[:n,:r]Σ[:r,:r]V[:m,:r]⊤。

这称为“Eckart-Young-Mirsky定理”。在介绍SVD应用的“https://zhuanlan.zhihu.com/p/2957340022/edit#低秩近似 (opens new window)”一节中,我们表明通过SVD可以将一般矩阵的最优r 近似问题简化为非负对角阵的r 近似,所以“Eckart-Young-Mirsky定理”相当于说非负对角阵的最优r 近似就是只保留对角线最大的r 元素的矩阵。

可能有读者认为“这难道不是显然成立吗?”,但事实是虽然结论很符合直觉,但它确实不是显然成立的。下面我们就聚焦于求解:

minA,B‖AB−Σ‖F2

其中A∈Rn×r,B∈Rr×m,Σ∈Rn×m,r<min(n,m)。如果给定A 话,B 最优解我们在上一篇文章中已经求出,结果是A†Σ,所以我们有

minA,B‖AB−Σ‖F2=minA‖(AA†−In)Σ‖F2

设矩阵A SVD为UAΣAVA⊤,那么A†=VAΣA†UA⊤,以及

‖(AA†−In)Σ‖F2=‖(UAΣAVA⊤VAΣA†UA⊤−In)Σ‖F2=‖(UAΣAΣA†UA⊤−In)Σ‖F2=‖UA(ΣAΣA†−In)UA⊤Σ‖F2=‖(ΣAΣA†−In)UA⊤Σ‖F2

由伪逆的计算公式知ΣAΣA† 一个对角阵,并且对角线上前rA 元素为1(rA≤r A 秩),其余都是0,所以(ΣAΣA†−In)UA⊤ 当于只保留正交矩阵UA⊤ 后k=n−rA ,所以最终可以简化成

minA‖(AA†−In)Σ‖F2=mink,U‖UΣ‖F2s.t.k≥n−r,U∈Rk×n,UU⊤=Ik

现在根据F 数定义可以写出

‖UΣ‖F2=∑i=1k∑j=1nui,j2σj2=∑j=1nσj2∑i=1kui,j2⏟wj=∑j=1nσj2wj

注意到0≤wj≤1,以及w1+w2+⋯+wn=k,在此约束下最右端的最小值只能是最小的k σj2 和,又因为σj 经从大到小排好序,所以

mink,U‖UΣ‖F2=mink∑j=n−k+1nσj2=∑j=r+1nσj2

也就是说,Σ 它的最优r 近似的误差(F 数平方)是∑j=r+1nσj2,这正好是保留对角线最大的r 元素后所产生的误差,所以我们证明了“非负对角阵的最优r 近似就是只保留对角线最大的r 元素的矩阵”。当然,这只能说是一个解,我们没有否定多解的可能性。

值得指出的是,Eckart-Young-Mirsky定理不仅对F 数成立,还对谱范数成立,谱范数的证明实际上还简单一点,这里就不展开了,有兴趣的读者自行参考维基百科“https://en.wikipedia.org/wiki/Low-rank_approximation (opens new window)”条目。

文章小结

本文的主角是声名显赫的SVD(奇异值分解),想必不少读者已经对它有所了解。在这篇文章中,我们主要围绕着SVD与低秩近似的相关内容进行展开,对SVD的存在性、计算以及与低秩近似的联系等理论内容给出了尽可能简单的证明过程。

#矩阵
上次更新: 2025/06/25, 11:25:50
低秩近似之路一伪逆
低秩近似之路三CR

← 低秩近似之路一伪逆 低秩近似之路三CR→

最近更新
01
帮助信息查看
06-08
02
常用命令
06-08
03
学习资源
06-07
更多文章>
Theme by Vdoing | Copyright © 2022-2025 Geeks_Z | MIT License
京公网安备 11010802040735号 | 京ICP备2022029989号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式