范数(Norm)的作用与常用总结
一、范数(Norm)的作用
范数是一个数学概念,用于衡量向量(或矩阵)的“大小”或“长度”。它为向量空间中的每个向量赋予一个非负的实数值,这个值满足一些特定的性质(如非负性、齐次性、三角不等式)。
在机器学习和数据科学中,范数的主要作用可以归结为以下几点:
- 衡量向量大小/距离
- 最直观的作用。例如,欧几里得范数(L2范数)就是我们熟知的几何空间中的向量长度。
- 通过计算两个向量差的范数,可以衡量它们之间的“距离”,这是许多度量方法(如K近邻、K-Means聚类)的基础。
- 作为正则项,防止过拟合
- 这是范数在机器学习中最重要的应用之一。通过在损失函数中增加模型权重的范数作为惩罚项,可以限制模型的复杂度。
- L1正则化(Lasso): 使用L1范数。它倾向于产生稀疏的权重向量,即会将许多特征的权重压缩到0,从而实现特征选择。
- L2正则化(Ridge): 使用L2范数。它会使权重整体变小,但不会直接变为0,使得模型更加平滑稳定,抗干扰能力更强。
- 用于优化算法的收敛性判断
- 在梯度下降等优化算法中,我们经常检查梯度向量的范数(如L2范数)。如果梯度的范数非常小(接近于0),通常意味着算法已经收敛到了一个(局部)最优点。
- 归一化和标准化
- 在数据预处理中,我们经常需要将向量归一化为单位范数。例如,将文本向量归一化为L2范数为1,这样可以专注于向量的方向(夹角)而不是其绝对大小,这在计算余弦相似度时非常有用。
- 矩阵的低秩近似
- 对于矩阵,核范数(Nuclear Norm)是矩阵奇异值的和,常用于衡量矩阵的复杂性。在推荐系统、矩阵补全等问题中,最小化核范数可以找到原始矩阵的一个良好的低秩近似。
二、常用的范数总结
以下是一些最常见和实用的范数,主要分为向量范数和矩阵范数。
A. 向量范数
对于一个 n 维向量$x = (x_1, x_2, …, x_n)$,常用的范数有:
- Lp 范数
- 定义:
- 这是一个范数家族,通过改变 p 的值可以得到不同的范数。
- L0 “范数”
- 定义: 向量中非零元素的数量。
- 注意: 严格来说,L0“范数”不满足范数的齐次性,因此不是一个真正的范数,但大家习惯这样称呼。
- 作用: 追求最极端的稀疏性。但由于其数学性质不好(非凸),优化困难,实际中常用L1范数作为其凸近似。
- L1 范数
- 定义:
(即 p=1 时的 Lp 范数)
- 几何意义: 也称为”曼哈顿距离”或”出租车距离”。
- 特点: 倾向于产生稀疏解。这是它最重要的特性,广泛应用于特征选择、压缩感知等领域。
- L2 范数
- 定义:
(即 p=2 时的 Lp 范数)
- 几何意义: 最常用的”欧几里得距离”,即空间中点到原点的直线距离。
- 特点: 使解更加平滑和稳定。它是可微的,计算和优化起来非常方便,是最常用的范数。
- L∞ 范数(无穷范数)
- 定义:
(即 p→∞ 时的 Lp 范数)
- 几何意义: 向量中绝对值最大的那个元素。
- 作用: 关注的是向量分量的最大偏差。在保证最坏情况下的性能时很有用。
B. 矩阵范数
- Frobenius 范数(F-范数)
- 定义:
- 理解: 可以将矩阵拉直成一个很长的向量,然后对这个向量求L2范数。它衡量了整个矩阵的”能量”。
- 作用: 在机器学习中非常常见,例如用于衡量两个矩阵的差异(如重构误差)。
- 核范数(Nuclear Norm)
- 定义:
其中 $\sigma_i$ 是矩阵 A 的奇异值,r 是 A 的秩。
- 理解: 是矩阵奇异值的L1范数。
- 作用: 是矩阵秩(Rank) 的凸近似。最小化核范数可以促进矩阵是低秩的,广泛应用于推荐系统、背景建模、矩阵补全等问题。
总结对比表
| 范数名称 | 符号 | 定义(向量 x / 矩阵 A) | 主要特点与应用 |
|---|---|---|---|
| L0 “范数” | \(|x|_0\) | 非零元素个数 | 衡量稀疏性,但优化困难 |
| L1 范数 | \(|x|_1\) | \(\sum |x_i|\) | 特征选择,稀疏化,鲁棒性好 |
| L2 范数 | \(|x|_2\) | \(\sqrt{\sum x_i^2}\) | 最常用,防止过拟合,稳定,可微 |
| L∞ 范数 | \(|x|_\infty\) | \(\max(|x_i|)\) | 关注最大偏差,抑制最大值 |
| F-范数 | \(|A|_F\) | \(\sqrt{\sum \sum |a_{ij}|^2}\) | 矩阵的”L2范数”,衡量整体误差 |
| 核范数 | \(|A|_*\) | \(\sum \sigma_i\) (奇异值和) | 低秩近似,用于推荐系统、矩阵补全 |
如何选择?
- 想要自动进行特征选择,使用L1。
- 只想让模型权重变小,避免过拟合,但不关心稀疏性,使用L2。
- 处理矩阵问题,想让它“低秩”,使用核范数。
- 一般情况下,L2通常是安全且高效的首选。
Enjoy Reading This Article?
Here are some more articles you might like to read next: