了解余弦相似度如何衡量人工智能中的向量相似度。使用Ultralytics 计算视觉嵌入向量,并通过Ultralytics 实现规模化。
余弦相似度是一种基础的数学度量标准,广泛应用于 机器学习(ML)和 人工智能(AI)领域,用于衡量 两个多维数组或 向量之间的相似程度,无论其大小或模长如何。 通过计算向量空间中两点之间的 夹角,它可判断这两点是否大致指向同一 方向。这种基于角度的方法对于处理那些方向比整体 长度更重要的数据至关重要,因此它在比较 嵌入等抽象数据表示时非常有效。
要计算该指标,需计算两个 向量的点积,并将其除以它们各自 模(长度)的乘积。所得的分数始终 落在-1到1之间的固定范围内:
在许多专为 计算机视觉(CV)设计的现代深度学习框架中,您可以轻松调用 针对该数学运算进行优化的函数,例如 PyTorch functional 模块或 TensorFlow 。
为了弄清楚何时 使用余弦相似度,有必要将其与其他常用的 数据分析指标区分开来:
余弦相似度是众多现代软件产品的核心引擎,它架起了原始数据与 人类意图之间的桥梁。
您可以利用最先进的视觉模型,直接从视觉数据中提取高维特征向量。 下面的Python 演示了如何加载 Ultralytics 模型进行 图像分类,为 两张图像生成嵌入向量,并执行 余弦相似度计算 以衡量它们的视觉相似度。
import torch
import torch.nn.functional as F
from ultralytics import YOLO
# Load a pre-trained YOLO26 classification model
model = YOLO("yolo26n-cls.pt")
# Generate embedding vectors for two separate images
results = model.embed(["bus.jpg", "car.jpg"])
# Calculate the cosine similarity between the two visual embeddings
similarity = F.cosine_similarity(torch.tensor(results[0]), torch.tensor(results[1]), dim=0)
print(f"Visual Similarity Score: {similarity.item():.4f}")
对于希望扩展这些 语义搜索功能的开发者而言,训练高 精度的基础模型至关重要。Ultralytics 提供强大的 数据标注工具、可扩展的云端训练 以及无缝的模型部署功能,简化了这一流程,确保您的 底层嵌入向量尽可能准确且富有意义。
开启您的机器学习未来之旅