Siyam Ağı Nasıl Çalışır?
Siyam ağının özü, tamamen aynı ağırlıkları paylaşan iki (veya üç) paralel daldır. Her girdi bu dallardan geçerek bir özellik vektörüne (embedding) dönüşür. Ardından iki vektör arasındaki uzaklık (Öklid veya kosinüs) hesaplanır. Ağırlık paylaşımı, iki girdi için üretilen gömülü vektörlerin aynı ölçek ve anlam uzayında olmasını zorunlu kılar — bu, karşılaştırmanın tutarlı kalmasını sağlar. Eğitim sırasında model, benzer çiftlerin vektörlerini birbirine yaklaştıracak, farklı çiftlerin vektörlerini uzaklaştıracak şekilde öğrenir. Bu öğrenme contrastive loss veya triplet loss ile yönlendirilir.
Temel Kayıp Fonksiyonları
⚖️ Contrastive Loss
Benzer çiftlerin gömülü vektörleri arasındaki mesafeyi minimize eder; farklı çiftlerin mesafesini belirli bir marjin üstüne iter. İkili (similar/different) etiket gerektirir. Orijinal siyam ağı makalelerinde kullanılmıştır.
🔺 Triplet Loss
Bir 'çapa' (anchor), bir 'pozitif' (benzer) ve bir 'negatif' (farklı) örnek üçlüsüyle çalışır. Çapa-pozitif mesafesinin çapa-negatif mesafesinden marjin kadar küçük olmasını zorlar. FaceNet ve çoğu modern yüz tanıma sistemi bu yaklaşımı kullanır.
🎯 Binary Cross-Entropy
Siamese ağının çıktısına bir sigmoid ekleyerek 'aynı sınıf mı?' ikilisini ikili sınıflandırma problemi olarak çözer. Yapısal olarak daha basittir; küçük ölçekli doğrulama ve eşleştirme görevlerinde tercih edilir.
Öne Çıkan Modeller ve Uygulamalar
Google FaceNet (2015), triplet loss ile eğitilmiş 128 boyutlu gömülü uzay kullanarak yüz doğrulamada o dönemin en iyi sonuçlarını elde etti; LFW kıyaslama setinde %99,63 doğruluk, yüz tanımada %95,12 başarı. Siamese ağları imza doğrulamada banka işlemlerini güvenli kılmak için kullanılır; imzanın gerçek sahibi ile karşılaştırılması sınıflandırma yerine benzerlik ölçümüyle yapılır. Koch et al. (2015) Omniglot veri setiyle yaptığı one-shot denemelerde siyam ağının insana yakın doğruluk elde ettiğini gösterdi. Tıbbi görüntülemede ise siyam ağları, az sayıda etiketli örnek bulunan nadir hastalıklarda görüntü eşleştirme ve anomali tespiti için değerlendirilmektedir.
One-Shot Öğrenme Bağlamı
Klasik sınıflandırıcılar bir sınıfı tanımak için yüzlerce ya da binlerce etiketli örnek ister. Siyam ağları ise benzerlik ölçümünü doğrudan öğrendiğinden, test sırasında yeni bir sınıfın tek bir örneği verilse bile bu sınıfı diğerlerinden ayırt edebilir. Bu özellik, etiketleme maliyetinin yüksek olduğu tıbbi görüntüleme, sahtekârlık tespiti ve endüstriyel kalite kontrol gibi alanlarda ciddi avantaj sunar. PyTorch'ta paylaşımlı katman şu şekilde tanımlanır: tek bir encoder ağı oluşturulur ve iki farklı girdi bu aynı nesneye beslenir; gradyanlar her iki yoldan da bu ortak ağırlıklara akar.
Sık Sorulan Sorular
- check_circle Siyam ağı ile normal ikili sınıflandırıcı arasındaki fark nedir?: Normal ikili sınıflandırıcı sabit sınıfları öğrenir; test kümesinde bu sınıflar dışında bir örnek geldiğinde başarısız olur. Siyam ağı ise benzerlik öğrenir ve eğitimde hiç görmediği sınıfları karşılaştırabilir. Bu fark özellikle one-shot ve zero-shot senaryolarda kritiktir.
- check_circle Triplet loss mu, contrastive loss mu tercih edilmeli?: Triplet loss genellikle daha güçlü sonuçlar verir çünkü her güncellemede pozitif ve negatif örnekler arasındaki ilişki doğrudan modellenir. Ancak triplet seçimi (triplet mining) kritiktir; kötü seçilen tripletler eğitimi yavaşlatır. Veri seti küçükse contrastive loss daha kararlı eğitim sunar.
- check_circle PyTorch'ta siyam ağı nasıl uygulanır?: Tek bir encoder modül tanımlanır ve forward metodunda iki girdi bu aynı modülden geçirilir: `out1 = self.encoder(x1); out2 = self.encoder(x2)`. Ardından `F.pairwise_distance(out1, out2)` ile mesafe hesaplanır. Ağırlıklar paylaşıldığından Python'da tek nesne yeterlidir; kopyalanmasına gerek yoktur.
- check_circle Siyam ağı NLP görevlerinde kullanılabilir mi?: Evet. Cümle benzerliği ve semantik metin eşleştirme için siyam transformer mimarileri kullanılır. Sentence-BERT (SBERT), BERT gövdesini siyam çerçevesine adapte ederek iki cümlenin gömülü vektörlerini karşılaştırır; doküman arama ve çoğaltılmış soru tespitinde yaygındır.
- check_circle Türkiye'deki uygulama alanları nelerdir?: E-devlet biyometrik kimlik doğrulama sistemlerinde (T.C. kimlik kartı yüz eşleştirme), bankacılıkta imza doğrulama, güvenlik kamerası tabanlı erişim kontrolü ve adli bilişim alanında dijital sahtecilik tespitinde siyam ağı temelli çözümler kullanılmaktadır.