线性代数¶
矩阵是深度学习里数据与参数的基本载体。理解「向量怎么变、矩阵怎么乘」,就理解了线性层在做什么。
标量、向量、矩阵、张量¶
| 名称 | 形状直觉 | 例子 |
|---|---|---|
| 标量 (scalar) | 一个数 | 学习率 0.01、损失值 2.3 |
| 向量 (vector) | 一列/一行数 | 特征向量 [x1, x2, x3] |
| 矩阵 (matrix) | 二维表 | 权重 W ∈ R^{m×n} |
| 张量 (tensor) | 更高维数组 | 一批图片 (B, C, H, W) |
深度学习框架里的 Tensor 就是「可求导的多维数组」。矩阵是二维特例。
向量运算¶
两个同维向量 \(\mathbf{a}, \mathbf{b} \in \mathbb{R}^n\):
点积(内积)
\[
\mathbf{a}^\top \mathbf{b} = \sum_{i=1}^{n} a_i b_i
\]
点积衡量「对齐程度」。注意力机制里的相似度,本质就是某种点积(或缩放点积)。
范数(长度)
\[
\|\mathbf{a}\|_2 = \sqrt{\sum_{i=1}^{n} a_i^2}
\]
L2 正则、权重衰减、梯度裁剪,都和范数有关。
矩阵乘法¶
设 \(A \in \mathbb{R}^{m \times k}\),\(B \in \mathbb{R}^{k \times n}\),则 \(C = AB \in \mathbb{R}^{m \times n}\):
\[
C_{ij} = \sum_{t=1}^{k} A_{it} B_{tj}
\]
记忆口诀:左边的列数 = 右边的行数,结果形状取「左行 × 右列」。
和线性层的对应¶
全连接层(Linear / Dense):
\[
\mathbf{y} = W\mathbf{x} + \mathbf{b}
\]
一批样本时写成矩阵形式(PyTorch nn.Linear 约定为 \(y = x A^\top + b\)):
\[
Y = XW^\top + \mathbf{b}
\]
转置、特征值与 SVD(了解)¶
- 转置 \(A^\top\):行列互换;反向传播里大量出现。
- 特征值 / 特征向量:\(A\mathbf{v}=\lambda\mathbf{v}\),理解二次型与优化地形有用。
- SVD:\(A=U\Sigma V^\top\),降维、伪逆、低秩近似的基础。
训练中很少显式求逆(数值不稳且贵),更常用求解线性方程组或自动微分。
广播(Broadcasting)¶
框架允许形状不完全相同的张量做运算,例如:
(3, 4) + (4,) → (3, 4) # 偏置加到每一行
(B, D) * (D,) → (B, D) # 按特征缩放
规则直觉:从最后一维往前对齐,缺维当作 1,1 可以扩展到对方大小。
常见坑
广播很方便,也可能悄悄算错形状。写模型时养成「先打印/注释每个张量 shape」的习惯。
和深度学习的对应关系¶
| 数学对象 | 模型里的角色 |
|---|---|
| 矩阵乘法 | Linear、Attention 的 QK、多数算子内核 |
| 点积 | 相似度、注意力分数 |
| 范数 | 正则、归一化、梯度裁剪 |
| 广播 | bias、LayerNorm 缩放、按维统计 |