Découvrez comment la similarité cosinus permet de mesurer la similarité entre vecteurs en IA. Calculez des représentations visuelles à l'aide d Ultralytics et évoluez grâce à Ultralytics .
La similarité cosinus est une mesure mathématique fondamentale utilisée en apprentissage automatique (ML) et en intelligence artificielle (IA) pour évaluer le degré de similitude entre deux tableaux multidimensionnels ou vecteurs, indépendamment de leur taille ou de leur amplitude. En calculant l'angle entre deux points dans un espace vectoriel, elle détermine s'ils pointent approximativement dans la même direction. Cette approche angulaire est essentielle pour traiter des données où l'orientation importe davantage que la longueur totale, ce qui la rend très efficace pour comparer des représentations abstraites de données telles que les incorporations.
Pour calculer cet indicateur, on calcule le produit scalaire de deux vecteurs et on le divise par le produit de leurs magnitudes respectives (longueurs). Le score obtenu se situe toujours dans une plage fixe comprise entre -1 et 1 :
Dans de nombreux frameworks modernes d'apprentissage profond conçus pour la vision par ordinateur (CV), vous pouvez facilement accéder à des fonctions optimisées pour cette opération mathématique, telles que le module « functional »PyTorch ou TensorFlow .
Il est utile de distinguer la similarité cosinus des autres mesures couramment utilisées en analyse de données afin de comprendre quand l'utiliser :
La similarité cosinus constitue le moteur central de nombreux logiciels modernes, faisant le lien entre les données brutes et l'intention humaine.
Vous pouvez extraire des vecteurs de caractéristiques de haute dimension directement à partir de données visuelles à l'aide de modèles de vision de pointe. Le Python suivant montre comment charger un modèle Ultralytics pour la classification d'images, générer des représentations pour deux images et effectuer un calcul de similarité cosinus afin de mesurer leur ressemblance visuelle.
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}")
Pour les développeurs qui souhaitent étendre ces capacités de recherche sémantique, il est essentiel de former des modèles de base d'une grande précision. La Ultralytics simplifie ce processus en proposant des outils performants pour l'annotation des données, un apprentissage évolutif dans le cloud et un déploiement transparent des modèles, garantissant ainsi que vos représentations sous-jacentes soient aussi précises et pertinentes que possible.
Commencez votre parcours avec l'avenir de l'apprentissage automatique