AI 术语通俗词典:向量范数

张开发
2026/4/13 15:15:26 15 分钟阅读

分享文章

AI 术语通俗词典:向量范数
范数是数学、线性代数、数据分析、机器学习和人工智能中非常常见的一个术语。它用来描述一个向量、矩阵或更一般的数据对象“有多大”。不过这里的“大小”并不一定只是日常意义上的长度而是一种按照特定规则定义出来的数值度量。如果说向量回答的是“一个对象在多个维度上的数值表示”那么范数回答的就是“这个向量整体有多大”。因此范数常被用来衡量向量长度、矩阵大小、误差强弱、参数规模以及模型复杂度在人工智能中非常重要。一、基本概念什么是范数范数Norm可以理解为一种“大小度量规则”。它把一个向量、矩阵或其他对象映射为一个非负数用来表示这个对象整体上的大小。在初学阶段最常见的是向量范数Vector Norm。例如一个 n 维向量可写为范数的作用就是根据向量中这些分量的数值计算出一个整体“长度”或“规模”的结果。最常见的范数之一是 L2 范数L2 Norm也常被称为欧几里得范数Euclidean Norm。其公式可写为其中• xᵢ 表示向量在第 i 个维度上的分量• n 表示向量的维度个数• ‖x‖₂ 表示向量 x 的 L2 范数这个公式的含义并不复杂先把每个分量平方再求和最后开平方。它得到的结果本质上就是这个向量在几何空间中的“长度”。例如若那么它的 L2 范数为这与勾股定理的结果是一致的。除了 L2 范数还有两个非常常见的范数1、L1 范数L1 范数的公式可写为它表示把各个分量的绝对值直接相加。从通俗角度看L1 范数可以理解为不考虑方向只把每个维度上的“用量”加总起来。2、L∞ 范数L∞ 范数无穷范数的公式可写为它表示取所有分量绝对值中的最大值。从通俗角度看L∞ 范数可以理解为只看各个维度中“最大的一项”有多大。因此不同范数实际上是在回答不同的问题• L1 范数回答“总量有多大”• L2 范数回答“整体长度有多大”• L∞ 范数回答“最大分量有多大”这说明范数并不是唯一的一种“大小”而是一类不同的度量方式。从通俗角度看范数可以理解为把一个由多个数字组成的对象按照某种规则压缩成一个表示“整体大小”的数。二、范数的重要性与常见应用场景1、范数的重要性范数之所以重要是因为在人工智能和数据分析中我们经常不仅要看“每个分量是多少”还要看“整体规模有多大”。首先范数可以帮助我们把多维数据的“整体大小”表达出来。例如一个向量有很多分量如果只看每个分量很难快速判断它整体是大还是小而范数可以把这些分散的信息汇总为一个数。其次范数是很多距离、误差和相似度概念的基础。例如欧氏距离Euclidean Distance本质上就与 L2 范数密切相关。两个向量之差的 L2 范数就可以表示它们之间的欧氏距离。再次范数在机器学习中常用于控制模型复杂度。在模型训练中参数过大可能带来过拟合Overfitting风险因此常通过范数来约束参数规模。正则化Regularization中的 L1 正则化和 L2 正则化就直接建立在范数基础之上。2、常见应用场景1在向量分析中范数常用于表示向量长度在几何和线性代数中向量的“长度”通常就是用范数来描述的。特别是 L2 范数它最接近日常直觉中的“长度”概念。2在距离计算中范数常用于定义样本之间的差异若两个向量分别是 x 和 y那么它们的差向量 x - y 的范数就可以用来衡量二者差异有多大。例如欧氏距离本质上就是3在机器学习中范数常用于正则化在模型训练中人们常通过对参数向量的范数加约束来防止模型参数过大。例如L1 正则化与 L1 范数有关L2 正则化与 L2 范数有关。这使范数在特征选择、模型压缩和泛化能力控制中都很重要。4在误差分析中范数可用于衡量整体误差大小如果一个模型在多个样本上都存在误差那么这些误差可以组成一个误差向量。这时我们可以通过范数来衡量整体误差强弱而不只是看某一个样本的误差。5在矩阵和张量计算中也可以用范数衡量整体规模范数不仅适用于向量也适用于矩阵。例如一个矩阵中的元素很多我们也常希望用一个数来表示这个矩阵“整体有多大”这时就会用到矩阵范数Matrix Norm。可以概括地说向量说明“由哪些分量组成”范数说明“这个对象整体有多大”。三、使用范数时需要注意的问题范数虽然非常常用但在理解和使用时也要注意几个问题。1、不同范数衡量的“大小”并不完全相同L1、L2、L∞ 等范数都会给出一个非负数但它们强调的对象特征不同。因此不能简单地把所有范数看成同一种“长度”而应结合具体问题理解它们各自的含义。2、范数结果依赖于数据尺度如果向量中的数值整体变大那么范数通常也会变大。因此在比较不同对象的范数时要注意这些对象是否处在相近的尺度上。在实际任务中这常常涉及归一化Normalization或标准化Standardization问题。3、范数大不一定表示“更差”小也不一定表示“更好”范数只是一个大小度量其意义取决于具体场景。例如在误差分析中范数大通常表示误差较大但在某些信号表示或能量分析中范数大可能只是表示信号更强并不一定是坏事。4、矩阵范数与向量范数不要混淆虽然都叫“范数”但矩阵范数和向量范数的定义并不完全相同。初学阶段通常先掌握向量范数再逐步扩展到矩阵范数会更稳妥。5、范数是“度量规则”不是单独的一种固定公式很多初学者一看到“范数”就默认是 L2 范数。实际上L2 范数只是最常见的一种。在不同任务中人们完全可能选择不同的范数因此理解“范数”时最好同时意识到它是一个更一般的概念。四、Python 示例下面给出两个简单示例用来说明范数的基本计算过程以及不同范数如何从不同角度描述向量大小。示例 1计算一个向量的 L1 范数与 L2 范数import math # 一个向量x [3, 4] # 计算 L1 范数l1_norm 0for value in x: l1_norm abs(value) # 计算 L2 范数l2_sum 0for value in x: l2_sum value ** 2l2_norm math.sqrt(l2_sum) print(向量 x, x)print(L1 范数, l1_norm)print(L2 范数, l2_norm)这个例子展示了两种最常见的向量范数。同一个向量在不同范数下得到的“大小”结果可以不同。示例 2计算一个向量的 L∞ 范数# 一个向量x [3, -4, 2, 1] # 计算 L∞ 范数linf_norm max(abs(value) for value in x) print(向量 x, x)print(L∞ 范数, linf_norm)这个例子展示了无穷范数的计算方式。这个结果说明如果我们只关心“最大的那一项有多大”那么 L∞ 范数就是很自然的选择。 小结范数是一种把向量、矩阵等对象的整体大小压缩为单个数值的度量规则。在人工智能中范数常用于表示长度、定义距离、衡量误差以及控制模型参数规模。不同范数强调的“大小”含义并不完全相同。对初学者而言可以把它理解为向量告诉我们“有哪些分量”而范数告诉我们“这些分量整体上有多大”。“点赞有美意赞赏是鼓励”

更多文章