Yolo Vision Shenzhen
Шэньчжэнь
Присоединиться сейчас
Глоссарий

Косинусное сходство

Узнайте, как косинусная схожесть измеряет сходство векторов в искусственном интеллекте. Рассчитайте визуальные вложения с помощью Ultralytics и масштабируйте их с помощью Ultralytics .

Косинусная схожесть — это фундаментальный математический показатель, используемый в машинном обучении (ML) и искусственном интеллекте (AI) для оценки степени сходства двух многомерных массивов или векторов, независимо от их размера или величины. Путем вычисления угла между двумя точками в векторном пространстве определяется, указывают ли они примерно в одном и том же направлении. Этот угловой подход имеет решающее значение для обработки данных, где ориентация имеет большее значение, чем общая длина, что делает его весьма эффективным для сравнения абстрактных представлений данных, таких как вложения.

Понимание математических основ метрической системы

Для расчета этого показателя необходимо вычислить скалярное произведение двух векторов и разделить его на произведение их абсолютных значений (длин). Полученное значение всегда находится в фиксированном диапазоне от -1 до 1:

  • Значение 1 означает, что векторы направлены в точно таком же направлении, что свидетельствует о максимальном сходстве.
  • Значение 0 означает, что векторы полностью ортогональны (расположены под углом 90 градусов), то есть между ними нет никакого сходства по направлению.
  • Значение -1 означает, что они направлены в прямо противоположные стороны.

Во многих современных фреймворках глубокого обучения, предназначенных для компьютерного зрения (CV), можно легко воспользоваться оптимизированными функциями для этой математической операции, такими как функциональный модульPyTorch или TensorFlow .

Дифференциация смежных понятий

Чтобы понять, когда следует использовать косинусное сходство, полезно отличать его от других часто применяемых показателей в области анализа данных:

  • Косинусное расстояние: Хотя эти термины тесно связаны, они обратно пропорциональны. Косинусное расстояние просто рассчитывается как 1 минус косинусная схожесть. Следовательно, меньшее расстояние указывает на более высокую схожесть между векторами.
  • Евклидово расстояние: эта метрика измеряет физическое расстояние по прямой между двумя точками, что делает ее очень чувствительной к общей величине векторов. В отличие от этого, косинусное сходство учитывает только угол. Например, при анализе текста длинный документ и короткое предложение могут иметь большое евклидово расстояние, но если они посвящены одной и той же теме, их косинусное сходство останется высоким.

Приложения реального мира в искусственном интеллекте

Косинусная схожесть служит основой для работы множества современных программных продуктов, помогая преодолеть разрыв между необработанными данными и замыслом человека.

  • Векторный поиск и RAG: В приложениях обработки естественного языка (NLP) таких, как чат-боты, пользовательские запросы и внутренние документы преобразуются в плотные вложения. Система быстро вычисляет косинусное сходство, чтобы извлечь наиболее релевантные по контексту документы из векторной базы данных, что является ключевым этапом в генерации с расширением поиска (RAG).
  • Системы рекомендаций: Сервисы электронной коммерции и потокового вещания используют такие инструменты, как Scikit-learn и SciPy, для представления пользовательских предпочтений и товаров каталога в виде векторов. Оценивая степень схожести между профилем покупателя и различными товарами, системы могут точно рекомендовать визуально или тематически связанные товары.

Оценка визуального сходства с помощью Ultralytics

С помощью современных моделей компьютерного зрения можно извлекать многомерные векторы признаков непосредственно из визуальных данных. Приведенный ниже 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 оптимизирует этот процесс, предлагая надежные инструменты для аннотирования данных, масштабируемого обучения в облаке и беспроблемного развертывания моделей, что гарантирует максимальную точность и информативную ценность ваших базовых вложений.

Давайте вместе создадим будущее искусственного интеллекта!

Начните свой путь в будущее машинного обучения