Erfahren Sie, wie die Kosinusähnlichkeit die Vektorähnlichkeit in der KI misst. Berechnen Sie visuelle Einbettungen mit Ultralytics und skalieren Sie diese mit Ultralytics .
Die Kosinusähnlichkeit ist eine grundlegende mathematische Metrik, die im maschinellen Lernen (ML) und in der künstlichen Intelligenz (KI) verwendet wird, um zu messen, wie ähnlich sich zwei mehrdimensionale Arrays oder Vektoren sind, unabhängig von ihrer Größe oder ihrem Betrag. Durch die Berechnung des Winkels zwischen zwei Punkten in einem Vektorraum wird ermittelt, ob diese in etwa in dieselbe Richtung zeigen. Dieser winkelspezifische Ansatz ist entscheidend für die Verarbeitung von Daten, bei denen die Ausrichtung wichtiger ist als die Gesamtlänge , was ihn äußerst effektiv für den Vergleich abstrakter Datendarstellungen wie Einbettungen macht.
Zur Berechnung dieser Kennzahl ermittelt man das Skalarprodukt zweier Vektoren und dividiert es durch das Produkt ihrer jeweiligen Beträge (Längen). Der resultierende Wert liegt stets innerhalb eines festen Bereichs von -1 bis 1:
In vielen modernen Deep-Learning-Frameworks, die für Computer Vision (CV) entwickelt wurden, stehen optimierte Funktionen für diese mathematische Operation zur Verfügung, wie beispielsweise das „functional“-ModulPyTorch oder TensorFlow .
Es ist hilfreich, die Kosinusähnlichkeit von anderen häufig verwendeten Maßen der Datenanalyse zu unterscheiden, um zu verstehen, wann man sie einsetzen sollte:
Die Kosinusähnlichkeit bildet das Herzstück zahlreicher moderner Softwareprodukte und schlägt eine Brücke zwischen Rohdaten und menschlichen Absichten.
Mithilfe modernster Bildverarbeitungsmodelle können Sie hochdimensionale Merkmalsvektoren direkt aus visuellen Daten extrahieren. Der folgende Python zeigt, wie man ein Ultralytics für die Bildklassifizierung lädt, Einbettungen für zwei Bilder generiert und eine Kosinus-Ähnlichkeitsberechnung durchführt, um deren visuelle Ähnlichkeit zu messen.
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}")
Für Entwickler, die diese semantischen Suchfunktionen skalieren möchten, ist das Trainieren hochpräziser Basismodelle von entscheidender Bedeutung. Die Ultralytics optimiert diesen Prozess durch robuste Tools für die Datenannotation, skalierbares Cloud-Training und nahtlose Modellbereitstellung und stellt so sicher, dass Ihre zugrundeliegenden Einbettungen so präzise und aussagekräftig wie möglich sind.
Beginnen Sie Ihre Reise mit der Zukunft des maschinellen Lernens