Saiba como a similaridade cosinusoidal mede a similaridade entre vetores na IA. Calcule representações visuais com Ultralytics e escale com Ultralytics .
A similaridade cosinusoidal é uma métrica matemática fundamental utilizada na aprendizagem automática (ML) e na inteligência artificial (IA) para medir o grau de similaridade entre dois vetores ou matrizes multidimensionais, independentemente do seu tamanho ou magnitude. Ao calcular o ângulo entre dois pontos num espaço vetorial, determina-se se estes apontam aproximadamente na mesma direção. Esta abordagem angular é fundamental para o processamento de dados em que a orientação é mais importante do que o comprimento total , tornando-a altamente eficaz para comparar representações abstratas de dados, como incorporações.
Para calcular esta métrica, calcula-se o produto escalar de dois vetores e divide-se pelo produto das suas magnitudes (comprimentos) individuais. A pontuação resultante situa-se sempre num intervalo fixo entre -1 e 1:
Em muitas estruturas modernas de aprendizagem profunda concebidas para visão computacional (CV), é possível aceder facilmente a funções otimizadas para esta operação matemática, tais como o módulo funcionalPyTorch ou TensorFlow .
É útil distinguir a similaridade cosinusoidal de outras métricas de análise de dados frequentemente utilizadas para compreender quando a utilizar:
A similaridade cosinusoidal funciona como o motor central de inúmeros produtos de software modernos, fazendo a ponte entre os dados brutos e a intenção humana.
É possível extrair vetores de características de alta dimensão diretamente a partir de dados visuais utilizando modelos de visão de última geração. O Python a seguir demonstra como carregar um modelo Ultralytics para classificação de imagens, gerar representações para duas imagens e realizar um cálculo de similaridade cosinusoidal para medir a sua semelhança visual.
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}")
Para os programadores que pretendem expandir estas capacidades de pesquisa semântica, é fundamental treinar modelos de base de elevada precisão. A Ultralytics simplifica este processo, oferecendo ferramentas robustas para a anotação de dados, treino escalável na nuvem e implementação de modelos sem complicações, garantindo que as suas incorporações subjacentes sejam tão precisas e significativas quanto possível.
Comece sua jornada com o futuro do aprendizado de máquina