Siamese Network (Siyam Ağı)

Ağırlık paylaşan özdeş paralel dallarla girdi çiftleri arasındaki benzerliği öğrenen derin öğrenme mimarisi.

Siyam Ağı (Siamese Network), ağırlık paylaşan iki veya daha fazla özdeş alt ağ (branch) kullanarak girdi çiftleri ya da üçlüleri arasındaki benzerliği öğrenen derin öğrenme mimarisidir. Adını 19. yüzyılda ünlü ikiz Chang ve Eng Bunker'dan alan bu mimari, paralel dalların aynı parametre setini paylaşması nedeniyle farklı girdileri tutarlı bir gömülü uzay (embedding space) içine eşler: benzer öğeler bu uzayda birbirine yakın, farklı öğeler ise uzak noktalara yerleşir. Temel çalışma ilkesi şöyledir: iki girdi (örneğin iki yüz fotoğrafı) tamamen özdeş ağırlıklara sahip iki daldan geçerek birer özellik vektörüne dönüştürülür; ardından bu vektörler arasındaki Öklid ya da kosinüs mesafesi bir kayıp fonksiyonuyla optimize edilir. Yaygın kayıp fonksiyonları contrastive loss (benzer çiftlerin mesafesini küçültür, farklı çiftlerin mesafesini artırır) ve triplet loss'tur (bir "çapa" örneğin benzerine yakın, farklısına ise uzak kalması için cezalandırılır). Mimari ilk kez 1994'te Bromley ve arkadaşları tarafından el yazısı imza doğrulama için önerildi. Koch et al. (2015), bunu one-shot görüntü tanımaya uyarladı. Google'ın FaceNet modeli (Schroff et al., 2015), triplet loss ile eğitilmiş siyam benzeri mimarisini yüz tanımada insan performansını aşan sonuçlara ulaşmak için kullandı. Siyam ağları; yüz tanıma, biyometrik kimlik doğrulama, el yazısı ve imza doğrulama, görüntü benzerliği arama, belge eşleştirme ve tıbbi görüntü analizi gibi alanlarda özellikle değerlidir. Sınıf başına yalnızca birkaç eğitim örneği mevcutken bile çalışabildiğinden one-shot ve few-shot öğrenme senaryolarının tercih edilen mimarisidir. PyTorch ve TensorFlow'da paylaşımlı katman (shared weights) mekanizmasıyla kolayca uygulanır. Türkiye'de e-devlet biyometrik sistemleri, bankacılıkta imza doğrulama ve güvenlik kamerası tabanlı erişim kontrolünde siyam ağı temelli modeller aktif biçimde kullanılmaktadır.

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.