趋近智
在机器学习 (machine learning)中,我们常需要量化 (quantization)向量 (vector)的“大小”或“量级”。虽然我们能直观感知二维或三维空间中的长度,但表示数据特征的向量可能存在于高得多的维度中。我们需要一种统一的方法来衡量这种长度。在此,范数这个思想便派上用场。范数是一种函数,它将一个向量作为输入,并返回一个表示其量级的非负标量值。可以把它看作是长度这一想法的正式推广。
不同的范数以不同方式衡量长度,范数的选择对机器学习算法有重要影响,尤其是在正则化 (regularization)和误差计算等方面。接下来,我们来查看最常见的范数。
最常见的范数是范数,也称为欧几里得范数。它对应于向量 (vector)的标准几何长度,计算方法是其分量平方和的平方根。对于一个n维向量 ,范数的定义如下:
这本质上是勾股定理在高维空间 (high-dimensional space)中的推广。它表示从原点到向量所代表点的最短直线距离。
例子: 考虑向量 。 其 范数为:
import numpy as np
v = np.array([3, 4])
l2_norm = np.linalg.norm(v) # 默认范数为L2
print(f"向量: {v}")
print(f"L2 范数: {l2_norm}")
# 输出:
# 向量: [3 4]
# L2 范数: 5.0
范数衡量的是从原点 (0,0) 到点 (3,4) 的直接欧几里得距离。
在机器学习 (machine learning)中,范数经常被使用:
另一个重要的范数是范数,常被称为曼哈顿范数或出租车范数。它不是将分量平方,而是将它们的绝对值相加:
“曼哈顿范数”这个名称源于在网格状城市规划中导航的思路。你只能沿着网格线(就像城市街区一样)移动,而不能斜向移动。范数表示沿着这些轴线从原点到向量 (vector)终点所走的总距离。
例子: 对于相同的向量 。 其 范数为:
import numpy as np
v = np.array([3, 4])
l1_norm = np.linalg.norm(v, ord=1)
print(f"向量: {v}")
print(f"L1 范数: {l1_norm}")
# 输出:
# 向量: [3 4]
# L1 范数: 7.0
范数衡量的是分量绝对值之和,就像沿着网格线从 (0,0) 移动到 (3,0) 然后再到 (3,4)。
范数在机器学习 (machine learning)中有其独特的性质:
主要区别在于它们如何处理分量的大小。范数对值进行平方,从而对大分量施加重罚。范数取绝对值,对偏差进行线性处理。
当考虑所有范数为1的向量 (vector)时,这种差异在视觉上很明显。对于范数,这形成一个圆形(在二维中)或超球体(在更高维中)。对于范数,这形成一个菱形(在二维中)或交叉多面体(在更高维中)。
二维空间中,表示 (蓝色圆形)和 (红色菱形)的几何形状。 菱形的“角”对应于坐标轴,这有助于它在优化问题中倾向于稀疏解(即某些分量恰好为零)。
和范数是更广泛的范数家族的特殊情况,其定义为:
其中 。
另一个有时会遇到的范数是范数(或最大范数),它是范数当趋于无穷时的极限。它简单地返回向量 (vector)分量中的最大绝对值:
尽管和在许多机器学习 (machine learning)应用中是主力,但了解一般的家族能提供更广阔的视角。
理解向量 (vector)范数十分重要,因为它们提供了衡量以下内容的方法:
能够有效地计算这些范数,通常使用NumPy等库,是实现和理解许多机器学习 (machine learning)算法的核心能力。
简洁的语法。内置调试功能。从第一天起就可投入生产。
为 ApX 背后的 AI 系统而构建
这部分内容有帮助吗?
numpy.linalg.norm, NumPy Developers, 2023 - 用于计算各种向量和矩阵范数(包括$L_1$和$L_2$)的NumPy函数官方文档。© 2026 ApX Machine LearningAI伦理与透明度•