跳转至

线性代数

矩阵是深度学习里数据与参数的基本载体。理解「向量怎么变、矩阵怎么乘」,就理解了线性层在做什么。

标量、向量、矩阵、张量

名称 形状直觉 例子
标量 (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 缩放、按维统计