有时候,我们需要度量向量的尺度。在机器学习中,我们通常用Lp 范数来度量向量的尺度:

机器学习什么是范数 范数有啥用_深度学习

其中 p∈R,p≥1

范数,包括

Lp 范数,是将向量映射到非负值的函数,并且满足下面的性质,使得他们类似于点之间的距离:

  • f(x)=0⇒x=0
  • f(x+y)≤f(x)+f(y)(三角不等式)
  • ∀α∈R,f(αx)=|α|f(x)

L2范数是欧几里得范数。它仅仅是原点到点x的欧几里德距离。它可能是机器学习中最常用的范数。并且也常用x的平方来度量向量的尺度,通过xTx就能计算出来。

L2 范数的平方在数学上和计算上都比L2范数有效。例如,L2 范数的平方对x中每个元素的导数只依赖于x的每个元素。而L2范数的导数依赖于整个向量。在许多情境中,L2 范数的平方可能是不方便的,因为在原点附近增长非常慢。在一些机器学习应用中,区别零元素和极小元素是非常重要的,对于这些情况,我们转向在所有位置增长速率一样的函数,但是依然保持数学的简明特性:L1范数。L1范数可以简化为:

机器学习什么是范数 范数有啥用_范数_02

当在机器学习中,当零和非零元素之间的区别非常重要时,我们通常使用 L1范数。每次 x 的一个元素从零移动到 e,L1范数就增长 e。

有时,我们通过计算向量中非零元素的数目来度量它的尺度(当我们用L1范数时,我们经常用它替代该函数)。一些作者将此函数参考为 l0范数,但是这个术语不正确,因为按比例改变向量没有改变非零项的数目。

另一个在机器学习中常见的范数是l∞范数,叫做最大范数。这个范数简化如下:

机器学习什么是范数 范数有啥用_范数_03

例如,向量中最大元素的值。

有时,我们可能希望度量矩阵的尺度。在深度学习的情景中,最常用的方式是Frobenius范数:

机器学习什么是范数 范数有啥用_机器学习什么是范数_04

它和向量的 L2范数是相似的。

两个向量的点乘可以重写成范数的形式。特别地,

机器学习什么是范数 范数有啥用_麻省理工_05

其中 θ是 x和 y之间的角度。