低秩近似之路(二):奇异值分解(SVD)

 894ebf007781de1870c7185b844aef89.gif

©PaperWeekly 原创 · 作者 | 苏剑林

单位 | 科学空间

研究方向 | NLP、神经网络

上一篇文章中我们介绍了“伪逆”,它关系到给定矩阵 和 (或 )时优化目标 的最优解。这篇文章我们来关注 都不给出时的最优解,即

ba309219042ed064b9c41ec3846fb70c.png

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

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

4bb4cee7b524cbc3c3b19eed35cee8cf.png

结论初探

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

ca88d5558cf0be4aa0ae73fb9f7d07e2.png

其中 都是正交矩阵, 是非负对角矩阵:

93b960283d5e73f70d72dbed25deb3a4.png

对角线元素默认从大到小排序,即 ,这些对角线元素就称为奇异值(Singular Value)。从数值计算角度看,我们可以只保留 中非零元素,将 的大小降低到 ( 是 的秩),保留完整的正交矩阵则更便于理论分析。

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

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

084be77b76d45f6f65a3a4dbe8c614f4.png

▲ SVD的几何意义

5887d9fcff9db23fcbf4c7a39df766a0.png

一些应用

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

b1c56c51084a128e3b613834dc1877a1.png

伪逆通解

以伪逆为例,当 的秩为 时,我们有:

0636e771bef3bfb3185a1b8317a131d0.png

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

63c72c95d3fe78e844dffab7c6efd0e7.png

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

1602ae7945cca51506f7167b7fde1699.png

这里的切片就按照 Python 数组的规则来理解。从最后的形式可以看出,要使得 的 范数最小,唯一解是 ,,说白了, 就是将 的非零元素都取倒数然后转置,我们将它记为 ,于是在 SVD 下就有:

aac197f600b40298548757caf51e15be.png

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

96868b6311abb85eaabf082a82170885.png

矩阵范数

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

6c0465260e0c7e7e47fc90558dc3f1ef.png

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

e39d32d77663055de7d63106d90caf40.png

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

fb84205632d404bfb34c79fa8d09a1b2.png

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

51724c93027ec3e3d41b5109d9c608b5.png

所以 不超过 ,并且 时取到等号,因此 。对比 范数的结果,我们还可以发现恒成立 。

213ec5e895aff8b340edff004bebdbf8.png

低秩近似

最后我们再回到本文的主题最优低秩近似,也就是目标(1)。将 分解为 ,那么我们就可以写出:

67df3d600c55808dab3d1be90f3d25ae.png

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

《对齐全量微调!这是我看过最精彩的 LoRA 改进》中我们用同样思路求解过一个类似的优化问题:

cca10f6aa0fa9a1032af36c6bf746147.png

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

b495944d3ca00f5b84cd2f8d79d42edb.png

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

217e6d32368ef5f41a2fa184f96fcc96.png

理论基础

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

cf10356b2ef1c1fc76f2c834a207c4e9.png

谱之定理

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

谱定理:对于任意实对称矩阵 ,都存在谱分解(也称特征值分解)

ab128bc95baa2c9b7fb591291ddbabd3.png

其中 , 是正交矩阵, 是对角矩阵。

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

1. 实对称矩阵的特征值和特征向量都是实的;

2. 实对称矩阵不同特征值对应的特征向量是正交的。

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

7570da76a0460b5e80553088692ac36e.png

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

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

323416c69073f1e85bbb6605db26133c.png

数学归纳

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

证明的关键思路是将 分解为某个特征向量及其 维正交子空间,从而可以应用归纳假设。具体来说,设 是 的一个非零特征值, 是对应的单位特征向量,那么有 ,我们可以补充 个跟 正交的单位向量 ,使得 成为一个正交矩阵。现在我们考虑:

e509ebaf47e0c3a036178f21c572751b.png

注意到 是一个 阶方阵,并且很明显是一个实对称矩阵,所以根据假设它可以谱分解为 ,这里 是 阶正交矩阵, 是 阶对角阵,那么我们有 。根据这个结果,我们考虑 ,可以验证它也是一个正交矩阵,并且

f8c401c71231cf557d7d16e653fc1b3f.png

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

569bef25f360b1bc79bbeb9027fc6840.png

奇异分解

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

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

3b935139c674a75f44daee22f9c1f1e9.png

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

解决问题的关键是只对 或 之一做谱分解,然后通过另外的方法构造另一侧的正交矩阵。

不失一般性,我们设 的秩为 ,考虑对 做谱分解为 ,注意 是一个半正定矩阵,所以 是非负的,并且假设对角线元素已经从大到小排列,秩 意味着只有前 个 是大于 0 的,我们定义:

0daaee2b77a14bf813c9790170132519.png

可以验证

2554a26657786323a07f27bd859f3ac1.png

这里约定切片的优先级高于转置、求逆等矩阵运算,即 、 等。上述结果表明 是正交矩阵的一部份。接着我们有

b6312697c21939e9f1b21b99838760e8.png

注意 是恒成立的,而 是 的前 列,根据 我们有可以写出 ,我们记 ,那么就有 ,由于秩 的设定,所以当 时 ,这意味着此时的 实际上是一个零向量,所以

2f5a8009423f2d7f12f3189a8d12234a.png

这表明 ,再结合 是正交矩阵的一部分这一事实,我们已经得到了 的 SVD 的关键部分,我们只需要将 补零成 大小的 ,将 补全为 的正交矩阵 ,那么就得到完整的 SVD 形式 。

6372d093d55f3e3cdb66af5dde1f9bff.png

近似定理

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

如果 的 SVD 为 ,那么 的最优 秩近似为 。

这称为 “Eckart-Young-Mirsky 定理”。在介绍 SVD 应用的“低秩近似”一节中,我们表明通过 SVD 可以将一般矩阵的最优 r 秩近似问题简化为非负对角阵的 r 秩近似,所以 “Eckart-Young-Mirsky 定理”相当于说非负对角阵的最优 r 秩近似就是只保留对角线最大的 个元素的矩阵。

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

5d5b3dbc59f401a697f3fdff7cb8ba76.png

其中 。如果给定 的话, 的最优解我们在上一篇文章中已经求出,结果是 ,所以我们有

a6fdfce95504751a70cbb9220d1d8983.png

设矩阵 的 SVD 为 ,那么 ,以及:

d63720c40c96140c0d3fd409a39e9c11.png

由伪逆的计算公式知 是一个对角阵,并且对角线上前 个元素为 1( 是 的秩),其余都是 0,所以 相当于只保留正交矩阵 的后 行,所以最终可以简化成

940bdd0e21d77fcaa395783ef9cfc7a8.png

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

47489979987a2d65da16c8bebf65771d.png

注意到 ,以及 ,在此约束下最右端的最小值只能是最小的 个 之和,又因为 已经从大到小排好序,所以

fc5151ea99f450ac49d0da24f2a89867.png

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

值得指出的是,Eckart-Young-Mirsky 定理不仅对 F 范数成立,还对谱范数成立,谱范数的证明实际上还简单一点,这里就不展开了,有兴趣的读者自行参考维基百科 “Low-rank approximation” [2] 条目。

94ec722f3258eed2fb6d810c7b406b90.png

文章小结

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

outside_default.png

参考文献

outside_default.png

[1] https://en.wikipedia.org/wiki/Low-rank_approximation

更多阅读

374e1530bb65f4d70c0c65ff4307748b.png

ca6d632b3d5aa57a9d1cad9d86e3028a.png

2a1e16642de66b297c16a753b48af583.png

87ec8ba6e7d0b0dc6381da5b9c0e48e8.gif

#投 稿 通 道#

 让你的文字被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。

📝 稿件基本要求:

• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注 

• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算

📬 投稿通道:

• 投稿邮箱:hr@paperweekly.site 

• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者

• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿

48d18b2a316d96c99dff4324db397420.png

△长按添加PaperWeekly小编

🔍

现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧

·

·

·

4ab7922ea096fea202c0189cba6ac10e.jpeg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值