Descubre cómo la similitud coseno mide la similitud entre vectores en la IA. Calcula incrustaciones visuales con Ultralytics y amplía tu capacidad con Ultralytics .
La similitud coseno es una métrica matemática fundamental que se utiliza en el aprendizaje automático (ML) y la inteligencia artificial (IA) para medir el grado de similitud entre dos matrices multidimensionales o vectores, independientemente de su tamaño o magnitud. Al calcular el ángulo entre dos puntos en un espacio vectorial, determina si apuntan aproximadamente en la misma dirección. Este enfoque angular es fundamental para procesar datos en los que la orientación importa más que la longitud total, lo que lo hace muy eficaz para comparar representaciones abstractas de datos como las incrustaciones.
Para calcular esta métrica, se calcula el producto escalar de dos vectores y se divide por el producto de sus respectivas magnitudes (longitudes). La puntuación resultante siempre se sitúa dentro de un intervalo fijo comprendido entre -1 y 1:
En muchos marcos modernos de aprendizaje profundo diseñados para la visión artificial (CV), se puede acceder fácilmente a funciones optimizadas para esta operación matemática, como el módulo «functional»PyTorch o TensorFlow .
Resulta útil diferenciar la similitud coseno de otras medidas de análisis de datos que se utilizan con frecuencia para saber cuándo utilizarla:
La similitud coseno constituye el motor central de numerosos productos de software modernos, tendiendo un puente entre los datos brutos y la intención humana.
Se pueden extraer vectores de características de alta dimensión directamente a partir de datos visuales utilizando modelos de visión de última generación. El siguiente Python muestra cómo cargar un modelo Ultralytics para la clasificación de imágenes, generar incrustaciones para dos imágenes y realizar un cálculo de similitud coseno para medir su parecido 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 los desarrolladores que deseen ampliar estas capacidades de búsqueda semántica, es fundamental entrenar modelos base de gran precisión. La Ultralytics agiliza este proceso al ofrecer herramientas sólidas para la anotación de datos, el entrenamiento escalable en la nube y la implementación fluida de modelos, lo que garantiza que tus incrustaciones subyacentes sean lo más precisas y significativas posible.
Comience su viaje con el futuro del aprendizaje automático