Узнайте, как косинусная схожесть измеряет сходство векторов в искусственном интеллекте. Рассчитайте визуальные вложения с помощью Ultralytics и масштабируйте их с помощью Ultralytics .
Косинусная схожесть — это фундаментальный математический показатель, используемый в машинном обучении (ML) и искусственном интеллекте (AI) для оценки степени сходства двух многомерных массивов или векторов, независимо от их размера или величины. Путем вычисления угла между двумя точками в векторном пространстве определяется, указывают ли они примерно в одном и том же направлении. Этот угловой подход имеет решающее значение для обработки данных, где ориентация имеет большее значение, чем общая длина, что делает его весьма эффективным для сравнения абстрактных представлений данных, таких как вложения.
Для расчета этого показателя необходимо вычислить скалярное произведение двух векторов и разделить его на произведение их абсолютных значений (длин). Полученное значение всегда находится в фиксированном диапазоне от -1 до 1:
Во многих современных фреймворках глубокого обучения, предназначенных для компьютерного зрения (CV), можно легко воспользоваться оптимизированными функциями для этой математической операции, такими как функциональный модульPyTorch или 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 оптимизирует этот процесс, предлагая надежные инструменты для аннотирования данных, масштабируемого обучения в облаке и беспроблемного развертывания моделей, что гарантирует максимальную точность и информативную ценность ваших базовых вложений.
Начните свой путь в будущее машинного обучения