欧式距离和余弦距离

欧式距离的向量推导形式

它通过向量的模长和点积来表示两个向量之间的欧式距离,核心是利用向量运算的余弦定理展开:
在这里插入图片描述
这种推导方式把欧式距离和向量的几何属性(模长、夹角)关联起来,更清晰地体现了它的几何意义 ——两个向量在空间中的直线距离,是欧式距离定义在向量运算场景下的严谨表达。

欧式距离的非向量推导形式

在这里插入图片描述
这种非向量推导形式更直观地体现了欧式距离的 “坐标差累积” 本质,无需依赖向量的模长和点积概念,直接通过坐标数值的运算即可计算两点在空间中的直线距离。

欧式距离的向量推导形式和非向量推导形式的应用场景

在这里插入图片描述

向量点积

在这里插入图片描述

余弦距离

在这里插入图片描述
在这里插入图片描述
文本相似度:在 NLP 中,用向量表示文本(如词袋模型、TF-IDF),通过余弦距离衡量文本主题的差异
推荐系统:用向量表示用户 / 物品偏好,余弦距离越小,用户兴趣或物品属性越相似
聚类/分类:在关注 “方向相似性” 而非 “数值大小” 的场景(如判断两个文档的主题是否一致),余弦距离比欧式距离更有效

在这里插入图片描述

余弦距离在图像识别领域的应用场景

特征匹配、分类、检索和跟踪

人脸识别

余弦距离用于衡量人脸特征向量的相似度。例如,通过 FaceNet 等模型提取人脸的高维特征向量后,计算待识别人脸与数据库中人脸特征向量的余弦距离,距离越小则相似度越高,从而实现身份识别

这种方法对人脸的姿态、表情变化具有较好的鲁棒性,能有效区分不同个体

图像分类

余弦距离可用于衡量图像特征向量与各类别中心特征向量的相似度。例如,提取图像的 ORB、SIFT 等局部特征并转换为向量后,通过计算待分类图像特征向量与各预设类别特征向量的余弦距离,将其归类到距离最小的类别中。

此外,还可结合支持向量机(SVM)等分类器,以余弦距离作为特征空间的度量,提升分类准确性。

图像检索

余弦距离用于计算查询图像与数据库中图像特征向量的相似度,从而返回相似图像。例如,当用户输入一张汽车图片时,系统提取其特征向量,与数据库中所有汽车图像的特征向量计算余弦距离,按距离从小到大排序后返回最相似的图像。

这种方法能有效捕捉图像的语义相似性
即使图像在像素层面差异较大,只要特征方向一致(如同一类别的不同车型),也能被检索出来

多目标跟踪(如 DeepSort)

在 DeepSort 等多目标跟踪算法中,余弦距离用于衡量目标外观特征的相似度。通过卷积神经网络提取目标的外观特征向量后,计算当前帧检测框与已有轨迹特征向量的余弦距离,结合匈牙利算法实现目标的跨帧匹配,有效解决了遮挡、重叠等场景下的跟踪难题。

欧氏距离代码

import numpy as np

x = np.random.random(10)
y = np.random.random(10)

# solution1
dist1 = np.linalg.norm(x-y)

# solution2
dist2 = np.sqrt(np.sum(np.square(x-y)))

print('x',x)
print('y',y)
print('dist1',dist1)
print('dist2',dist2)

余弦距离代码

import numpy as np
from scipy.spatial.distance import pdist
 
x=np.random.random(10)
y=np.random.random(10)
 
# solution1
dist1 = 1 - np.dot(x,y)/(np.linalg.norm(x)*np.linalg.norm(y))
 
# solution2
dist2 = pdist(np.vstack([x,y]),'cosine')
 
print('x',x)
print('y',y)
print('dist1',dist1)
print('dist2',dist2)

证明对特征向量进行L2范数归一化后,欧式距离和余弦距离可以等价

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
对特征向量进行 L2 范数归一化后,欧式距离与余弦距离存在单调的等价关系(可通过对方直接推导得到)
因此在这种情况下两者可以等价衡量向量间的相似度(差异程度)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值