1695 字
8 分钟
矩阵和向量的范数 (Norm)
2026-04-10
无标签
TIP

Question:为什么机器学习里总在说 L1 / L2 / 正则化?

范数的定义#

从数学的角度上讲,范数是一个函数,它接受一个向量作为输入,并输出一个非负实数,表示这个向量的“大小”或“长度”。范数必须满足以下三个条件:

  1. 非负性:对于任何向量 x\mathbf{x},范数 ∥x∥\|\mathbf{x}\| 都必须是非负的,即 ∥x∥≥0\|\mathbf{x}\| \geq 0,并且只有当 x=0\mathbf{x} = \mathbf{0} 时,∥x∥=0\|\mathbf{x}\| = 0。

  2. 绝对齐次性:对于任何标量 α\alpha 和任何向量 x\mathbf{x},范数必须满足 ∥αx∥=∣α∣∥x∥\|\alpha \mathbf{x}\| = |\alpha| \|\mathbf{x}\|。这意味着如果你将一个向量缩放一个标量,那么它的范数也会相应地缩放。

  3. 三角不等式:对于任何两个向量 x\mathbf{x} 和 y\mathbf{y},范数必须满足 ∥x+y∥≤∥x∥+∥y∥\|\mathbf{x} + \mathbf{y}\| \leq \|\mathbf{x}\| + \|\mathbf{y}\|。这意味着两个向量的和的范数不会超过它们各自范数的和。

  • 范数 ≠ 客观长度

  • 范数 = 人为定义的“评价标准”

向量范数#

1-范数(曼哈顿距离,L1)#

L1范数是向量元素绝对值的和。对于一个向量 x=(x1,x2,…,xn)\mathbf{x} = (x_1, x_2, \ldots, x_n),L1范数定义为:

∥x∥1=∣x1∣+∣x2∣+…+∣xn∣\|\mathbf{x}\|_1 = |x_1| + |x_2| + \ldots + |x_n|

2-范数(欧几里得距离,L2)#

L2范数是向量元素的平方和的平方根。对于一个向量 x=(x1,x2,…,xn)\mathbf{x} = (x_1, x_2, \ldots, x_n),L2范数定义为:

∥x∥2=x12+x22+…+xn2\|\mathbf{x}\|_2 = \sqrt{x_1^2 + x_2^2 + \ldots + x_n^2}

p-范数(Hölder范数,或Lp范数)#

Lp范数是向量元素的p次幂和的1/p次幂。 对于一个向量 x=(x1,x2,…,xn)\mathbf{x} = (x_1, x_2, \ldots, x_n),Lp范数定义为:

∥x∥p=(∣x1∣p+∣x2∣p+…+∣xn∣p)1p\|\mathbf{x}\|_p = \left( |x_1|^p + |x_2|^p + \ldots + |x_n|^p \right)^{\frac{1}{p}}

单位球#

所有满足:

∥x∥p=1\|\mathbf{x}\|_p = 1

的点组成的集合。对于不同的范数,单位球的形状也不同:

范数形状
L2圆
L1菱形
L∞正方形

加权p-范数#

普通的范数视所有维度(所有特征)同等重要。但实际处理数据时,有些维度更重要,有些则包含更多噪声。通过对角矩阵 (一个方阵中,除了主对角线(从左上角到右下角的那条线)上有数字外,其余地方全是 0) WW,我们给不同的坐标轴加上了权重。

TIP

当 WW 是非奇异矩阵(不一定是角阵)时,这本质上是在做一个线性变换后再量长度。在机器学习中,这常用于处理数据不均匀缩放的情况(马氏距离的基础)

∥x∥p,W=∥Wx∥p=(∑i=1n∣wixi∣p)1p\|x\|_{p,W} = \|Wx\|_p=\left( \sum_{i=1}^n |w_i x_i|^p \right)^{\frac{1}{p}}

矩阵范数#

诱导范数#

TIP

这里的 AxAx 是用外积的角度理解的,A的列和x中的元素一一对应,即AB=秩1矩阵之和

定义:∥A∥=sup⁡x≠0∥Ax∥∥x∥\|A\| = \sup_{x \neq 0} \frac{\|Ax\|}{\|x\|}

如果把矩阵 AA 看作一个加工机器,输入向量 xx。∥x∥\|x\| 是输入的”大小”。∥Ax∥\|Ax\| 是输出的”大小”。诱导范数 ∥A∥\|A\| 就是这个机器能实现的最大“放大倍数”。

关于这个理解的数学细节:

NOTE
  • sup⁡\sup 是上确界的意思,表示在所有非零向量 xx 中,∥Ax∥∥x∥\frac{\|Ax\|}{\|x\|} 的最大值。
  • 这里面的下标 (m,n),(m),(n)(m,n),(m),(n) 仅表示向量的维度,而非 Lm 或 Ln 范数。符号 ∥⋅∥(m)\|\cdot\|_{(m)} 和 ∥⋅∥(n)\|\cdot\|_{(n)} 可以表示任何同类型的向量范数。

一个m×nm \times n的矩阵AA,输入一个nn维向量xx,输出一个mm维向量AxAx。所以在定义域(输入空间)中定义范数∥⋅∥(n)\|\cdot\|_{(n)},在值域(输出空间)中定义范数∥⋅∥(m)\|\cdot\|_{(m)}。诱导矩阵范数∥A∥(m,n)\|A\|_{(m,n)}是使不等式

∥Ax∥(m)≤C∥x∥(n)\|Ax\|_{(m)} \leq C \|x\|_{(n)}

对于所有xx成立的最小常数CC。换句话说,∥A∥(m,n)\|A\|_{(m,n)}是矩阵AA在输入空间和输出空间的范数定义下的最大放大倍数(∥Ax∥∥x∥\frac{\|Ax\|}{\|x\|} 的上确界)。

称范数 ∥⋅∥(m,n)\|\cdot\|_{(m,n)} 为由向量范数 ∥⋅∥(m)\|\cdot\|_{(m)} 和 ∥⋅∥(n)\|\cdot\|_{(n)} 诱导的矩阵范数。

因为放大倍数是一个比值,我们干脆把输入的长度固定为 1(单位圆/单位球),看看经过矩阵 AA 变换后,这个球被拉伸得最厉害的地方有多长。

常见的诱导范数#

具体的L1,L∞推导过程和 L2推导过程

输入范数 ∥∥⋅∥∥n\|\|\cdot\|\|_n输出范数 ∥∥⋅∥∥m\|\|\cdot\|\|_m诱导矩阵范数 ∥∥A∥∥m,n\|\|A\|\|_{m,n}数学表示
L1L1列和范数(最大列和)∥∥A∥∥1=max⁡1≤j≤n∑i=1m∥aij∥\|\|A\|\|_1 = \max_{1 \leq j \leq n} \sum_{i=1}^m\| a_{ij}\|
L2L2谱范数(A的最大奇异值)∥∥A∥∥2=σmax⁡(A)=λ1\|\|A\|\|_2 = \sigma_{\max}(A) = \sqrt{\lambda_1} ,其中 λ1\lambda_1 是ATAA^TA的最大特征值
L∞L∞行和范数(最大行和)∥∥A∥∥∞=max⁡1≤i≤m∑j=1n∥aij∥\|\|A\|\|_\infty = \max_{1 \leq i \leq m} \sum_{j=1}^n \| a_{ij} \|

Frobenius范数#

Frobenius范数是矩阵元素的平方和的平方根。对于一个矩阵 A=[aij]A = [a_{ij}],Frobenius范数定义为:

∥A∥F=∑i=1m∑j=1naij2\|A\|_F = \sqrt{\sum_{i=1}^m \sum_{j=1}^n a_{ij}^2}

Frobenius范数可以看作是把矩阵拉直成一个 m×nm\times n 维的长向量,然后计算这个向量的 2-范数(欧几里得长度)

Frobenius范数与向量范数的联系#

  • 向量的2-范数可以看作是一个特殊的Frobenius范数:当矩阵 AA 是一个列向量时,记作x,n×1x, n\times 1 ,Frobenius范数就退化成了这个向量的2-范数:

    ∥x∥F=∑i=1n∣xi∣2=∥x∥2\|x\|_F = \sqrt{\sum_{i=1}^n |x_i|^2} = \|x\|_2
  • 从矩阵的列向量角度理解,每一列 a:ja_{:j} 都是一个 n×1n\times 1 向量,Frobenius范数就是所有列向量的2-范数的平方和的平方根:

    ∥A∥F=∑j=1n∥a:j∥22\|A\|_F = \sqrt{\sum_{j=1}^n \|a_{:j}\|_2^2}
  • 同理,从矩阵的行向量角度理解,每一行 ai:a_{i:} 都是一个 1×m1\times m 向量,Frobenius范数也是所有行向量的2-范数的平方和的平方根:

    ∥A∥F=∑i=1m∥ai:∥22\|A\|_F = \sqrt{\sum_{i=1}^m \|a_{i:}\|_2^2}

基本性质#

有了和向量范数(2-范数)的联系,我们可以验证Frobenius范数满足范数的三个基本性质:

  • 非负性 :∥A∥F≥0\|A\|_F \geq 0,并且只有当 AA 是零矩阵时,∥A∥F=0\|A\|_F = 0。
  • 绝对齐次性 :对于任何标量 α\alpha 和任何矩阵 AA,∥αA∥F=∣α∣∥A∥F\|\alpha A\|_F = |\alpha| \|A\|_F。
  • 三角不等式 :对于任何两个同型矩阵 AA 和 BB,∥A+B∥F≤∥A∥F+∥B∥F\|A + B\|_F \leq \|A\|_F + \|B\|_F。
TIP

简要证明一下三角不等式:

∑(a+b)2=∑a2+∑b2+2∑ab≤∑a2+∑b2\sqrt{\sum{(a+b)}^2}=\sqrt{\sum{a}^2+\sum{b}^2+2\sum{ab}}\leq \sqrt{\sum{a}^2}+\sqrt{\sum{b}^2}
  • 这玩意可以和矩阵的秩联系起来,若 aja_j 表示矩阵的第j列向量,那么 ∥A∥F=∑j=1n∥aj∥22=tr(ATA)=trAAT=Energe(A)\|A\|_F = \sqrt{\sum_{j=1}^n \|a_j\|_2^2}=\sqrt{\text{tr}(A^T A)}=\sqrt{\text{tr}AA^T}=Energe(A)

  • 矩阵范数的相容性(Compatibility)或次可乘性(Sub-multiplicativity):两个矩阵乘积的范数,总是小于或等于这两个矩阵各自范数的乘积。∥∥AB∥F≤∥∥A∥F⋅∥∥B∥F\|\|AB\|_F \leq \|\|A\|_F \cdot \|\|B\|_F

    • 值得注意的是,Frobenius 范数还满足算子相容性:∥Ax∥2≤∥A∥F∥x∥2\|Ax\|_2 \leq \|A\|_F \|x\|_2这说明矩阵对向量的变换程度,也不会超过矩阵自身的 Frobenius 范数。等号右边的值远大于左边是正常的,因为这只是一个松散的上界(Upper Bound)。只有当矩阵的结构非常特殊(如秩为 1 的矩阵)时,等号才可能成立。
  • 由2推广,当 B=A−1B=A^{-1} 时,可以证明:一个F范数为 ϵ\epsilon 的n阶矩阵 AA 满足 ∥A−1∥F≥nϵ\|A^{-1}\|_F \geq \frac{\sqrt{n}}{\epsilon}。

矩阵和向量的范数 (Norm)
https://biscuit0613.github.io/posts/math/norm/
作者
Biscuit
发布于
2026-04-10
许可协议
CC BY-NC-SA 4.0
对角矩阵 (Diagonal Matrix)
Android 构建失败之 jlink 路径灵异事件