news 2026/4/14 21:38:56

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SVD 是怎么被“想出来”的?——从一个朴素问题出发

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

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

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

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

我们从一个最简单的

2

×

2

对角矩阵入手:

D

=

[

3

0

0

1

]

取任意向量

x

=

[

x

1

x

2

]

,左乘后得到:

D

x

=

[

3

x

1

x

2

]

这意味着:输入向量在标准基方向

e

1

=

(

1

,

0

)

T

e

2

=

(

0

,

1

)

T

上被独立拉伸——

x

方向放大 3 倍,

y

方向不变。

这个例子揭示了矩阵左乘的本质:线性变换 = 对输入空间的各个方向进行伸缩(可能还混合)。

而对角矩阵之所以“干净”,是因为它恰好以标准基为伸缩方向,没有混合。

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

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

考虑一个对称方阵:

A

=

[

2

1

1

2

]

我们寻找那些被

A

作用后只伸缩、不转向的向量

v

,即满足:

A

v

=

λ

v

这就是特征方程,其中

λ

是特征值,

v

是对应的特征向量。

对上面的

A

,解得两组解:

λ

1

=

3

,对应

v

1

=

[

1

1

]

λ

2

=

1

,对应

v

2

=

[

1

1

]

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

q

1

=

1

2

[

1

1

]

,

q

2

=

1

2

[

1

1

]

把它们拼成正交矩阵

Q

=

[

q

1

,

q

2

]

,则

Q

T

Q

=

I

由于

A

q

i

=

λ

i

q

i

对每个列都成立,我们可以把所有等式合写为:

A

Q

=

Q

Λ

A

=

Q

Λ

Q

T

其中

Λ

=

[

3

0

0

1

]

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

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

一个

n

×

n

矩阵的“能力”取决于它有多少个非零特征值。

满秩矩阵:比如

A

=

[

2

1

1

2

]

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

低秩矩阵:比如

B

=

[

1

1

1

1

]

特征值为 2 和 0,秩为 1。它只能在方向

[

1

1

]

上拉伸,而在垂直方向

[

1

1

]

上输出恒为零。无论你输入什么,结果永远落在一条直线上。

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

满秩变换(如初始权重)具有最大表达能力,能响应任意输入变化;

低秩更新(如微调时的

Δ

W

)则表明:模型真正需要调整的,往往只是少数几个“敏感方向”。

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

但 EVD 有一个致命限制:它只适用于方阵。一旦矩阵是“长方形”的,比如

M

R

n

×

m

n

m

,特征方程

M

v

=

λ

v

就因维度不匹配而失去意义。

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

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

面对

M

R

n

×

m

,我们放弃“输入输出方向相同”的执念,转而问:

是否存在输入空间的一组标准正交基

{

v

1

,

,

v

m

}

和输出空间的一组标准正交基

{

u

1

,

,

u

n

}

,使得

M

v

i

=

σ

i

u

i

(

i

=

1

,

,

r

=

min

(

n

,

m

)

)

这个等式是我们希望达成的目标:第

i

个输入主方向

v

i

,只激发第

i

个输出主方向

u

i

,放大

σ

i

倍。

我们按拉伸强度从大到小排序:

σ

1

σ

2

σ

r

0

更一般的表示是

M

V

=

U

Σ

后面我们可以知道

V

是正交矩阵,所以上式两边都右乘

V

T

,就可以得到常见的 SVD 的形式了

M

V

V

T

=

M

V

V

1

=

M

=

U

Σ

V

T

3.1 以最强方向

σ

1

为例

回归正题,我们该如何计算

σ

i

呢?我们以最强方向,即

σ

1

为最大值的情况为例。

假设存在单位向量

v

1

u

1

,使得:

M

v

1

=

σ

1

u

1

,

v

1

=

u

1

=

1.

两边取范数,得:

M

v

1

=

σ

1

u

1

=

σ

1

.

因此,

σ

1

就是

M

在单位输入下能产生的最大输出长度。

换句话说,

σ

1

是如下优化问题的解:

σ

1

=

max

v

=

1

M

v

.

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

σ

2

1

=

max

v

=

1

M

v

2

=

max

v

=

1

v

T

(

M

T

M

)

v

.

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

A

=

M

T

M

。矩阵

A

m

×

m

实对称矩阵,且对任意

v

v

T

A

v

0

,故

A

半正定。记

A

的特征值按非增序排列为

λ

1

λ

2

λ

m

0

,对应的标准正交特征向量为

q

1

,

,

q

m

,即

A

q

i

=

λ

i

q

i

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

max

v

=

1

v

T

A

v

=

λ

1

,

且最大值在

v

=

q

1

处取得。更一般地,对

k

=

1

,

,

m

max

v

=

1

v

q

1

,

,

q

k

1

v

T

A

v

=

λ

k

,

v

=

q

k

处取得。说人话就是,第k 大的值就是

λ

k

,而且是在

v

=

q

k

时可以得到。

所以

σ

2

i

=

max

v

=

1

v

T

(

M

T

M

)

v

=

λ

i

i

=

1

,

,

m

,

σ

i

=

λ

i

,

σ

1

σ

2

σ

m

0

,且

v

i

=

q

i

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

Σ

瑞利商性质:对实对称矩阵

A

,定义其瑞利商为

R

A

(

c

)

=

c

T

A

c

c

T

c

,

c

0

.

c

=

1

时,

R

A

(

c

)

=

c

T

A

c

A

的特征值按非增序排列为

λ

1

λ

2

λ

m

0

,对应的标准正交特征向量为

q

1

,

,

q

m

,即

A

q

i

=

λ

i

q

i

,

q

T

i

q

j

=

δ

i

j

.

瑞利商的极值性质表明:

max

c

=

1

c

T

A

c

=

λ

1

,

且最大值在

c

=

q

1

处取得。更一般地,对

k

=

1

,

,

m

max

c

=

1

c

q

1

,

,

q

k

1

c

T

A

c

=

λ

k

,

c

=

q

k

处取得。

因此,令

σ

i

=

λ

i

,

c

i

=

q

i

,

i

=

1

,

,

m

,

σ

1

σ

2

σ

m

0

,且

M

c

i

2

=

c

T

i

A

c

i

=

λ

i

=

σ

2

i

.

3.3 构造左奇异矩阵

r

=

rank

(

M

)

。由于

rank

(

M

)

=

rank

(

M

T

M

)

,有

σ

i

>

0

当且仅当

i

r

对每个

i

=

1

,

,

r

,根据最前面的定义

M

v

i

=

σ

i

u

i

,我们有

u

i

=

1

σ

i

M

v

i

.

至此就可算出对应的

σ

i

,

v

i

,

u

i

。我们会发现求得的

u

i

也是基坐标,彼此正交:

u

i

=

1

σ

i

M

v

i

=

1

σ

i

σ

i

=

1

,

M

v

i

=

σ

i

u

i

.

i

j

r

,有

u

T

i

u

j

=

1

σ

i

σ

j

v

T

i

M

T

M

v

j

=

1

σ

i

σ

j

v

T

i

(

σ

2

j

v

j

)

=

σ

j

v

T

i

v

j

=

0

,

{

u

1

,

,

u

r

}

R

n

中的标准正交向量组。

前面计算的

u

i

是与

v

i

一一对应的,但是当

r

<

n

时,剩下的

u

i

该如何计算呢?我们会发现存在

n

r

维子空间

U

=

{

x

R

n

u

T

i

x

=

0

,

i

=

1

,

,

r

}

.

U

中任取一组标准正交基

{

u

r

+

1

,

,

u

n

}

,则最终的左奇异矩阵为

U

=

[

u

1

,

,

u

n

]

R

n

×

n

为正交矩阵。

3.4 拼装 SVD

V

=

[

v

1

,

,

v

m

]

R

m

×

m

Σ

R

n

×

m

为对角矩阵,其对角元为

σ

1

,

,

σ

r

,其余元素为 0。

M

v

i

=

σ

i

u

i

i

=

1

,

,

r

成立,且对

i

>

r

σ

i

=

0

,可得矩阵等式

M

V

=

U

Σ

.

由于

V

正交(

V

T

V

=

I

m

),右乘

V

T

M

=

U

Σ

V

T

.

结语

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/3 4:12:45

在STM32F103单片机上跑通AI模型:为什么选正弦波作为Hello World?

我的上一篇文章&#xff1a;谁说单片机根本不能跑AI模型&#xff1f;我已在STM32F103上实测TinyML除了获得很多的点赞和收藏之外&#xff0c;留言或者质疑声比较多的是&#xff1a;为什么为了计算正弦波&#xff0c;非要搞个神经网络出来&#xff1f; 针对这么多的质疑&#xf…

作者头像 李华
网站建设 2026/4/12 20:38:23

usbmuxd终极指南:iOS设备USB通信完整安装教程

usbmuxd&#xff08;USB多路复用守护进程&#xff09;是管理与iOS设备通过USB连接的关键开源工具。它允许开发者在不同端口上与iOS设备建立并行连接&#xff0c;支持Linux、macOS、Windows和Android系统&#xff0c;兼容最新的iOS设备固件。 【免费下载链接】usbmuxd A socket …

作者头像 李华
网站建设 2026/4/15 16:39:11

MARS5-TTS语音克隆完全指南:从零到一的实战进阶

MARS5-TTS语音克隆完全指南&#xff1a;从零到一的实战进阶 【免费下载链接】MARS5-TTS 项目地址: https://ai.gitcode.com/hf_mirrors/CAMB-AI/MARS5-TTS &#x1f3af; 痛点诊断&#xff1a;为什么你的语音克隆效果总是不理想&#xff1f; 当你尝试语音克隆时&#…

作者头像 李华
网站建设 2026/4/15 16:32:57

三星设备固件刷写终极指南:Heimdall工具完整使用教程

三星设备固件刷写终极指南&#xff1a;Heimdall工具完整使用教程 【免费下载链接】Heimdall Heimdall is a cross-platform open-source tool suite used to flash firmware (aka ROMs) onto Samsung Galaxy devices. 项目地址: https://gitcode.com/gh_mirrors/hei/Heimdall…

作者头像 李华
网站建设 2026/4/13 9:07:15

机器学习在测试中的应用:自动生成用例与缺陷预测

随着人工智能技术渗透到软件工程全生命周期&#xff0c;机器学习正成为重构测试效能的核心驱动力。根据Gartner预测&#xff0c;到2026年超过80%的软件工程组织将在测试环节系统化部署AI技术。对测试工程师而言&#xff0c;掌握机器学习在测试用例自动生成与缺陷预测中的应用&a…

作者头像 李华