什么是范数:L0、L1、L2、....、Lp

半度墨水 / 2023-05-26 / 原文

在机器学习和数据科学中,范数常常被用来作为正则化项,防止模型过拟合,或者用来衡量模型复杂度。

具体来说,范数(Norm)是一种测量向量“长度”或“大小”的函数。范数需要满足一些性质,包括:

  1. 非负性:对任意向量v,范数都是非负的,即||v|| >= 0,且当且仅当v=0时,||v|| = 0
  2. 一致性:对任意标量a和任意向量v,有||av|| = |a|*||v||
  3. 三角不等式:对任意向量u和v,有||u + v|| <= ||u|| + ||v||

L0范数

L0范数定义为向量中非零元素的个数。

例如,向量[0, 1, 2, 0, 3]的L0范数就是3,因为它有3个非零元素。

L0范数常常用来表示模型的复杂性或者模型的稀疏性。例如,如果你想要构建一个稀疏的模型(即模型中的大部分参数都是0),你可能会试图最小化模型参数的L0范数。然而,L0范数的问题在于它是非凸的,这使得相关的优化问题变得非常困难。因此,在实际应用中,人们常常使用L1范数来代替L0范数,因为L1范数在保持稀疏性的同时,其优化问题是凸的,更容易求解。

L1范数

L1范数,也被称为曼哈顿距离或者绝对值和,是向量中所有元素的绝对值之和。

对于一个n维向量x = [x1, x2, ..., xn],其L1范数可以表示为:

||x||1 = |x1| + |x2| + ... + |xn|

例如,向量[1, -2, 3, -4]的L1范数就是1+2+3+4=10

L1范数在机器学习和数据科学中有很多应用。例如,在线性回归模型中,L1范数可以用来进行特征选择和生成稀疏模型。当我们将L1范数作为正则化项加入到模型的损失函数中,这种方法被称为Lasso回归。L1范数因为其产生稀疏解的特性,是一种常用的特征选择方法,可以用来剔除不重要的特征。

 

L2范数

L2范数是一种衡量向量大小的方法,也被称为欧几里得范数或者欧几里得长度。L2范数就是向量元素平方和的平方根。

对于一个n维向量x = [x1, x2, ..., xn],其L2范数可以表示为:

||x||2 = sqrt(x1² + x2² + ... + xn²)

向量[1, 2, 3]的L2范数就是sqrt(1² + 2² + 3²) = sqrt(14)。

在线性回归模型中,L2范数可以用来进行正则化,防止模型过拟合。当我们将L2范数作为正则化项加入到模型的损失函数中,这种方法被称为岭回归或者L2正则化。L2正则化的效果是使得模型的权重向量尽可能小,从而限制了模型复杂度,提高了模型的泛化能力。

 

L1和L2的区别

稀疏性:

  • L1范数正则化能够产生稀疏的权重矩阵,即其解的许多元素为0。这一特性使得L1范数正则化成为一种有效的特征选择方法。
  • L2范数正则化则不具备这种性质,它会尽可能地缩小所有权重的大小,但不会将它们压缩到零。

解的稳定性:

  • L1范数正则化可能产生不稳定的解,即微小的数据变动可能导致解的大幅度变化。
  • 相比之下,L2范数正则化会产生更稳定的解,对数据的微小变动更加鲁棒。

解的唯一性:

  • L1范数正则化可能存在多个解,因为L1范数的等高线在高维空间中形状为菱形,这可能会与损失函数的等高线在某些顶点相交,形成多个最优解。
  • 相比之下,L2范数正则化总是有唯一解,因为L2范数的等高线在高维空间中形状为球形,与损失函数的等高线只有一点交点。

Lp范数

Lp范数是L1范数和L2范数的一种泛化,它定义为向量中所有元素的p次方之和的1/p次方。

 p可以是小数,但是不能是无穷,对于无穷范数有额外的定义

 

范数图像

未完待续。。。

参考来源1