翻译自英文原版 maths-cs-ai-compendium,共 20 章全部完成。 第01章 向量 | 第02章 矩阵 | 第03章 微积分 第04章 统计学 | 第05章 概率论 | 第06章 机器学习 第07章 计算语言学 | 第08章 计算机视觉 | 第09章 音频与语音 第10章 多模态学习 | 第11章 自主系统 | 第12章 图神经网络 第13章 计算与操作系统 | 第14章 数据结构与算法 第15章 生产级软件工程 | 第16章 SIMD与GPU编程 第17章 AI推理 | 第18章 ML系统设计 第19章 应用人工智能 | 第20章 前沿人工智能 翻译说明: - 所有数学公式 $...$ / $$...$$、代码块、图片引用完整保留 - mkdocs.yml 配置中文导航 + language: zh - README.md 已翻译为中文(兼 docs/index.md) - docs/ 目录包含指向各章文件的 symlink - 约 29,000 行中文内容,排除 .cache/ 构建缓存
6.0 KiB
矩阵类型
特殊的矩阵结构能够解锁计算捷径和数学保证。本文涵盖单位矩阵、对角矩阵、对称矩阵、三角矩阵、正交矩阵、正定矩阵、稀疏矩阵和随机矩阵,这些类型出现在协方差估计、图算法、正则化和马尔可夫链中。
-
并非所有矩阵都一样。不同的结构赋予矩阵特殊的性质,使它们计算更快、更易于推理,或两者兼得。以下是你最常遇到的类型。
-
方阵的行数和列数相同($n \times n$)。大多数有趣的性质(行列式、特征值、逆)只适用于方阵。
-
单位矩阵
I是一个对角线为 1、其余为 0 的方阵。它是"什么都不做"的变换:AI = IA = A对任何兼容的矩阵 $A$。
I = \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix}
-
零矩阵
O的所有元素都为零。它将每个向量映射到零向量,破坏所有信息。 -
对角矩阵除主对角线外全为零。将向量乘以对角矩阵只是独立地缩放每个分量,非常高效。
D = \begin{bmatrix} 3 & 0 \\ 0 & 7 \end{bmatrix}
- 对称矩阵等于其转置:$A = A^T$,意味着 $A_{ij} = A_{ji}$。对称矩阵有一个特殊性质:它们的特征向量总是相互垂直。协方差矩阵总是对称的。
S = \begin{bmatrix} 3 & -1 \\ -1 & 6 \end{bmatrix}
- 三角矩阵在对角线的一侧全为零。下三角在上方全为零,上三角在下方全为零。它们对于通过前向或回代高效求解方程组至关重要。
L = \begin{bmatrix} 2 & 0 & 0 \\ 1 & 3 & 0 \\ -1 & 2 & 4 \end{bmatrix} \qquad U = \begin{bmatrix} 5 & -1 & 2 \\ 0 & 1 & 3 \\ 0 & 0 & -2 \end{bmatrix}
-
三角矩阵的行列式就是其对角线元素的乘积。
-
正交矩阵具有转置等于逆的性质:$Q^TQ = QQ^T = I$。
-
这意味着你只需转置就能"撤销"变换,计算成本很低。其列是标准正交的(单位长度且相互垂直)。
-
稀疏矩阵的大多数元素为零,而稠密矩阵的大多数元素非零。
-
在实践中,许多现实世界的矩阵是极其稀疏的。
-
一个拥有百万用户的社交网络可以表示为一个
10^6 \times 10^6的矩阵,但每个人只连接到少数其他人,所以几乎所有元素都是零。
-
置换矩阵是通过重排单位矩阵的行得到的。乘以它会打乱向量的元素。每行每列恰好有一个 1,其余为 0。
-
例如,下面的矩阵将元素 3 移到位置 1,元素 1 移到位置 2,元素 2 移到位置 3:
P = \begin{bmatrix} 0 & 0 & 1 \\ 1 & 0 & 0 \\ 0 & 1 & 0 \end{bmatrix}
- 托普利茨矩阵沿每条对角线(左上到右下)具有相同的值。注意每条对角线是如何恒定的:
T = \begin{bmatrix} a & b & c \\ d & a & b \\ e & d & a \end{bmatrix}
-
这种结构出现在信号处理和卷积中,因为将固定滤波器滑过信号等价于乘以托普利茨矩阵。
-
循环矩阵是一种特殊的托普利茨矩阵,其中每一行是上一行的循环移位。当一行到达末尾时,它会绕回:
C = \begin{bmatrix} 1 & 3 & 2 \\ 2 & 1 & 3 \\ 3 & 2 & 1 \end{bmatrix}
-
循环矩阵与离散傅里叶变换(DFT)密切相关,并且是循环卷积如何工作的核心。
-
埃尔米特矩阵是对称矩阵在复数域中的等价形式:$A = A^\ast$(其中
A^\ast是共轭转置)。 -
对于实值矩阵,埃尔米特矩阵和对称矩阵是一回事。你会在量子计算和信号处理中遇到它们。
-
酉矩阵是正交矩阵在复数域中的等价形式:$U^\ast U = UU^\ast = I$。正如正交矩阵在实空间中保持长度,酉矩阵在复空间中保持长度。
-
幂等矩阵满足 $A^2 = A$。应用变换两次等同于应用一次,这使得它成为一个投影。一旦你投影了,再次投影不会改变任何东西。
-
幂零矩阵满足对某个幂次
k有 $A^k = O$(零矩阵)。应用变换足够多次后,所有东西都坍缩为零。例如:
\begin{bmatrix} 0 & 1 \\ 0 & 0 \end{bmatrix}^2 = \begin{bmatrix} 0 & 0 \\ 0 & 0 \end{bmatrix}
- 布尔矩阵(或二元矩阵)只包含 0 和 1。它表示是/否关系。例如,在一个有 3 个节点的图中,邻接矩阵记录哪些节点相连:
B = \begin{bmatrix} 0 & 1 & 1 \\ 1 & 0 & 0 \\ 1 & 0 & 0 \end{bmatrix}
-
这里,节点 1 连接到节点 2 和 3,但节点 2 和 3 之间没有连接。
-
范德蒙矩阵由一组值的连续幂次构成。给定值 $x_1, x_2, x_3$:
V = \begin{bmatrix} 1 & x_1 & x_1^2 \\ 1 & x_2 & x_2^2 \\ 1 & x_3 & x_3^2 \end{bmatrix}
-
这种结构出现在多项式插值中:找到通过给定点集的唯一多项式。
-
海森堡矩阵是"几乎"三角的,在第一次次对角线以下全为零:
H = \begin{bmatrix} 4 & 2 & 1 \\ 3 & 5 & -1 \\ 0 & 1 & 6 \end{bmatrix}
- 它是有效计算特征值的有用中间形式。先将矩阵化为海森堡形式可以使迭代算法收敛更快。
编程练习(使用 CoLab 或 notebook)
- 创建一个正交矩阵(旋转矩阵),乘以其转置,验证得到单位矩阵。尝试不同的角度。
import jax.numpy as jnp
theta = jnp.pi / 4
Q = jnp.array([[jnp.cos(theta), -jnp.sin(theta)],
[jnp.sin(theta), jnp.cos(theta)]])
print(f"Q @ Q.T:\n{Q @ Q.T}")
print(f"Determinant: {jnp.linalg.det(Q):.2f}")
- 创建一个对称矩阵并验证它等于其转置。然后计算其特征值并检查特征向量是否垂直。
import jax.numpy as jnp
S = jnp.array([[4.0, 2.0],
[2.0, 3.0]])
print(f"Symmetric: {jnp.allclose(S, S.T)}")
eigenvalues, eigenvectors = jnp.linalg.eigh(S)
print(f"Eigenvalues: {eigenvalues}")
print(f"Dot product of eigenvectors: {jnp.dot(eigenvectors[:, 0], eigenvectors[:, 1]):.6f}")