深度学习之范数介绍与优劣对比
范数(Norm)是数学中一个基本且重要的概念,广泛应用于线性代数、泛函分析以及机器学习等领域。它用于衡量向量或矩阵的"长度"或"大小",并具有非负性、齐次性和三角不等式等基本性质。非正式地说,向量的范数是表示一个向量有多大。这里考虑的大小(size)概念不涉及维度,而是分量的大小。在深度学习中,我们经常试图解决优化问题: 最大化分配给观测数据的概率;最小化预测和真实观测之间的距离。用向量表示物品(

目录
范数的介绍
范数(Norm)是数学中一个基本且重要的概念,广泛应用于线性代数、泛函分析以及机器学习等领域。它用于衡量向量或矩阵的"长度"或"大小",并具有非负性、齐次性和三角不等式等基本性质。非正式地说,向量的范数是表示一个向量有多大。 这里考虑的大小(size)概念不涉及维度,而是分量的大小。在深度学习中,我们经常试图解决优化问题: 最大化分配给观测数据的概率; 最小化预测和真实观测之间的距离。 用向量表示物品(如单词、产品或新闻文章),以便最小化相似项目之间的距离,最大化不同项目之间的距离。 目标,或许是深度学习算法最重要的组成部分(除了数据),通常被表达为范数。
1. 范数的定义与性质
范数是定义在赋范线性空间中的函数,其核心思想是为向量或矩阵赋予一个非负的标量值,以表示其"长度"或"大小"。具体来说,对于一个向量 x x x,其范数记作 ∣ ∣ x ∣ ∣ ||x|| ∣∣x∣∣,满足以下三个基本性质:
- 非负性:对于任意向量 x x x,有 ∣ ∣ x ∣ ∣ ≥ 0 ||x|| \geq 0 ∣∣x∣∣≥0,且当且仅当 x = 0 x = 0 x=0 时, ∣ ∣ x ∣ ∣ = 0 ||x|| = 0 ∣∣x∣∣=0。
- 齐次性:对于任意标量 α \alpha α 和向量 x x x,有 ∣ ∣ α x ∣ ∣ = ∣ α ∣ ⋅ ∣ ∣ x ∣ ∣ ||\alpha x|| = |\alpha| \cdot ||x|| ∣∣αx∣∣=∣α∣⋅∣∣x∣∣。
- 三角不等式:对于任意两个向量 x x x 和 y y y,有 ∣ ∣ x + y ∣ ∣ ≤ ∣ ∣ x ∣ ∣ + ∣ ∣ y ∣ ∣ ||x + y|| \leq ||x|| + ||y|| ∣∣x+y∣∣≤∣∣x∣∣+∣∣y∣∣。
这些性质确保了范数可以用来度量向量空间中元素的大小,并且在数学分析中具有重要意义。
2. 常见的范数类型
在实际应用中,根据不同的需求,常见的范数类型包括:
2.1 向量范数
向量范数主要用于衡量向量的长度或大小。常见的向量范数包括:
- L1范数(曼哈顿范数) :定义为向量元素绝对值之和,即 ∣ ∣ x ∣ ∣ 1 = ∑ i = 1 n ∣ x i ∣ ||x||_1 = \sum_{i=1}^n |x_i| ∣∣x∣∣1=∑i=1n∣xi∣。
- L2范数(欧几里德范数) :定义为向量元素平方和的平方根,即 ∣ ∣ x ∣ ∣ 2 = ∑ i = 1 n x i 2 ||x||_2 = \sqrt{\sum_{i=1}^n x_i^2} ∣∣x∣∣2=∑i=1nxi2。
- 无穷范数(最大范数) :定义为向量元素绝对值的最大值,即 ∣ ∣ x ∣ ∣ ∞ = max i = 1 , … , n ∣ x i ∣ ||x||_\infty = \max_{i=1,\ldots,n} |x_i| ∣∣x∣∣∞=maxi=1,…,n∣xi∣。
- L0范数:统计向量中非零元素的数量。

2.2 矩阵范数
矩阵范数用于衡量矩阵的大小或强度。常见的矩阵范数包括:
- 1-范数:定义为矩阵列向量的L1范数之和,即 ∣ ∣ A ∣ ∣ 1 = max j = 1 , … , n ∑ i = 1 m ∣ a i j ∣ ||A||_1 = \max_{j=1,\ldots,n} \sum_{i=1}^m |a_{ij}| ∣∣A∣∣1=maxj=1,…,n∑i=1m∣aij∣。
- 2-范数(谱范数) :定义为矩阵特征值的模的最大值,即 ∣ ∣ A ∣ ∣ 2 = λ max ( A T A ) ||A||_2 = \sqrt{\lambda_{\text{max}}(A^TA)} ∣∣A∣∣2=λmax(ATA)。
- 无穷范数:定义为矩阵行向量的L1范数的最大值,即 ∣ ∣ A ∣ ∣ ∞ = max i = 1 , … , m ∑ j = 1 n ∣ a i j ∣ ||A||_\infty = \max_{i=1,\ldots,m} \sum_{j=1}^n |a_{ij}| ∣∣A∣∣∞=maxi=1,…,m∑j=1n∣aij∣。
- Frobenius范数:定义为矩阵元素平方和的平方根,即 ∣ ∣ A ∣ ∣ F = ∑ i = 1 m ∑ j = 1 n a i j 2 ||A||_F = \sqrt{\sum_{i=1}^m \sum_{j=1}^n a_{ij}^2} ∣∣A∣∣F=∑i=1m∑j=1naij2。
3.代码示例
u = torch.tensor([3.0, -4.0])
torch.norm(u)
torch.abs(u).sum()
运行结果为
tensor(5.)
tensor(7.)
torch.norm(torch.ones((4, 9)))
这里创建了一个4*9的张量,也就是矩阵,元素都为1,根据上面公式可计算
运行结果为
tensor(6.)
4. 应用总结
- 数学分析:用于定义距离、收敛性等概念
- 机器学习:用于正则化、损失函数设计
- 工程计算:用于误差分析和算法收敛性判断
L₂范式在机器学习中的应用及优势
✅ L₂范式的主要优势
(一)防止过拟合 (Regularization)
python
# Ridge回归示例 (L₂正则化)
from sklearn.linear_model import Ridge
ridge = Ridge(alpha=0.5) # alpha是L₂惩罚系数
- 权值衰减机制:对大权重施加二次方惩罚 J ( w ) = MSE ( w ) + α ∑ w i 2 J(w) = \text{MSE}(w) + \alpha\sum w_i^2 J(w)=MSE(w)+α∑wi2
- 参数平滑分布:相比L₁会产生更多小权重而非严格零值
- 岭回归应用:解决多重共线性问题 ( X T X + α I ) − 1 X T y (X^TX + \alpha I)^{-1}X^Ty (XTX+αI)−1XTy
(二)数值稳定性 (Numerical Stability)
w ^ = ( X T X + λ I ) − 1 X T y \hat{w} = (X^TX + \lambda I)^{-1}X^Ty w^=(XTX+λI)−1XTy
- 可逆性保证:当特征维度>样本量时 ( X T X ) (X^TX) (XTX)不可逆,添加 λ I \lambda I λI确保可解
- 条件数改善:降低矩阵的条件数 κ ( X T X ) \kappa(X^TX) κ(XTX)
- 加速收敛:更优的Hessian矩阵特性帮助梯度下降更快收敛
(三)几何特性 (Geometric Properties)
d ( x , y ) = ∣ ∣ x − y ∣ ∣ 2 = ∑ ( x i − y i ) 2 d(x,y) = ||x-y||_2 = \sqrt{\sum(x_i-y_i)^2} d(x,y)=∣∣x−y∣∣2=∑(xi−yi)2
- 欧氏距离:最直观的空间距离度量
- 圆型等值线:导致参数更新方向各向同性
- 正交投影:与内积运算天然关联 x T y = ∣ ∣ x ∣ ∣ ∣ ∣ y ∣ ∣ c o s θ x^Ty = ||x||||y||cos\theta xTy=∣∣x∣∣∣∣y∣∣cosθ
(四)优化优势 (Optimization)
python
# L₂损失函数的梯度计算
gradient = 2 * (X.T @ (X @ w - y)) + 2 * alpha * w
- 处处可微:便于使用梯度下降等一阶方法
- 平滑曲面:相比L₁没有尖点,优化路径更稳定
- 闭式解存在:线性模型下可直接解析求解
🔍 L₂ vs L₁范式对比
| 特性 | L₂范式 | L₁范式 |
|---|---|---|
| 正则化形式 | α ∑ w i 2 \alpha\sum w_i^2 α∑wi2 | $\alpha\sum |
| 解的性质 | Dense | Sparse |
| 特征选择 | ✖️ | ✔️ (自动特征选择) |
| 计算复杂度 | O ( n 3 ) O(n^3) O(n3) (矩阵求逆) | O ( n ) O(n) O(n) (坐标下降) |
| 典型应用 | Ridge回归 | LASSO回归 |
| 等值线形状 | 圆形 | 菱形 |
| 离群点敏感度 | 高 | 低 |
💡 为什么L₂更常用?
1️⃣ 计算效率高
- L₂的二次形式可以利用快速矩阵运算
python
# TensorFlow中的L₂实现
tf.nn.l2_loss(w) # 实际计算的是sum(w^2)/2
2️⃣ 物理意义明确
- 对应能量最小化原则 (弹簧势能 E = k x 2 / 2 E=kx^2/2 E=kx2/2)
3️⃣ 贝叶斯解释
- L₂正则等价于参数服从高斯先验分布 w i ∼ N ( 0 , σ 2 ) w_i \sim N(0,\sigma^2) wi∼N(0,σ2)
4️⃣ 深度学习友好
pytorch
# PyTorch权重衰减(实际是L₂正则化)
optimizer = torch.optim.SGD(model.parameters(), lr=0.01, weight_decay=0.01)
📌 实践建议:当特征间高度相关时优先使用L₂,当需要特征选择时使用L₁。深度学习默认使用L₂正则化(weight decay)。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)