本页梳理 ML 中最常用的范数(norm)与距离——正则化、梯度裁剪、最近邻、对抗扰动都依赖它们。
段末注释:范数(norm)$|\mathbf{x}|$ 将向量映射为非负标量,满足正定性、齐次性与三角不等式;L2 范数即欧氏长度。
系列入口:00.系列规划 | 前置:02 向量与矩阵运算
1. 向量范数(D2–D3)

对 $\mathbf{x} \in \mathbb{R}^d$:
| 范数 | 公式 | 几何 |
|---|---|---|
| L2 | $|\mathbf{x}|_2 = \sqrt{\sum_i x_i^2}$ | 欧氏距离到原点 |
| L1 | $|\mathbf{x}|_1 = \sum_i | x_i |
| L∞ | $|\mathbf{x}|_\infty = \max_i | x_i |
| Lp | $|\mathbf{x}|_p = (\sum_i | x_i |
L2 与点积:$|\mathbf{x}|_2^2 = \mathbf{x}^\top \mathbf{x}$。Cosine 相似度:
$$
\cos(\mathbf{a}, \mathbf{b}) = \frac{\mathbf{a}^\top \mathbf{b}}{|\mathbf{a}|_2 |\mathbf{b}|_2}
$$
只关心方向、不受长度影响——词嵌入、检索常用。
2. 矩阵范数(D3)

Frobenius 范数(最常用):
$$
|A|F = \sqrt{\sum{i,j} A_{ij}^2} = \sqrt{\mathrm{tr}(A^\top A)}
$$
与 SVD 关系:$|A|_F^2 = \sum_i \sigma_i^2$(见 05 SVD)。
谱范数(算子 2-范数):
$$
|A|2 = \max{|\mathbf{x}|_2=1} |A\mathbf{x}|2 = \sigma{\max}
$$
控制矩阵放大向量的最大倍数——Lipschitz 分析、对抗鲁棒性。
3. ML 中的典型用法(D7)

| 场景 | 范数 | 作用 |
|---|---|---|
| L2 正则 / weight decay | $\lambda |\boldsymbol{\theta}|_2^2$ | 抑制权重大小(Math-08/03) |
| L1 正则(Lasso) | $\lambda |\boldsymbol{\theta}|_1$ | 稀疏特征选择 |
| 梯度裁剪 | $|\mathbf{g}|_2 > c$ 时缩放 | 防 RNN/Transformer 梯度爆炸 |
| Early stopping | 验证 loss(标量范数化目标) | 监控泛化 |
| k-NN / 聚类 | $|\mathbf{x}_i - \mathbf{x}_j|_2$ | 距离度量 |
| 对抗样本 | $|\boldsymbol{\delta}|_\infty \le \epsilon$ | 有界扰动 |
| LayerNorm | 对特征维归一化 $|\cdot|_2$ | 稳定激活尺度 |
PyTorch:torch.nn.utils.clip_grad_norm_(model.parameters(), max_norm=1.0) 即 L2 范数裁剪。
4. 距离与相似度(D6)
| 度量 | 公式 | 特点 |
|---|---|---|
| 欧氏 | $|\mathbf{a}-\mathbf{b}|_2$ | 尺度敏感 |
| 曼哈顿 | $|\mathbf{a}-\mathbf{b}|_1$ | 高维稀疏友好 |
| Mahalanobis | $\sqrt{(\mathbf{a}-\mathbf{b})^\top \Sigma^{-1}(\mathbf{a}-\mathbf{b})}$ | 考虑协方差(Math-00/30) |
| Cosine 距离 | $1 - \cos(\mathbf{a},\mathbf{b})$ | 嵌入检索 |
5. 局限与误用(D8)

| 误用 | 说明 |
|---|---|
| 未标准化就用 L2 距离 | 量纲大的特征 dominate |
| 混淆 weight decay 与 L2 正则 | AdamW 中二者解耦方式不同 |
| clip 过小 | 训练过慢、欠拟合 |
| 高维 L2「最近邻」失效 | 维度灾难,需降维或 cosine |
6. NumPy / PyTorch 示例(D12)
1 | import numpy as np |
7. 小结
L2 管长度与正则、L1 管稀疏、Frobenius 管矩阵整体大小、clip 管训练稳定。下一篇:07 正定矩阵与条件数。
系列导航:05 SVD | Math-04 优化