feat: 完整中文翻译 maths-cs-ai-compendium(数学·计算机科学·AI 知识大全)

翻译自英文原版 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/ 构建缓存
This commit is contained in:
2026-05-03 10:23:20 +08:00
commit 2536c937e3
400 changed files with 49040 additions and 0 deletions
+139
View File
@@ -0,0 +1,139 @@
# 矩阵类型
*特殊的矩阵结构能够解锁计算捷径和数学保证。本文涵盖单位矩阵、对角矩阵、对称矩阵、三角矩阵、正交矩阵、正定矩阵、稀疏矩阵和随机矩阵,这些类型出现在协方差估计、图算法、正则化和马尔可夫链中。*
- 并非所有矩阵都一样。不同的结构赋予矩阵特殊的性质,使它们计算更快、更易于推理,或两者兼得。以下是你最常遇到的类型。
- **方阵**的行数和列数相同($n \times n$)。大多数有趣的性质(行列式、特征值、逆)只适用于方阵。
- **单位矩阵** $I$ 是一个对角线为 1、其余为 0 的方阵。它是"什么都不做"的变换:$AI = IA = A$ 对任何兼容的矩阵 $A$。
```math
I = \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix}
```
- **零矩阵** $O$ 的所有元素都为零。它将每个向量映射到零向量,破坏所有信息。
- **对角矩阵**除主对角线外全为零。将向量乘以对角矩阵只是独立地缩放每个分量,非常高效。
```math
D = \begin{bmatrix} 3 & 0 \\ 0 & 7 \end{bmatrix}
```
- **对称矩阵**等于其转置:$A = A^T$,意味着 $A_{ij} = A_{ji}$。对称矩阵有一个特殊性质:它们的特征向量总是相互垂直。协方差矩阵总是对称的。
```math
S = \begin{bmatrix} 3 & -1 \\ -1 & 6 \end{bmatrix}
```
- **三角矩阵**在对角线的一侧全为零。**下三角**在上方全为零,**上三角**在下方全为零。它们对于通过前向或回代高效求解方程组至关重要。
```math
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$。
- 这意味着你只需转置就能"撤销"变换,计算成本很低。其列是标准正交的(单位长度且相互垂直)。
- **稀疏矩阵**的大多数元素为零,而**稠密矩阵**的大多数元素非零。
![稀疏 vs 稠密:点表示非零元素](../images/sparse_dense.svg)
- 在实践中,许多现实世界的矩阵是极其稀疏的。
- 一个拥有百万用户的社交网络可以表示为一个 $10^6 \times 10^6$ 的矩阵,但每个人只连接到少数其他人,所以几乎所有元素都是零。
![一个小型社交网络及其邻接矩阵:大多数元素为零](../images/social_network_matrix.svg)
- **置换矩阵**是通过重排单位矩阵的行得到的。乘以它会打乱向量的元素。每行每列恰好有一个 1,其余为 0。
- 例如,下面的矩阵将元素 3 移到位置 1,元素 1 移到位置 2,元素 2 移到位置 3:
```math
P = \begin{bmatrix} 0 & 0 & 1 \\ 1 & 0 & 0 \\ 0 & 1 & 0 \end{bmatrix}
```
- **托普利茨矩阵**沿每条对角线(左上到右下)具有相同的值。注意每条对角线是如何恒定的:
```math
T = \begin{bmatrix} a & b & c \\ d & a & b \\ e & d & a \end{bmatrix}
```
- 这种结构出现在信号处理和卷积中,因为将固定滤波器滑过信号等价于乘以托普利茨矩阵。
- **循环矩阵**是一种特殊的托普利茨矩阵,其中每一行是上一行的循环移位。当一行到达末尾时,它会绕回:
```math
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$(零矩阵)。应用变换足够多次后,所有东西都坍缩为零。例如:
```math
\begin{bmatrix} 0 & 1 \\ 0 & 0 \end{bmatrix}^2 = \begin{bmatrix} 0 & 0 \\ 0 & 0 \end{bmatrix}
```
- **布尔矩阵**(或二元矩阵)只包含 0 和 1。它表示是/否关系。例如,在一个有 3 个节点的图中,**邻接矩阵**记录哪些节点相连:
```math
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$
```math
V = \begin{bmatrix} 1 & x_1 & x_1^2 \\ 1 & x_2 & x_2^2 \\ 1 & x_3 & x_3^2 \end{bmatrix}
```
- 这种结构出现在多项式插值中:找到通过给定点集的唯一多项式。
- **海森堡矩阵**是"几乎"三角的,在第一次次对角线以下全为零:
```math
H = \begin{bmatrix} 4 & 2 & 1 \\ 3 & 5 & -1 \\ 0 & 1 & 6 \end{bmatrix}
```
- 它是有效计算特征值的有用中间形式。先将矩阵化为海森堡形式可以使迭代算法收敛更快。
## 编程练习(使用 CoLab 或 notebook
1. 创建一个正交矩阵(旋转矩阵),乘以其转置,验证得到单位矩阵。尝试不同的角度。
```python
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}")
```
2. 创建一个对称矩阵并验证它等于其转置。然后计算其特征值并检查特征向量是否垂直。
```python
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}")
```