尝试从源头理解 SVD 原理和计算

news/2025/10/31 18:10:08/文章来源:https://www.cnblogs.com/marsggbo/p/19180904

SVD 是怎么被“想出来”的?——从一个朴素问题出发

你有没有见过这样的公式?

\[M = U \Sigma V^T \]

看起来挺简洁,对吧?但当你翻开教材,发现这背后藏着一堆正交矩阵、奇异值、特征向量……瞬间头大。

我每次看到 SVD,都忍不住想:这玩意儿到底是怎么被“想出来”的?是某个数学家喝多了咖啡,突然梦见上帝说:“听着,所有矩阵都能拆成三步走……”

今天,我们不背公式,不套定理。我们要还原 SVD 的“发明”过程——从一个最朴素的问题出发:一个矩阵,到底对向量做了什么?


一、矩阵左乘 = 沿坐标轴的伸缩(从最简单例子开始)

我们从一个最简单的 \(2 \times 2\) 对角矩阵入手:

\[D = \begin{bmatrix} 3 & 0 \\ 0 & 1 \end{bmatrix} \]

取任意向量 \(\mathbf{x} = \begin{bmatrix} x_1 \\ x_2 \end{bmatrix}\),左乘后得到:

\[D \mathbf{x} = \begin{bmatrix} 3x_1 \\ x_2 \end{bmatrix} \]

这意味着:输入向量在标准基方向 \(\mathbf{e}_1 = (1,0)^T\)\(\mathbf{e}_2 = (0,1)^T\) 上被独立拉伸——\(x\) 方向放大 3 倍,\(y\) 方向不变。

这个例子揭示了矩阵左乘的本质:线性变换 = 对输入空间的各个方向进行伸缩(可能还混合)
而对角矩阵之所以“干净”,是因为它恰好以标准基为伸缩方向,没有混合。

但现实中的矩阵通常不是对角的。那么问题来了:非对角矩阵是否也能找到自己的“伸缩方向”?


二、EVD:方阵的“主伸缩方向”与秩的含义

考虑一个对称方阵:

\[A = \begin{bmatrix} 2 & 1 \\ 1 & 2 \end{bmatrix} \]

我们寻找那些\(A\) 作用后只伸缩、不转向的向量 \(\mathbf{v}\),即满足:

\[A \mathbf{v} = \lambda \mathbf{v} \]

这就是特征方程,其中 \(\lambda\) 是特征值,\(\mathbf{v}\) 是对应的特征向量。

对上面的 \(A\),解得两组解:

  • \(\lambda_1 = 3\),对应 \(\mathbf{v}_1 = \begin{bmatrix} 1 \\ 1 \end{bmatrix}\)
  • \(\lambda_2 = 1\),对应 \(\mathbf{v}_2 = \begin{bmatrix} 1 \\ -1 \end{bmatrix}\)

将这两个向量单位化(归一化),得到标准正交基:

\[\mathbf{q}_1 = \frac{1}{\sqrt{2}} \begin{bmatrix} 1 \\ 1 \end{bmatrix}, \quad \mathbf{q}_2 = \frac{1}{\sqrt{2}} \begin{bmatrix} 1 \\ -1 \end{bmatrix} \]

把它们拼成正交矩阵 \(Q = [\mathbf{q}_1, \mathbf{q}_2]\),则 \(Q^T Q = I\)
由于 \(A \mathbf{q}_i = \lambda_i \mathbf{q}_i\) 对每个列都成立,我们可以把所有等式合写为:

\[A Q = Q \Lambda \quad \Rightarrow \quad A = Q \Lambda Q^T \]

其中

\[\Lambda = \begin{bmatrix} 3 & 0 \\ 0 & 1 \end{bmatrix} \]

这就是特征值分解(EVD)。它告诉我们:任何可对角化的方阵,本质上只是在一组特定正交方向上做独立伸缩


满秩 vs 低秩:不只是数学,更是能力

一个 \(n \times n\) 矩阵的“能力”取决于它有多少个非零特征值。

  • 满秩矩阵:比如

    \[A = \begin{bmatrix} 2 & 1 \\ 1 & 2 \end{bmatrix} \]

    有两个非零特征值(3 和 1),秩为 2。它能对任意方向的输入产生非零输出——换句话说,它可以“操控”整个 2D 空间。

  • 低秩矩阵:比如

    \[B = \begin{bmatrix} 1 & 1 \\ 1 & 1 \end{bmatrix} \]

    特征值为 2 和 0,秩为 1。它只能在方向 \(\begin{bmatrix}1 \\ 1\end{bmatrix}\) 上拉伸,而在垂直方向 \(\begin{bmatrix}1 \\ -1\end{bmatrix}\) 上输出恒为零。无论你输入什么,结果永远落在一条直线上

在深度学习中,这种差异至关重要:

  • 满秩变换(如初始权重)具有最大表达能力,能响应任意输入变化;
  • 低秩更新(如微调时的 \(\Delta W\))则表明:模型真正需要调整的,往往只是少数几个“敏感方向”。

这正是 LoRA(Low-Rank Adaptation)有效的核心原因:我们不需要改动整个高维权重矩阵,只需在低维子空间中微调,就能高效适配新任务。

但 EVD 有一个致命限制:它只适用于方阵。一旦矩阵是“长方形”的,比如 \(M \in \mathbb{R}^{n \times m}\)\(n \ne m\),特征方程 \(M \mathbf{v} = \lambda \mathbf{v}\) 就因维度不匹配而失去意义。

于是,我们必须回答一个更一般的问题:非方阵如何描述其“伸缩行为”?


三、SVD:为非方阵找到“跨空间的主方向”

面对 \(M \in \mathbb{R}^{n \times m}\),我们放弃“输入输出方向相同”的执念,转而问:

是否存在输入空间的一组标准正交基 \(\{\mathbf{v}_1, \dots, \mathbf{v}_m\}\) 和输出空间的一组标准正交基 \(\{\mathbf{u}_1, \dots, \mathbf{u}_n\}\),使得

\[M \mathbf{v}_i = \sigma_i \mathbf{u}_i \quad (i = 1, \dots, r = \min(n,m)) \]

这个等式是我们希望达成的目标:\(i\) 个输入主方向 \(\mathbf{v}_i\),只激发第 \(i\) 个输出主方向 \(\mathbf{u}_i\),放大 \(\sigma_i\)

我们按拉伸强度从大到小排序:\(\sigma_1 \geq \sigma_2 \geq \cdots \geq \sigma_r \geq 0\)

更一般的表示是

\[MV=U\Sigma \]

后面我们可以知道\(V\)是正交矩阵,所以上式两边都右乘\(V^T\),就可以得到常见的 SVD 的形式了

\[MVV^T=MVV^{-1}=M=U\Sigma V^T \]

3.1 以最强方向 \(\sigma_1\) 为例

回归正题,我们该如何计算 \(\sigma_i\)呢?我们以最强方向,即 \(\sigma_1\)为最大值的情况为例。

假设存在单位向量 \(\mathbf{v}_1\)\(\mathbf{u}_1\),使得:

\[M \mathbf{v}_1 = \sigma_1 \mathbf{u}_1, \quad \|\mathbf{v}_1\| = \|\mathbf{u}_1\| = 1. \]

两边取范数,得:

\[\|M \mathbf{v}_1\| = \|\sigma_1 \mathbf{u}_1\| = \sigma_1. \]

因此,\(\sigma_1\) 就是 \(M\) 在单位输入下能产生的最大输出长度。
换句话说,\(\sigma_1\) 是如下优化问题的解:

\[\sigma_1 = \max_{\|\mathbf{v}\| = 1} \|M \mathbf{v}\|. \]

由于范数非负,等价于最大化其平方:

\[\sigma_1^2= \max_{\|\mathbf{v}\| = 1} \|M \mathbf{v}\|^2 = \max_{\|\mathbf{v}\| = 1} \mathbf{v}^T (M^T M) \mathbf{v}. \]

3.2 计算奇异值和右奇异矩阵 V

\(A = M^T M\)。矩阵 \(A\)\(m \times m\) 实对称矩阵,且对任意 \(\mathbf{v}\)\(\mathbf{v}^T A \mathbf{v} \geq 0\),故 \(A\) 半正定。记 \(A\) 的特征值按非增序排列为 \(\lambda_1 \geq \lambda_2 \geq \cdots \geq \lambda_m \geq 0\),对应的标准正交特征向量为 \(\mathbf{q}_1, \dots, \mathbf{q}_m\),即

\[A \mathbf{q}_i = \lambda_i \mathbf{q}_i \]

瑞利商的极值性质表明(原理推导见本节末尾):

\[\max_{\|\mathbf{v}\| = 1} \mathbf{v}^T A \mathbf{v} = \lambda_1, \]

且最大值在 \(\mathbf{v} = \mathbf{q}_1\) 处取得。更一般地,对 \(k = 1, \dots, m\)

\[\max_{\substack{\|\mathbf{v}\| = 1 \\ \mathbf{v} \perp \mathbf{q}_1, \dots, \mathbf{q}_{k-1}}} \mathbf{v}^T A \mathbf{v} = \lambda_k, \]

\(\mathbf{v} = \mathbf{q}_k\) 处取得。说人话就是,第k 大的值就是\(\lambda_k\),而且是在\(v=q_k\)时可以得到。

所以

\[\sigma_i^2 = \max_{\|\mathbf{v}\| = 1} \mathbf{v}^T (M^T M) \mathbf{v} = \lambda_i \quad i = 1, \dots, m, \]

\(\sigma_i=\sqrt{\lambda_i}, \sigma_1 \geq \sigma_2 \geq \cdots \geq \sigma_m \geq 0\),且

\[v_i=q_i \]

至此,我们成功求解了矩阵 V和奇异值矩阵\(\Sigma\)

瑞利商性质:对实对称矩阵 \(A\),定义其瑞利商

\[R_A(\mathbf{c}) = \frac{\mathbf{c}^T A \mathbf{c}}{\mathbf{c}^T \mathbf{c}}, \quad \mathbf{c} \ne \mathbf{0}. \]

\(\|\mathbf{c}\| = 1\) 时,\(R_A(\mathbf{c}) = \mathbf{c}^T A \mathbf{c}\)
\(A\) 的特征值按非增序排列为 \(\lambda_1 \geq \lambda_2 \geq \cdots \geq \lambda_m \geq 0\),对应的标准正交特征向量为 \(\mathbf{q}_1, \dots, \mathbf{q}_m\),即

\[A \mathbf{q}_i = \lambda_i \mathbf{q}_i, \quad \mathbf{q}_i^T \mathbf{q}_j = \delta_{ij}. \]

瑞利商的极值性质表明:

\[\max_{\|\mathbf{c}\| = 1} \mathbf{c}^T A \mathbf{c} = \lambda_1, \]

且最大值在 \(\mathbf{c} = \mathbf{q}_1\) 处取得。更一般地,对 \(k = 1, \dots, m\)

\[\max_{\substack{\|\mathbf{c}\| = 1 \\ \mathbf{c} \perp \mathbf{q}_1, \dots, \mathbf{q}_{k-1}}} \mathbf{c}^T A \mathbf{c} = \lambda_k, \]

\(\mathbf{c} = \mathbf{q}_k\) 处取得。
因此,令

\[\sigma_i = \sqrt{\lambda_i}, \quad \mathbf{c}_i = \mathbf{q}_i, \quad i = 1, \dots, m, \]

\(\sigma_1 \geq \sigma_2 \geq \cdots \geq \sigma_m \geq 0\),且

\[\|M \mathbf{c}_i\|^2 = \mathbf{c}_i^T A \mathbf{c}_i = \lambda_i = \sigma_i^2. \]

3.3 构造左奇异矩阵

\(r = \operatorname{rank}(M)\)。由于 \(\operatorname{rank}(M) = \operatorname{rank}(M^T M)\),有 \(\sigma_i > 0\) 当且仅当 \(i \leq r\)

对每个 \(i = 1, \dots, r\),根据最前面的定义\(M \mathbf{v}_i = \sigma_i \mathbf{u}_i\),我们有

\[\mathbf{u}_i = \frac{1}{\sigma_i} M \mathbf{v}_i. \]

至此就可算出对应的\(\sigma_i,v_i,u_i\)。我们会发现求得的 \(u_i\)也是基坐标,彼此正交:

\[\|\mathbf{u}_i\| = \frac{1}{\sigma_i} \|M \mathbf{v}_i\| = \frac{1}{\sigma_i} \cdot \sigma_i = 1, \]

\[M \mathbf{v}_i = \sigma_i \mathbf{u}_i. \]

\(i \ne j \leq r\),有

\[\mathbf{u}_i^T \mathbf{u}_j = \frac{1}{\sigma_i \sigma_j} \mathbf{v}_i^T M^T M \mathbf{v}_j = \frac{1}{\sigma_i \sigma_j} \mathbf{v}_i^T (\sigma_j^2 \mathbf{v}_j) = \sigma_j \cdot \mathbf{v}_i^T \mathbf{v}_j = 0, \]

\(\{\mathbf{u}_1, \dots, \mathbf{u}_r\}\)\(\mathbb{R}^n\) 中的标准正交向量组。

前面计算的\(u_i\)是与\(v_i\)一一对应的,但是当 \(r < n\)时,剩下的\(u_i\)该如何计算呢?我们会发现存在 \(n - r\) 维子空间

\[\mathcal{U}_\perp = \left\{ \mathbf{x} \in \mathbb{R}^n \,\middle|\, \mathbf{u}_i^T \mathbf{x} = 0,\ \forall i = 1, \dots, r \right\}. \]

\(\mathcal{U}_\perp\) 中任取一组标准正交基 \(\{\mathbf{u}_{r+1}, \dots, \mathbf{u}_n\}\),则最终的左奇异矩阵为

\[U = [\mathbf{u}_1, \dots, \mathbf{u}_n] \in \mathbb{R}^{n \times n} \]

为正交矩阵。

3.4 拼装 SVD

  • \(V = [\mathbf{v}_1, \dots, \mathbf{v}_m] \in \mathbb{R}^{m \times m}\)
  • \(\Sigma \in \mathbb{R}^{n \times m}\) 为对角矩阵,其对角元为 \(\sigma_1, \dots, \sigma_r\),其余元素为 0。

\(M \mathbf{v}_i = \sigma_i \mathbf{u}_i\)\(i = 1, \dots, r\) 成立,且对 \(i > r\)\(\sigma_i = 0\),可得矩阵等式

\[M V = U \Sigma. \]

由于 \(V\) 正交(\(V^T V = I_m\)),右乘 \(V^T\)

\[M = U \Sigma V^T. \]


结语

SVD 并非凭空定义的数学魔术,而是为了解决“非方阵如何描述伸缩”这一朴素问题,从对角矩阵 → EVD → 跨空间推广,一步步自然推导出的必然结果。

当你再看到 \(M = U \Sigma V^T\),请记住:
它只是在说——先转一下,再拉伸,再转一下。
而这,就是所有线性变换最干净的表达方式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/952090.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年家用电梯厂家推荐榜:美利达电梯实力登顶

随着人口老龄化加剧、别墅及老旧小区加装电梯需求增长,家用电梯市场正迎来快速发展期。2025年家用电梯市场规模预计持续扩大,但市场增长也带来厂商技术实力、产品安全性、服务质量参差不齐的问题,家庭用户在选购时往…

流程定时任务设置参数

总结几点内容:windows命令行或者放在task schedule里执行的bat(批处理文件),应该以ANSI编码的方式进行保存。 如果bat文件里不含任务中文,则可以以UTF-8的编码格式保存,但不能带BOM。windows的命令行执行批处理文件…

activemqCVE-2016-3088漏洞复现

activemq/CVE-2016-3088漏洞复现 原理 影响版本:Apache ActiveMQ 5.x~5.14.0 漏洞原理:ActiveMQ的web控制台分三个应用,admin、api和fileserver,其中admin是管理员页面,api是接口,fileserver是储存文件的接口;a…

FortiGuard实验室互联网服务安全技术解析

本文详细介绍了FortiGuard实验室的互联网安全服务体系,涵盖威胁检测、防护响应、安全运维等核心技术模块,包含恶意软件防护、入侵防御、云安全等具体技术方案,以及产品集成与版本更新机制。研究服务 研究研究新兴网…

神舟二十一号|2030年前实现中国人登陆月球的目标不动摇

10月30日,神舟二十一号载人飞行任务新闻发布会在酒泉卫星发射中心举行。 中国载人航天工程新闻发言人、中国载人航天工程办公室综合计划局局长张静波表示,2030年前实现中国人登陆月球的目标不动摇。目前,载人登月任…

博客园打印 - miao

F12 + (function(){use strict;$("#comment_form, #header, #leftmenu, #big_banner, #footer, #blog_post_info_block").remove();$("#content").css(margin,0);$("body").css(margin,…

简单线段树

#include <bits/stdc++.h> using namespace std; using ull = unsigned long long; using ll = long long; const int N = 50010; int T; struct node {int l, r;ll sum, add; } tr[N * 4]; ll a[N]; inline in…

vn.py 的日志问题 回测策略的日志处理

vn.py 的日志问题 回测策略的日志处理在回测时,如果不用ui, 测试策略。 范例是直接使用: engine = BacktestingEngine()engine.set_parameters(**test_setting)engine.add_strategy(strategy, strategy_setting)eng…

Python文件操作(下)_ 会写文件,程序便有了记忆

Python文件操作(下)_ 会写文件,程序便有了记忆1

Python文件操作(上)_ 会读文件,程序便有了眼睛

Python文件操作(上)_ 会读文件,程序便有了眼睛#方法一:读取文件f = open("./_math.py", "r", encoding="utf-8")content = f.readlines()for line in content: print(line)f.clo…

KeyShot许可管理监控工具使用指南

在团队或企业中,随着3D渲染需求的增长,对KeyShot许可证的有效管理变得至关重要。为了帮助您更好地掌握KeyShot许可管理的监控工具,本文将提供一份详尽的使用指南,确保您能够轻松实现许可证使用的透明化。 一、了解…

精益装配,智造未来:哲讯科技SAP解决方案赋能装配制造企业数字化转型

精益装配,智造未来:哲讯科技SAP解决方案赋能装配制造企业数字化转型在全球化竞争与个性化需求日益凸显的今天,装配制造企业正站在转型升级的十字路口。从简单的零件组装到复杂的系统集成,从大批量标准化生产到多品…

2025 年工业陶瓷源头厂家最新推荐榜:聚焦技术与服务优选,助力企业精准采购优质工业陶瓷产品工业陶瓷/工业陶瓷管公司推荐

引言 当前工业陶瓷市场需求旺盛,却面临产品质量参差不齐、核心技术缺失、供应链不稳定及环保合规难等问题,严重影响企业采购效率与生产稳定性。为帮助各行业企业精准筛选可靠的工业陶瓷源头厂家,避开采购陷阱,降低…

2025 年氧化铝陶瓷源头厂家最新推荐排行榜:聚焦六大优质企业,助力下游企业精准选合作方氧化铝陶瓷管/氧化铝陶瓷棒/氧化铝陶瓷片公司推荐

引言 当前锂电、半导体、新能源等行业对高品质氧化铝陶瓷需求激增,市场厂家数量虽多,但存在部分厂家无核心技术、非源头生产致成本高、质量管控漏洞多等问题,下游企业常因信息不对称难选靠谱合作方。为破解此困境,…

revit api视图

revit api视图获取视图类型 //Autodesk.Revit.DB.View view = GetView(); //两种判断视图类型的方法: //第一种: ViewType viewType = view.ViewType; switch (viewType) {case Autodesk.Revit.DB.ViewType.ThreeD:/…

Oracle ADG 日常巡检指南

Oracle ADG 日常巡检指南一、基础状态检查数据库角色与模式 SELECT db_unique_name, open_mode, database_role, switchover_status FROM v$database;预期状态:主库:OPEN_MODE=READ WRITE, DATABASE_ROLE=PRIMARY 备…

Ansys Electro-Thermal Analysis

Ansys Electro-Thermal Analysis2025-10-31 17:51 斑鸠,一生。 阅读(0) 评论(0) 收藏 举报

Oracle AWR 报告指标全解析:深入理解数据库性能优化的关键

Oracle AWR 报告指标全解析:深入理解数据库性能优化的关键一、引言 在 Oracle 数据库管理与性能优化领域,AWR(Automatic Workload Repository)报告扮演着极为重要的角色。它犹如一位精准的诊断专家,能够对数据库的…

Oracle 数据库 dblink 使用全解析

Oracle 数据库 dblink 使用全解析一、引言 在企业级数据库应用场景中,常常需要在不同的 Oracle 数据库实例之间进行数据交互与共享。Oracle 的数据库链接(dblink)功能为此提供了便捷的解决方案,它允许用户如同访问…

一个白噪声+滤波器demo

一个白噪声+滤波器demoimport("stdfaust.lib"); ctFreq = hslider("[0]cutoffFrequency",500,50,10000,0.01) : si.smoo; q = hslider("[1]q",5,1,30,0.1) : si.smoo; gain = hslider(&…