向量范数,也称为向量的模,是描述向量在空间中长度的一个非负数。在机器学习和深度学习领域,向量范数的概念非常重要,通常用于评估模型的误差。例如,它可以计算神经网络输出与预期值(实际值或标签)之间的误差,或者用于定义包含权重大小的正则化项,以鼓励权重较小。向量范数是一个将向量映射到正值的函数,不同的函数可以用于计算向量范数,将看到一些例子。向量范数具有以下性质:
向量范数是非负值。如果将范数视为长度,很容易理解它们不能是负数。向量范数只有在向量本身是零向量时才为0。范数遵循三角形不等式(一些向量的和的范数小于或等于这些向量的范数之和)。当向量被拉伸时,范数会乘以拉伸因子。
在机器学习中,经常使用L1范数、L2范数和最大范数来计算向量的模。这些范数的计算方法如下:
L1范数,也称为曼哈顿范数,用于计算向量的模。L1范数的符号是||v||1,计算方法是将向量在不同方向上的分量的绝对值相加。在机器学习中,当向量的稀疏性很重要时,即当矩阵的非零元素是关键因素时,通常使用L1范数,因为它通过将非零元素相加来简单地针对非零元素。
import numpy as np
from numpy.linalg import norm
arr = np.array([1,3,5])
l1 = norm(arr, 1)
print(l1)
L2范数,也称为欧几里得范数,用于计算向量的模。L2范数的符号是||v||2,计算方法是对向量的分量进行平方,然后求和,最后取平方根。这种范数可以找到向量坐标与向量空间原点的距离。L2范数在机器学习中非常常用,因为它是一个可微函数,这对于优化目的至关重要。
import numpy as np
from numpy.linalg import norm
arr = np.array([1,3,5])
l2 = norm(arr, 2)
print(l2)
最大范数,也称为L∞范数,用于计算向量的模。最大范数的符号是||v||∞,计算方法是返回向量中的最大值。
import numpy as np
from numpy.linalg import norm
arr = np.array([1,3,5])
maxnorm = norm(arr, np.inf)
print(maxnorm)