范数
有时我们需要衡量一个向量的大小。在机器学习中,我们经常使用被称为 范数(norm)的函数衡量向量大小。形式上,
Lp
L
p
范数定义如下:
其中
p∈R,p≥1
p
∈
R
,
p
≥
1
。
范数(包括 Lp 范数)是将向量映射到非负值的函数。直观上来说,向量 x 的范数衡量从原点到点 x 的距离。更严格地说,范数是满足下列性质的任意函数:
•
f(x)=0)=>x=0
f
(
x
)
=
0
)
=>
x
=
0
•
f(x+y)≤f(x)+f(y)
f
(
x
+
y
)
≤
f
(
x
)
+
f
(
y
)
(三角不等式(triangle inequality))
•
∀α∈R,f(αx)=|α|f(x)
∀
α
∈
R
,
f
(
α
x
)
=
|
α
|
f
(
x
)
当 p = 2 时,
L2
L
2
范数被称为 欧几里得范数(Euclidean norm)。它表示从原点出发到向量 x 确定的点的欧几里得距离。 L2 范数在机器学习中出现地十分频繁,经常简化表示为
∥x∥
∥
x
∥
,略去了下标 2。平方
L2
L
2
范数也经常用来衡量向量的大小,可以简单地通过点积
xTx
x
T
x
计算。平方
L2
L
2
范数在数学和计算上都比
L2
L
2
范数本身更方便。例如,平方
L2
L
2
范数对x 中每个元素的导数只取决于对应的元素,而
L2
L
2
范数对每个元素的导数却和整个向量相关。但是在很多情况下,平方
L2
L
2
范数也可能不受欢迎,因为它在原点附近增长得十分缓慢。在某些机器学习应用中,区分恰好是零的元素和非零但值很小的元素是很重要的。在这些情况下,我们转而使用在各个位置斜率相同,同时保持简单的数学形式的函数:
L1
L
1
范数。
L1
L
1
范数可以简化如下:
当机器学习问题中零和非零元素之间的差异非常重要时,通常会使用 L1 L 1 范数。每当x 中某个元素从 0 增加 ϵ,对应的 L1 L 1 范数也会增加 ϵ。有时候我们会统计向量中非零元素的个数来衡量向量的大小。有些作者将这种函数称为 “ L0 L 0 范数’’,但是这个术语在数学意义上是不对的。向量的非零元素的数目不是范数,因为对向量缩放 α 倍不会改变该向量非零元素的数目。因此, L1 L 1 范数经常作为表示非零元素数目的替代函数
另外一个经常在机器学习中出现的范数是
L∞
L
∞
范数,也被称为 最大范数(maxnorm)。这个范数表示向量中具有最大幅值的元素的绝对值:
有时候我们可能也希望衡量矩阵的大小。在深度学习中,最常见的做法是使
用 Frobenius 范数(Frobenius norm),
其类似于向量的 L2 L 2 范数。
两个向量的 点积(dot product)可以用范数来表示。具体地, xTx x T x
其中 θ 表示 x 和 y 之间的夹角。