- 深度学习与大模型基础
- 段小手
- 1054字
- 2025-03-27 18:19:12
2.7 奇异值分解
奇异值分解 ( Singular Value Decomposition, 简称SVD) 是线性代数中的一种重要技术。它可以将任意矩阵分解成三个部分的乘积, 即A=U∑VT, 其中A是一个m×n的实数或复数矩阵, U 和 V 是两个列正交矩阵 (也就是说, 它们的列向量两两正交且长度为1) ,∑是一个m×n的对角矩阵, 对角线上的元素称为奇异值。
具体来说, 对于一个m×n的矩阵A, 我们可以找到两个列正交矩阵U和V, 以及一个对角矩阵∑, 使得A=U∑VT。其中, U的列向量组成了A的左奇异向量, V的列向量组成了A的右奇异向量, 而∑的对角线上的元素则表示A在这些奇异向量方向上的奇异值。
举个常见的例子——假设你正在学习一门课程, 考试之后你得到了若干个分数作为成绩。这些分数可以被表示为一个向量 (也就是一列数值)。现在假设你要分析所有同学的成绩, 你需要把这些向量放到一个矩阵中。这个矩阵的行表示不同的学生, 列表示不同的考试题目。
但是你发现这个矩阵非常大, 而且很多的数据都是冗余的或者无用的。例如, 某些学生可能从来没有考过某个题目, 某些题目可能没有任何学生答对, 等等。此时, 你希望找到一种方法, 压缩这个矩阵并提取出最重要的信息。
这时候, 奇异值分解就可以派上用场了。它可以将一个很大的矩阵分解成三个部分的乘积, 其中第一个矩阵U包含最重要的行信息, 第二个矩阵∑包含每个行向量的重要程度, 而第三个矩阵V则包含最重要的列信息, 就像图2-17所示的这样。

图2-17 奇异值分解, 就像把全校学生的成绩单分解成U、∑、 V三个矩阵
换句话说, 通过奇异值分解, 我们可以用更小的矩阵来表示原始矩阵, 并从中提取出最重要的信息。这个过程就相当于对成绩进行降维, 只保留最重要的因素, 而忽略一些无用或冗余的信息。
类似的例子还有很多, 比如在图片压缩中, 我们可以用奇异值分解来找到图像的主要特征, 从而把图像压缩成更小的尺寸。在音频处理中, 我们也可以用奇异值分解来提取音频信号的主要特征, 从而实现音频降噪、语音识别等功能。
原理输出2. 17
为了帮助大家更好地理解奇异值分解的概念, 请大家在ChatGPT的帮助下, 录制一个长度约为2分钟的短视频, 介绍什么是奇异值分解。
小贴士
可以参考的ChatGPT提示词如下。
“请简要介绍什么是奇异值分解。”
“请结合生活中的例子, 介绍奇异值分解的概念。”
“假设你是一位大学老师, 请用轻松易懂的语言向学生讲解奇异值分解。”
实操练习2. 17
为了让大家可以用代码的形式学习奇异值分解, 接下来大家可以让ChatGPT生成代码演示, 并在Colab新建一个Notebook文件运行这些代码。
小贴士
要让ChatGPT生成代码, 可以参考的提示词如下。
“请用Python演示奇异值分解, 需要可视化。”
“用Python可视化的方法演示奇异值分解。”