Cosine Similarity
Kosinüs benzerliğinin yapay zekada vektör benzerliğini nasıl ölçtüğünü öğren. Ultralytics YOLO26 ile görsel yerleştirmeleri hesapla ve Ultralytics Platform ile ölçeklendir.
Cosine similarity is a fundamental mathematical metric used in machine learning (ML) and artificial intelligence (AI) to measure how similar two multi-dimensional arrays or vectors are, regardless of their size or magnitude. By calculating the angle between two points in a vector space, it determines if they are pointing in roughly the same direction. This angular approach is critical for processing data where the orientation matters more than the overall length, making it highly effective for comparing abstract data representations like embeddings.
Link to this sectionMetriğin Arkasındaki Matematiği Anlamak#
Bu metriği hesaplamak için iki vektörün noktasal çarpımını (dot product) hesaplar ve bu değeri kendi büyüklüklerinin (uzunluklarının) çarpımına bölersin. Ortaya çıkan puan her zaman -1 ile 1 arasında sabit bir aralıkta yer alır:
- 1 puanı, vektörlerin tam olarak aynı yöne baktığını ve maksimum benzerliği gösterdiğini ifade eder.
- 0 puanı, vektörlerin tamamen ortogonal (90 derecelik açıda) olduğunu, yani hiçbir yönsel benzerlik bulunmadığını ifade eder.
- -1 puanı, tam olarak zıt yönlere baktıklarını ifade eder.
Bilgisayarlı görü (CV) için tasarlanmış birçok modern derin öğrenme çerçevesinde, PyTorch'un fonksiyonel modülü veya TensorFlow metrikleri gibi bu matematiksel işlem için optimize edilmiş fonksiyonlara kolayca erişebilirsin.
Link to this sectionİlgili Kavramları Ayırt Etme#
Kosinüs benzerliğini, ne zaman kullanacağını anlamak adına sıkça kullanılan diğer veri analitiği ölçümlerinden ayırt etmek faydalıdır:
- Kosinüs Uzaklığı: Yakından ilişkili olsalar da bu terimler ters orantılıdır. Kosinüs uzaklığı basitçe 1 eksi kosinüs benzerliği olarak hesaplanır. Bu nedenle, daha küçük bir uzaklık vektörler arasında daha yüksek bir benzerliğe işaret eder.
- Öklid Uzaklığı: Bu metrik, iki nokta arasındaki düz hat fiziksel mesafesini ölçer ve bu da onu vektörlerin genel boyutuna veya büyüklüğüne karşı oldukça duyarlı hale getirir. Buna karşılık, kosinüs benzerliği sadece açı ile ilgilenir. Örneğin, metin analizinde uzun bir belge ile kısa bir cümle büyük bir Öklid uzaklığına sahip olabilir, ancak aynı konuyu paylaşıyorlarsa kosinüs benzerlikleri yüksek kalmaya devam edecektir.
Link to this sectionYapay Zekada Gerçek Dünya Uygulamaları#
Kosinüs benzerliği, ham veri ile insan niyeti arasındaki boşluğu doldurarak birçok modern yazılım ürününün temel motoru işlevini görür.
- Vektör Arama ve RAG: Sohbet botları gibi Doğal Dil İşleme (NLP) uygulamalarında, kullanıcı sorguları ve dahili belgeler yoğun gömülü gösterimlere (dense embeddings) dönüştürülür. Sistem, Retrieval-Augmented Generation (RAG) sürecinde kritik bir adım olan vektör veritabanından bağlamsal olarak en alakalı belgeleri almak için hızlıca kosinüs benzerliğini hesaplar.
- Öneri Sistemleri: E-ticaret ve yayın hizmetleri, kullanıcı tercihlerini ve katalog öğelerini vektör olarak temsil etmek için Scikit-learn ve SciPy gibi araçlardan yararlanır. Bir alışveriş kullanıcısının profili ile farklı ürünler arasındaki benzerlik puanını ölçerek, sistemler görsel veya tematik olarak ilişkili öğeleri doğru bir şekilde önerebilir.
Link to this sectionUltralytics ile Görsel Benzerliği Ölçme#
You can extract high-dimensional feature vectors directly from visual data using state-of-the-art vision models. The following Python code demonstrates how to load an Ultralytics YOLO26 model for image classification, generate embeddings for two images, and perform a cosine similarity calculation to measure their visual resemblance.
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}")Bu anlamsal arama yeteneklerini ölçeklendirmeyi hedefleyen geliştiriciler için, oldukça doğru temel modeller eğitmek en önemli önceliktir. Ultralytics Platform, veri etiketleme, ölçeklenebilir bulut eğitimi ve kesintisiz model dağıtımı için güçlü araçlar sunarak bu süreci kolaylaştırır ve temel gömülü gösterimlerinin mümkün olduğunca doğru ve anlamlı olmasını sağlar.






