【数学基础】范数及其应用
范数(Norm) 是数学中衡量向量或矩阵“大小”的一种工具,本质上是将向量映射到一个非负实数的函数。它不仅是线性代数中的基础概念,还在机器学习、优化、物理等领域广泛应用。
一、范数的定义
对向量空间中的任意向量 x,范数满足以下性质:
- 非负性:|x| ≥ 0,且 |x| = 0 当且仅当 x = 0。
- 齐次性:|αx| = |α|·|x|(α 为标量)。
- 三角不等式:|x + y| ≤ |x| + |y|。
二、常见的向量范数
1. L₀ 范数(0-范数)
- 定义:向量中非零元素的个数。
- 公式:|x|₀ = Σ|xᵢ|⁰(实际是计数)。
- 用途:稀疏性度量(如特征选择),但严格来说不满足范数定义(不满足齐次性)。
2. L₁ 范数(曼哈顿范数)
- 定义:向量元素的绝对值之和。
- 公式:|x|₁ = Σ|xᵢ|。
- 用途:稀疏优化(如 Lasso 回归)、图像压缩。
- 几何意义:在二维空间中,单位球是菱形(对角线顶点在坐标轴上)。
3. L₂ 范数(欧几里得范数)
- 定义:向量到原点的欧氏距离。
- 公式:|x|₂ = √(Σxᵢ²)。
- 用途:距离计算、正则化(如 Ridge 回归)、几何中的长度。
- 几何意义:单位球是圆形(三维为球体)。
4. Lₚ 范数(一般范数)
- 定义:对 p ≥ 1,|x|ₚ = (Σ|xᵢ|ᵖ)^(1/p)。
- 特殊值:
- p=1 → L₁ 范数
- p=2 → L₂ 范数
- p→∞ → L∞ 范数
5. L∞ 范数(最大范数)
- 定义:向量中绝对值最大的元素。
- 公式:|x|∞ = max(|x₁|, |x₂|, …, |xₙ|)。
- 用途:控制最坏情况误差(如信号处理中的峰值限制)。
三、矩阵范数
-
Frobenius 范数
- 定义:矩阵元素的平方和的平方根,即 |A|_F = √(ΣΣ|aᵢⱼ|²)。
- 用途:衡量矩阵的整体“能量”(如神经网络中的权重正则化)。
-
谱范数(2-范数)
- 定义:矩阵的最大奇异值,即 |A|₂ = σ_max(A)。
- 用途:衡量矩阵对向量的最大拉伸程度。
四、范数的应用场景
1. 机器学习中的正则化
- L₁ 正则化(稀疏性):
# Lasso 回归的损失函数 loss = MSE(y_true, y_pred) + λ * Σ|wᵢ|
- L₂ 正则化(权重衰减):
# Ridge 回归的损失函数 loss = MSE(y_true, y_pred) + λ * Σwᵢ²
2. 几何与物理
- 计算距离(L₂ 范数)、定义球体或超立方体(不同范数的单位球)。
3. 优化问题
- 约束条件(如 |x| ≤ 1)、目标函数中的误差最小化。
4. 信号处理
- L∞ 范数用于限制信号的最大幅值,L₁ 用于稀疏信号恢复。
五、代码示例(Python)
import numpy as np# 定义向量
x = np.array([3, -4, 0, 2])# 计算不同范数
l0 = np.count_nonzero(x) # L0 范数(非零元素个数)
l1 = np.sum(np.abs(x)) # L1 范数(绝对值之和)
l2 = np.linalg.norm(x, ord=2) # L2 范数(欧氏距离)
linf = np.max(np.abs(x)) # L∞ 范数(最大绝对值)print(f"L0: {l0}, L1: {l1}, L2: {l2}, L∞: {linf}")
# 输出:L0: 3, L1: 9, L2: 5.385164807134504, L∞: 4
六、总结
- 核心作用:量化向量或矩阵的“大小”或“复杂度”。
- 选择依据:
- 需要稀疏性 → L₁ 范数
- 需要平滑性 → L₂ 范数
- 控制最大值 → L∞ 范数
- 数学本质:范数的选择定义了空间中的几何结构和优化行为。