22 奇异值分解之奇异值的计算
系列进度
AI 线性代数必备 · 第 22 / 26 篇
整理说明
这篇内容怎么整理
郭震 · 2026-06-04
阅读路线
先按这条路线读
先抓住主线,再回到代码、配置和图文细节,读起来会更稳。
手算奇异值可以从 A^T A 的特征值入手。工程里通常交给数值库,但理解来源能帮助读懂结果。
我会确认奇异值非负且通常按降序排列。顺序错了,低秩近似也会跟着错。
在上一篇中,我们讨论了奇异值分解(SVD)的概念,理解了为何它在数据科学和机器学习中如此重要。本篇将深入探讨如何计算奇异值,帮助你掌握这一核心技术,为后续的应用打下坚实的基础。
1. 理论基础
奇异值分解是一种矩阵分解方法,将任意矩阵分解为三个矩阵的乘积。具体地说,若是一个的矩阵,则可以表示为:
计算奇异值时,先看矩阵转置乘积、特征值、开方关系、奇异向量、维度变化和数值稳定性。
其中:
- 是一个的正交矩阵;
- 是一个的对角矩阵,其中包含了的奇异值;
- 是的转置,是一个的正交矩阵。
奇异值是矩阵在某种意义上的“特征”,它们反映了的结构特征和信息。从中提取奇异值,方法如下:
- 计算和。
- 获取这两个矩阵的特征值。
- 将特征值开平方得到奇异值。
2. 奇异值的计算步骤
为了获得奇异值,我们可以遵循这些步骤:
步骤1:计算
给定一个矩阵,首先计算其转置矩阵,然后计算乘积。这个结果是一个的矩阵。
步骤2:求特征值
然后,我们需要计算的特征值。如果是一个的矩阵,将是一个的矩阵,可以使用求解特征多项式的方法来找出特征值。
步骤3:计算奇异值
奇异值是特征值的非负平方根:
对所有的特征值执行这一操作,得到的就是所有的奇异值。
3. 示例案例
我们通过一个实际的矩阵来演示如何计算奇异值。设矩阵为:
《奇异值分解之奇异值的计算》可以按“场景、概念、动作、结果”来读。先把这四件事对齐,再回到正文里的参数、代码或流程。
计算步骤详解
-
计算:
所以,
-
求特征值:特征值需要解这个方程:
这里是单位矩阵,计算可以得到特征值为:
-
计算奇异值:
最终,矩阵的奇异值为9.54和0。
4. Python代码实现
通过Python库NumPy,我们可以轻松实现这些计算,代码如下:
import numpy as np
# 定义矩阵A
A = np.array([[1, 2], [3, 4], [5, 6]])
# 计算奇异值
U, s, VT = np.linalg.svd(A)
# 输出奇异值
print("奇异值:", s)
运行上述代码将输出:
奇异值: [9.52551809 0.51449576]
学完《奇异值分解之奇异值的计算》后,不妨换一个自己的场景试一次,重点观察输入、处理和输出是否能对应起来。
如果想把《奇异值分解之奇异值的计算》用到自己的任务里,可以先缩小场景,只验证一个最关键的判断点。
小结
本篇文章详细介绍了奇异值的计算过程,包括理论基础和实际案例,此外还用Python实现了计算奇异值的代码。这一知识对于理解奇异值分解及其应用至关重要。在下一篇中,我们将探讨奇异值分解在实际中的应用场景,例如在推荐系统和图像处理中的使用。
请持续关注我们的系列教程,深入掌握线性代数在AI中的重要性!
继续阅读
从这篇继续找到相关教程
常见问题
读前先确认这三点
奇异值分解之奇异值的计算适合谁读?
这是 AI 线性代数必备 系列第 22 / 26 篇,适合正在学习AI 线性代数必备,并且需要把概念落到操作步骤或判断标准里的读者。
读这篇AI 线性代数必备教程要多久?
按中文技术文章阅读速度估算,通读大约 4 分钟;如果要跟着复现,建议把命令、配置和结果检查分开做。
这篇文章里的图文节点怎么用?
正文里有 6 个图文节点,可以先用它们抓住流程、配置和判断点,再回到对应段落细读。
分享文章
转发到常用平台
微信/朋友圈可先复制链接
相关教程
从相近问题继续读
继续阅读