Scopri come la similarità cosinusoidale misura la similarità vettoriale nell'intelligenza artificiale. Calcola gli embedding visivi con Ultralytics e scala le operazioni con Ultralytics .
La similarità cosinusoidale è una metrica matematica fondamentale utilizzata nell' apprendimento automatico (ML) e nell' intelligenza artificiale (AI) per misurare quanto siano simili due matrici multidimensionali o vettori, indipendentemente dalle loro dimensioni o grandezza. Calcolando l'angolo tra due punti in uno spazio vettoriale, determina se puntano approssimativamente nella stessa direzione. Questo approccio angolare è fondamentale per l'elaborazione di dati in cui l'orientamento conta più della lunghezza complessiva , rendendolo altamente efficace per il confronto di rappresentazioni astratte dei dati come le incorporazioni.
Per calcolare questa metrica, si calcola il prodotto scalare di due vettori e lo si divide per il prodotto delle loro singole magnitudini (lunghezze). Il punteggio risultante rientra sempre in un intervallo fisso compreso tra -1 e 1:
In molti framework moderni di deep learning progettati per la visione artificiale (CV), è possibile accedere facilmente a funzioni ottimizzate per questa operazione matematica, come il modulo functionalPyTorch o TensorFlow .
È utile distinguere la similarità coseno da altre misure di analisi dei dati di uso comune per capire quando utilizzarla:
La similarità cosinusoidale costituisce il motore principale di numerosi prodotti software moderni, colmando il divario tra i dati grezzi e l'intenzione umana.
È possibile estrarre vettori di caratteristiche ad alta dimensione direttamente dai dati visivi utilizzando modelli di visione all'avanguardia. Il seguente Python mostra come caricare un modello Ultralytics per la classificazione delle immagini, generare embedding per due immagini ed eseguire un calcolo della similarità cosinusoidale per misurarne la somiglianza visiva.
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}")
Per gli sviluppatori che intendono potenziare queste funzionalità di ricerca semantica, l'addestramento di modelli di base altamente precisi è fondamentale. La Ultralytics semplifica questo processo offrendo strumenti affidabili per l'annotazione dei dati, l'addestramento scalabile su cloud e l'implementazione fluida dei modelli, garantendo che le vostre incorporazioni sottostanti siano il più precise e significative possibile.
Inizia il tuo viaggio con il futuro del machine learning