Cosine Similarity
Kosinüs benzerliğinin yapay zekâda vektör benzerliğini nasıl ölçtüğünü öğren. Ultralytics YOLO26 ile görsel gömmeleri hesapla ve Ultralytics Platform ile ölçeklendir.
Kosinüs benzerliği, boyutlarından veya büyüklüklerinden bağımsız olarak iki makine öğrenmesi (ML) ve yapay zekâ (AI) uygulamasında kullanılan temel bir matematiksel ölçüttür; iki çok boyutlu dizinin veya vektörün ne kadar benzer olduğunu ölçer. İki nokta arasındaki açıyı bir vektör uzayında hesaplayarak, noktaların yaklaşık olarak aynı yönde olup olmadığını belirler. Bu açısal yaklaşım, genel uzunluktan çok yönelimin önemli olduğu verileri işlerken kritik bir rol oynar ve gömüler gibi soyut veri temsillerini karşılaştırmada oldukça etkilidir.
Ölçütün Arkasındaki Matematiği Anlamak#
Bu ölçütü hesaplamak için iki vektörün skaler çarpımını hesaplayıp iki vektörün ayrı ayrı büyüklüklerinin (uzunluklarının) çarpımına bölersin. Elde edilen skor her zaman -1 ile 1 arasındaki sabit aralıkta kalır:
- 1 skoru, vektörlerin tam olarak aynı yöne baktığı ve maksimum benzerliği gösterdiği anlamına gelir.
- 0 skoru, vektörlerin tamamen ortogonal (90 derecelik açıyla) olduğu, yani yön bakımından benzerlik taşımadığı anlamına gelir.
- -1 skoru, vektörlerin tam olarak zıt yönlere baktığı anlamına gelir.
Bilgisayarlı görü (CV) için tasarlanmış birçok modern derin öğrenme çatısında, bu matematiksel işlem için optimize edilmiş işlevlere kolayca erişebilirsin; örneğin PyTorch'un işlevsel modülünü veya TensorFlow metriklerini kullanabilirsin.
İlişkili Kavramları Birbirinden Ayırma#
Bu ölçütün ne zaman kullanılacağını anlamak için kosinüs benzerliğini sık kullanılan diğer veri analitiği ölçümlerinden ayırmak yararlıdır:
- Kosinüs Mesafesi: Yakından ilişkili olsalar da bu terimler ters orantılıdır. Kosinüs mesafesi, kosinüs benzerliğinin 1'den çıkarılmasıyla hesaplanır. Bu nedenle daha küçük bir mesafe, vektörler arasında daha yüksek benzerlik olduğunu gösterir.
- Öklid Mesafesi: Bu ölçüt, iki nokta arasındaki düz çizgi üzerindeki fiziksel mesafeyi ölçer; bu nedenle vektörlerin genel boyutuna veya büyüklüğüne oldukça duyarlıdır. Buna karşılık kosinüs benzerliği yalnızca açıyla ilgilenir. Örneğin metin analizinde uzun bir belge ile kısa bir cümle arasında büyük bir Öklid mesafesi olabilir, ancak aynı konuyu ele alıyorlarsa kosinüs benzerlikleri yüksek kalır.
Yapay Zekâda Gerçek Dünya Uygulamaları#
Kosinüs benzerliği, ham veriler ile insan niyeti arasındaki boşluğu kapatarak çok sayıda modern yazılım ürününe güç verir.
- 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ülere dönüştürülür. Sistem, vektör veri tabanından bağlam açısından en alakalı belgeleri almak için kosinüs benzerliğini hızla hesaplar; bu, Getirim Destekli Üretim (RAG) sürecinde kritik bir adımdır.
- Öneri Sistemleri: E-ticaret ve yayın hizmetleri, kullanıcı tercihlerini ve katalog öğelerini vektörlerle temsil etmek için Scikit-learn ve SciPy gibi araçlardan yararlanır. Sistemler, alışveriş yapan kişinin profili ile farklı ürünler arasındaki benzerlik skorunu ölçerek görsel veya tematik açıdan ilişkili öğeleri doğru biçimde önerebilir.
Ultralytics ile Görsel Benzerliği Ölçme#
En yeni görsel modelleri kullanarak yüksek boyutlu özellik vektörlerini doğrudan görsel verilerden çıkarabilirsin. Aşağıdaki Python kodu, görüntü sınıflandırma için bir Ultralytics YOLO26 modelinin nasıl yükleneceğini, iki görüntü için gömülerin nasıl oluşturulacağını ve görsel benzerliklerini ölçmek üzere kosinüs benzerliği hesabının nasıl yapılacağını gösteriyor.
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çeklendirmek isteyen geliştiriciler için son derece doğru temel modeller eğitmek büyük önem taşır. Ultralytics Platform, güçlü veri etiketleme araçları, ölçeklenebilir bulut eğitimi ve sorunsuz model dağıtımı sunarak bu işlem hattını kolaylaştırır ve temel gömülerinin olabildiğince doğru ve anlamlı olmasını sağlar.









