在机器学习中,我们经常使用被称为范数(norm)的函数衡量向量大小。形式上,Lp范数的定义如下:
||x||p=(∑i|xi|p)1p
其中p∈R,p≥1。
范数(包括Lp范数)是将向量映射到非负值的函数。直观上说,向量x的范数衡量从原点到点
f(x)=0⇒x=0f(x+y)≥f(x)+f(y)(三角不等式)∀α∈R,f(αx)=|α|f(x)
当p=2时,L2范数被称为欧几里得范数(Euclidean norm)。它表示从原点出发到向量x确定的点的欧几里得距离。
平方L2范数在数学和计算上都比L2范数本身更方便。例如,平方L2范数对x中每个元素的导数只取决于对应的元素,而
||x||1=∑i|xi|
当机器学习问题中零和非零元素之间的差异非常重要时,通常会使用L1范数。每当x中某个元素从
有时候我们会统计向量中非零元素的个数来衡量向量的大小。有些书籍将这种函数称为“L0范数”,但是这个术语在数学意义上是不对的。向量的非零元素的数目不是范数,因为对向量缩放α倍不会改变该向量非零元素的数目。因此,L1范数经常作为表示非零元素数目的替代函数。
另外一个经常在机器学习中出现的范数是L∞范数,也被称为最大范数(max norm)。这个范数表示向量中具有最大幅值的元素的绝对值:
||x||∞=maxi|xi|
有时候我们可能也希望衡量矩阵的大小。在深度学习中,最常见的做法是使用Frobenius范数(Frobenius norm),
||A||F=∑i,jA2i,j−−−−−−√
其类似于向量的L2范数。
两个向量的点积(dot product)可以用范数来表示。具体地,
xTy=||x||2||y||2cosθ
其中θ表示x和