网易首页 > 网易号 > 正文 申请入驻

Python 线性代数 07:向量范数、距离与相似度

0
分享至

向量由有序分量表示,还可以通过非负数描述其整体大小,并比较两个向量之间的差异或接近程度。对于具有几何意义的非零向量,还可以研究它们的方向关系。范数用于度量单个向量的大小,距离用于度量两个向量相隔多远,相似度则用于描述它们在某种意义上有多接近。

在 Python 中,可以使用基本语法计算常见范数,也可以使用 NumPy 的 np.linalg.norm() 完成范数、距离和向量单位化。不同度量关注的特征不同,选择合适的度量方式是数据分析和 AI 编程中的重要环节。

一、范数、距离与相似度

1、范数描述向量的大小

范数(Norm)将一个向量映射为非负标量,用于描述向量的整体大小。这种从向量到非负标量的映射,就是定义在 ℝⁿ 上的函数。

设 n 维实向量为:

向量 v 的范数通常写成:

范数越大,表示向量在相应度量下越大;零向量的范数为 0。

这里的“向量长度”指向量的几何大小,不是向量所含分量的数量。向量包含多少个分量,通常称为它的维数。

2、距离描述两个向量的差异

向量距离(Vector Distance)用于描述两个同维向量之间的差异。

许多常用距离都可以通过两个向量之差的范数定义:

也就是说,先计算从一个向量到另一个向量的差向量,再度量这个差向量的大小。

3、相似度描述两个向量的接近程度

相似度(Similarity)通常用一个数值表示两个向量有多相似。

一般来说,距离越小,两个向量越接近;相似度越大,两个向量越相似。

距离和相似度并不是简单互换的概念。不同相似度可能关注方向、分量重合程度或其他结构,具体含义取决于所采用的计算方法。

二、范数的基本性质

一个用于描述向量大小的函数,需要满足以下基本性质才能称为范数。设 u、v ∈ ℝⁿ,c ∈ ℝ。

1、非负性与确定性

范数始终大于或等于 0:

并且:

只有零向量的范数为 0。

2、绝对齐次性

向量乘以标量 c 后,范数变为原来的 |c| 倍。对于非零向量,负号会使方向反转,但不会改变范数。

3、三角不等式

两个向量之和的范数不会超过两个向量范数之和。这与几何中“三角形任意一边不超过另外两边之和”相对应。

三、常见的向量范数

1、L1 范数

L1 范数(L1 Norm)是各分量绝对值之和:

例如:

则:

L1 范数累加每个分量的绝对大小,不会通过平方进一步放大较大的分量。

2、L2 范数

L2 范数(L2 Norm)也称欧几里得范数(Euclidean Norm),定义为各分量平方和的平方根:

对于上例的向量:

L2 范数对应欧几里得空间中的直线长度,也是几何和机器学习中最常用的向量范数之一。

3、L∞ 范数

L∞ 范数(L-infinity Norm)取所有分量绝对值中的最大值:

对于上例的向量:

L∞ 范数只关注绝对值最大的分量,可以表示向量在单个分量上的最大幅度。

4、Lp 范数

L1 范数和 L2 范数都属于更一般的 Lp 范数(Lp Norm):

当 p = 1 时得到 L1 范数;当 p = 2 时得到 L2 范数。

随着 p 增大,较大的绝对分量对结果的影响更加明显。当 p 趋近于无穷大时,Lp 范数趋近于 L∞ 范数:

四、向量单位化

范数为 1 的向量称为单位向量(Unit Vector)。

对于非零向量 v,可以将它除以自身的 L2 范数,得到方向不变的单位向量:

这个过程称为 L₂ 单位化(L2 Normalization),也称向量归一化。它将向量的 L₂ 范数调整为 1,不同于把数据缩放到某个数值区间。

例如:

其 L2 范数为:

因此:

单位化后的向量满足:

单位化改变向量的大小,但不改变非零向量的方向。

零向量的范数为 0。若直接计算:

就会出现除以 0,因此零向量不能按照上述方式单位化。

五、向量距离

1、由范数定义距离

对于两个同维向量 a 和 b,可以使用不同范数度量差向量 a − b,从而得到不同类型的距离:

由范数定义的距离满足以下基本性质:

它们分别表示非负性、确定性、对称性和三角不等式。

2、曼哈顿距离

曼哈顿距离(Manhattan Distance)由 L1 范数定义:

它将各个分量方向上的差异相加,类似于在规则街区中只能沿各坐标轴方向移动。

3、欧几里得距离

欧几里得距离(Euclidean Distance)由 L2 范数定义:

它表示欧几里得空间中两个点之间的直线距离。

4、切比雪夫距离

切比雪夫距离(Chebyshev Distance)由 L∞ 范数定义:

它只关注所有分量差异中的最大值。

5、距离计算示例

设:

差向量为:

曼哈顿距离为:

欧几里得距离为:

切比雪夫距离为:

六、向量相似度

1、余弦相似度

余弦相似度(Cosine Similarity)通过夹角余弦衡量两个非零向量的方向接近程度:

对于实数向量,其取值范围为:

一般可以理解为:

接近 1:两个向量的方向接近;

接近 0:两个向量的方向接近正交;

接近 −1:两个向量的方向接近相反。

余弦相似度主要关注方向,对向量的正比例缩放不敏感。

若将一个向量乘以负数,其方向会反转,因此余弦相似度的符号也会发生变化。

2、点积相似度

在一些向量检索和机器学习任务中,可以直接使用点积作为相似度:

点积相似度同时受到向量方向和大小影响。即使两个向量方向相同,范数更大的向量通常也会得到更大的点积。

当两个向量都经过 L2 单位化时:

此时:

3、距离与相似度的关系

距离关注两个向量相差多少,余弦相似度关注两个向量的方向是否接近。

因此,两个向量可能方向相同,但欧几里得距离仍然较大。例如,一个向量可能只是另一个向量的较大正比例倍数。

对于两个经过 L2 单位化的向量 a 和 b,有:

因此,在单位向量条件下,欧几里得距离越小,余弦相似度越大,两者会产生一致的排序关系。

实践中常将:

称为余弦距离(Cosine Distance)或余弦差异。

不过,它在一般情况下不一定满足距离函数的全部性质,因此更准确地说是一种不相似度。

七、使用 Python 计算范数、距离与相似度

1、使用 Python 基本语法计算范数

可以使用列表和内置函数计算常见范数:

print(norm_linf)

输出:

12

L1 范数累加绝对值,L2 范数计算平方和的平方根,L∞ 范数取最大绝对分量。

2、使用 NumPy 计算范数

NumPy 可以使用 np.linalg.norm() 计算不同范数:

print(norm_linf)

输出:

12.0

对于一维数组,np.linalg.norm(v) 默认计算 L2 范数。

3、计算向量距离

两个向量之间的距离可以通过差向量的范数计算:

print(distance_linf)

输出:

3.0

其中,欧几里得距离约为 3.606。

4、单位化与余弦相似度

print(cosine_similarity)

输出可能为:

0.8888888888888888

两个向量经过 L2 单位化后,它们的点积就等于余弦相似度。

八、范数、距离与相似度在 AI 编程中的典型应用

1、批量单位化嵌入向量

不同数据生成的嵌入向量可能具有不同范数。在只需要比较方向时,可以对每个嵌入向量进行 L2 单位化:

print(normalized_embeddings)

axis=1 表示分别计算每一行的范数,keepdims=True 将被聚合的轴保留为长度 1,使除法能够通过广播按行完成。

2、寻找距离最近的向量

在分类、聚类和向量检索中,可以根据距离寻找最接近查询向量的候选项:

print(candidates[nearest_index])

输出可能为:

[1.2 2.1]

candidates - query 通过广播计算每个候选向量与查询向量的差,axis=1 再分别计算每一行的 L2 范数。

np.argmin() 返回距离最小元素的位置,因此第 0 个候选向量与查询向量最接近。

3、约束模型参数

范数还可以用于限制模型参数的大小。常见的 L1 和 L2 正则化形式分别为:

其中,L_data 是原始数据损失,w 是参数向量,λ 是控制正则化强度的非负系数。

L1 正则化通常更容易产生较多接近 0 或等于 0 的参数;L2 正则化则倾向于整体抑制过大的参数。具体效果还与模型、数据和优化方法有关。

九、常见问题及使用建议

1、不要混淆维数与范数

向量的维数表示分量数量,范数表示向量的大小。

例如,向量 [3, 4] 是二维向量,但其 L2 范数为 5。二维和长度为 5 描述的是不同概念。

2、单位化前检查零向量

零向量的范数为 0,不能直接作为除数。进行单位化或计算余弦相似度前,应先检查范数是否接近 0。

对于浮点数,可以使用:

np.isclose(norm_value, 0.0)

避免只依赖严格比较:

norm_value == 0.0

3、注意不同特征的尺度

欧几里得距离和曼哈顿距离会直接受到分量尺度影响。

如果一个特征的数值范围为 0 到 1,另一个特征的数值范围为 0 到 10000,后者通常会主导距离结果。因此,比较距离前常需要根据数据含义进行标准化或其他尺度处理。

4、不要把相似度直接理解为距离

相似度和距离都可以描述对象之间的关系,但关注角度不同。相似度通常衡量对象之间的相似程度,数值越大表示越接近;距离通常衡量对象之间的差异程度,数值越小表示越接近。

不同的度量方式可能关注不同的信息。例如,余弦相似度主要反映两个向量的方向关系,而欧几里得距离反映两个向量端点之间的空间差异。余弦相似度为 0 表示两个非零向量方向正交,并不表示两个向量相同或它们之间的距离为 0。

5、批量计算时明确指定轴

对于二维及更高维 NumPy 数组,np.linalg.norm() 的结果取决于 axis 和 ord 参数。

例如:

np.linalg.norm(data, axis=1)

表示分别计算每一行的 L2 范数。

对于二维数组,如果同时省略 axis 和 ord,np.linalg.norm() 会将其作为矩阵计算 Frobenius 范数,而不是分别计算每一行或每一列的向量范数。

小结

范数度量向量大小,距离度量向量差异,相似度描述向量的接近程度。L1、L2 和 L∞ 范数关注不同特征,Python 可以通过 np.linalg.norm() 完成范数、距离和单位化计算,并结合点积计算余弦相似度。


“点赞有美意,赞赏是鼓励”

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
越南高铁结局已定,又一个国家进来搅局,中国冷眼旁观看戏就好

越南高铁结局已定,又一个国家进来搅局,中国冷眼旁观看戏就好

新一说史
2026-09-04 09:42:26
案件:北京一女教授在家养病长达10年,民警进门后,当场愣在原地

案件:北京一女教授在家养病长达10年,民警进门后,当场愣在原地

五元讲堂
2024-12-24 16:57:49
伦敦人开始骑“电驴”上班了!1000英镑一辆,折合人民币9000块,比国内贵三倍,英国年轻人抢着买

伦敦人开始骑“电驴”上班了!1000英镑一辆,折合人民币9000块,比国内贵三倍,英国年轻人抢着买

扶苏聊历史
2026-10-28 11:24:19
抓紧晒衣晒被!这天起连晴中断,雨水登场......

抓紧晒衣晒被!这天起连晴中断,雨水登场......

浙江天气
2026-10-28 18:17:51
DeepSeek一算吓一跳!居然算出生产一辆比亚迪秦L DM-i的实际成本

DeepSeek一算吓一跳!居然算出生产一辆比亚迪秦L DM-i的实际成本

阿芒娱乐说
2026-10-26 12:45:34
30万斤堆积如山,树上6万斤无人问津,低价卖不动,农民满心无奈

30万斤堆积如山,树上6万斤无人问津,低价卖不动,农民满心无奈

三农雷哥
2026-09-05 12:16:13
去了一趟伊朗才发现:原来在伊朗人眼里,中国人是这样的

去了一趟伊朗才发现:原来在伊朗人眼里,中国人是这样的

千秋文化
2026-03-24 21:40:40
远离满嘴“家国大义”的人

远离满嘴“家国大义”的人

难得君
2026-10-04 14:53:26
几种降压药安全性排名!最安全的竟是它,危害最大的需警惕!

几种降压药安全性排名!最安全的竟是它,危害最大的需警惕!

医学科普汇
2026-10-24 22:05:05
打出8.6分,夯爆了

打出8.6分,夯爆了

来看美剧
2026-10-26 18:31:35
CBA猛料!上海男篮欲签新外援,山东男篮欲裁班顿,辽宁五人受伤

CBA猛料!上海男篮欲签新外援,山东男篮欲裁班顿,辽宁五人受伤

中国篮坛快讯
2026-10-28 13:11:32
出口民调显示以色列大选无阵营拿下多数,接下来会发生什么?

出口民调显示以色列大选无阵营拿下多数,接下来会发生什么?

参考消息
2026-10-28 19:37:09
为何俄罗斯宁愿割让500多万平方公里的领土,也不愿舍弃克里米亚

为何俄罗斯宁愿割让500多万平方公里的领土,也不愿舍弃克里米亚

纪史行者
2026-08-09 08:47:12
五世达赖突然溘然长逝,临终策划了一出令人叹服的大戏!

五世达赖突然溘然长逝,临终策划了一出令人叹服的大戏!

雍亲王府
2026-10-10 19:20:10
杨振宁妻子翁帆自白:为了先生的身体,我16年来都是早睡早起

杨振宁妻子翁帆自白:为了先生的身体,我16年来都是早睡早起

翰飞观事
2026-10-25 11:52:20
赌场还是屠宰场?A股正在把散户吃干抹净

赌场还是屠宰场?A股正在把散户吃干抹净

A活着
2026-10-12 17:03:56
保利集团董事长贺平的人生颇具传奇色彩:他娶了邓小平的女儿为妻,还曾低调斥资3000万元收回三件国宝

保利集团董事长贺平的人生颇具传奇色彩:他娶了邓小平的女儿为妻,还曾低调斥资3000万元收回三件国宝

z千年历史老号
2026-09-07 11:43:45
男子花3500找了一个小姐,又觉得不过瘾,让小姐再喊个闺蜜过来“一起玩”

男子花3500找了一个小姐,又觉得不过瘾,让小姐再喊个闺蜜过来“一起玩”

张晓磊
2026-10-18 11:58:47
从小鹏“老登”风波看本土车企:车型叫英文名、员工是英文名

从小鹏“老登”风波看本土车企:车型叫英文名、员工是英文名

许三岁
2026-10-28 07:22:54
任骏飞直接一步到位!知名媒体人发文爆料

任骏飞直接一步到位!知名媒体人发文爆料

兰亭墨未干
2026-10-28 08:40:11
2026-10-29 04:19:00
MediaTea
MediaTea
专业的数字媒体、新媒体技术
2258文章数 85关注度
往期回顾 全部

科技要闻

宇树科技前三季净利暴增270%

头条要闻

仅退款后冰柜仍插着电在使用 买家回应

头条要闻

仅退款后冰柜仍插着电在使用 买家回应

体育要闻

0胜4负与篮网国王一桌 热火字母哥赌错了?

娱乐要闻

巾帼不让须眉!章子怡拿下重磅荣誉

财经要闻

iPhone Duo七年等来一场吐槽大会

汽车要闻

首销期权益价23.98万起 2026款理想i6上市

态度原创

数码
艺术
旅游
公开课
军事航空

数码要闻

苹果首次将“灵动岛”引入MacBook Pro

艺术要闻

23张人性与爱的照片,第1张就让人破防了……

旅游要闻

忻州古城“古城焕新·产城共荣”入选2026中国旅游产业影响力案例

公开课

李玫瑾:为什么性格比能力更重要?

军事要闻

伊朗最高领袖最新声明 提到了“结束战争”

无障碍浏览 进入关怀版