22 奇异值分解之奇异值的计算

在上一篇中,我们讨论了奇异值分解(SVD)的概念,理解了为何它在数据科学和机器学习中如此重要。本篇将深入探讨如何计算奇异值,帮助你掌握这一核心技术,为后续的应用打下坚实的基础。

1. 理论基础

奇异值分解是一种矩阵分解方法,将任意矩阵$A$分解为三个矩阵的乘积。具体地说,若$A$是一个$m \times n$的矩阵,则可以表示为:

$$
A = U \Sigma V^T
$$

其中:

  • $U$是一个$m \times m$的正交矩阵;
  • $\Sigma$是一个$m \times n$的对角矩阵,其中包含了$A$的奇异值;
  • $V^T$是$V$的转置,$V$是一个$n \times n$的正交矩阵。

奇异值是矩阵$A$在某种意义上的“特征”,它们反映了$A$的结构特征和信息。从$\Sigma$中提取奇异值,方法如下:

  1. 计算$A^T A$和$A A^T$。
  2. 获取这两个矩阵的特征值。
  3. 将特征值开平方得到奇异值。

2. 奇异值的计算步骤

为了获得奇异值,我们可以遵循这些步骤:

步骤1:计算$A^T A$

给定一个矩阵$A$,首先计算其转置矩阵$A^T$,然后计算乘积$A^T A$。这个结果是一个$n \times n$的矩阵。

步骤2:求特征值

然后,我们需要计算$A^T A$的特征值$\lambda_i$。如果$A$是一个$m \times n$的矩阵,$A^T A$将是一个$n \times n$的矩阵,可以使用求解特征多项式的方法来找出特征值。

步骤3:计算奇异值

奇异值$s_i$是特征值的非负平方根:

$$
s_i = \sqrt{\lambda_i}
$$

对所有的特征值$\lambda_i$执行这一操作,得到的就是所有的奇异值。

3. 示例案例

我们通过一个实际的矩阵来演示如何计算奇异值。设矩阵$A$为:

$$
A = \begin{pmatrix}
1 & 2 \
3 & 4 \
5 & 6
\end{pmatrix}
$$

计算步骤详解

  1. 计算$A^T A$:

    $$
    A^T = \begin{pmatrix}
    1 & 3 & 5 \
    2 & 4 & 6
    \end{pmatrix}
    $$

    所以,

    $$
    A^T A = \begin{pmatrix}
    1 & 3 & 5 \
    2 & 4 & 6
    \end{pmatrix} \begin{pmatrix}
    1 & 2 \
    3 & 4 \
    5 & 6
    \end{pmatrix} = \begin{pmatrix}
    35 & 44 \
    44 & 56
    \end{pmatrix}
    $$

  2. 求特征值:特征值$\lambda$需要解这个方程:

    $$
    \text{det}(A^T A - \lambda I) = 0
    $$

    这里$I$是单位矩阵,计算可以得到特征值为:

    $$
    \lambda_1 = 91, \quad \lambda_2 = 0
    $$

  3. 计算奇异值:

    $$
    s_1 = \sqrt{\lambda_1} = \sqrt{91} \approx 9.54
    $$

    $$
    s_2 = \sqrt{\lambda_2} = \sqrt{0} = 0
    $$

最终,矩阵$A$的奇异值为9.54和0。

4. Python代码实现

通过Python库NumPy,我们可以轻松实现这些计算,代码如下:

1
2
3
4
5
6
7
8
9
10
import numpy as np

# 定义矩阵A
A = np.array([[1, 2], [3, 4], [5, 6]])

# 计算奇异值
U, s, VT = np.linalg.svd(A)

# 输出奇异值
print("奇异值:", s)

运行上述代码将输出:

1
奇异值: [9.52551809 0.51449576]

小结

本篇文章详细介绍了奇异值的计算过程,包括理论基础和实际案例,此外还用Python实现了计算奇异值的代码。这一知识对于理解奇异值分解及其应用至关重要。在下一篇中,我们将探讨奇异值分解在实际中的应用场景,例如在推荐系统和图像处理中的使用。

请持续关注我们的系列教程,深入掌握线性代数在AI中的重要性!

22 奇异值分解之奇异值的计算

https://zglg.work/ai-linear-you-need/22/

作者

IT教程网(郭震)

发布于

2024-08-10

更新于

2024-08-10

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论