Siyam Sinir Ağları (Siamese Neural Network)
Sinir ağları neredeyse her görevde iyidir, ancak bu sinir ağları iyi performans göstermek için daha fazla veriye ihtiyaç duyar. Ancak, yüz tanıma ve imza doğrulama gibi belirli sorunlar için, her zaman daha fazla veri toplamaya güvenemeyiz, bu tür görevleri çözmek için Siyam Ağları adı verilen yeni bir tür sinir ağı mimarimiz var. Yüzünüzü yakalayan bir kameranın olduğu bir yüz tanıma sistemi hayal edin ve ardından yüz tanıma sisteminin bir yüz veri tabanına dayalı olarak bir binaya girmenize izin verilip verilmediğini belirlemesi beklenir.
Siamese sinir ağları, iki veya daha fazla aynı yapıdaki sinir ağlarının bir araya getirilmesidir. Bu ağlar, aynı ağırlıklar ve parametreleri paylaşır ve aynı veri kümesiyle eğitilirler. Bu yapılar, benzerlik veya eşleştirme gibi problemleri çözmek için kullanılır. Örneğin, bir görüntü veri kümesinde, iki görüntünün benzerliğini ölçmek için kullanılabilir.
Siamese sinir ağları, birbirinden farklı iki girdi alır ve bunları karşılaştırmak için kullanır. Bu iki girdi, aynı veri kümesinden veya farklı veri kümelerinden alınabilir. Örneğin, bir görüntü veri kümesinde, iki görüntünün benzerliğini ölçmek için kullanılabilir. Bu iki görüntü, aynı kişinin farklı zamanlarda çekilmiş olabileceği gibi, farklı kişilerin çekilmiş olabileceği de olabilir.
Siamese sinir ağlarının çıktısı, iki girdinin benzerliğini ölçen bir skor olabilir. Bu skor, sıfırdan büyük ve birle eşit olabilir ve bunun arasındaki değerler, iki girdinin benzerliğini ifade eder. Skorun değeri, iki girdinin ne kadar benzer olduğunu gösterir.
Siamese sinir ağlarının eğitimi, veri kümesindeki iki girdiyi eşleştiren veri etiketleri ile yapılır. Örneğin, bir görüntü veri kümesinde, iki görüntünün aynı kişi tarafından çekildiği veri etiketi ile eşleştirilir. Bu veri etiketleri, siamese sinir ağının eğitiminde kullanılır ve ağın öğrenmesini sağlar.
Siamese sinir ağları, iki veya daha fazla veriyi karşılaştırmak için kullanılabilir. Bu yapılar, veri kümelerinde benzerlik veya eşleştirme gibi problemleri çözmek için kullanılır. Özellikle görüntü ve ses veri kümelerinde, benzerlik ölçümü için kullanılabilir. Örneğin, görüntü tanıma uygulamalarında, kişi tanıma, rosto tanıma veya el yazısı tanıma gibi uygulamalar için kullanılabilir. Ses tanıma uygulamalarında ise, ses tanıma veya konuşmacı tanıma gibi uygulamalar için kullanılabilir.
Siamese sinir ağları, özellikle veri kümelerinde az miktarda veriye sahip olunması durumunda etkili bir yöntemdir. Bu durumda, veri kümesinde az miktarda veriye sahip olunması durumunda, ağın performansını arttırmak için ağın ağırlıklarını ve parametrelerini paylaşması kullanılabilir.
Siamese sinir ağlarının bir diğer avantajı da, veri kümelerinde eşsiz niteliklere sahip olmayan verileri işleyebilmesidir. Örneğin, görüntü veri kümesinde, görüntülerin farklı açılardan veya farklı ışık koşullarında çekilmiş olması durumunda, siamese sinir ağı, bu verileri işleyebilir ve benzerlik ölçümünü yapabilir.
Sonuç olarak, siamese sinir ağları, veri kümelerinde benzerlik veya eşleştirme gibi problemleri çözmek için kullanılabilecek etkili bir yöntemdir. Bu yapılar, veri kümelerinde az miktarda veriye sahip olunması durumunda etkili bir yöntem olabilir ve veri kümelerinde eşsiz niteliklere sahip olmayan verileri işleyebilir.
Daha iyi tahminler elde etmek için yalnızca birkaç sayıda görüntü kullanır. Çok az veriden öğrenme yeteneği, son yıllarda Siyam ağlarını daha popüler hale getirdi. Bu yazıda, bu ve Siyam Ağlarını hakkında bilgi vereceğim.
Siyam Ağları nedir?

Signet’te kullanılan Siyam ağı
Bir Siyam Sinir Ağı, iki veya daha fazla özdeş alt ağ içeren bir sinir ağı mimarileri sınıfıdır . Buradaki ‘ özdeş’ , aynı parametreler ve ağırlıklarla aynı konfigürasyona sahip oldukları anlamına gelir. Parametre güncellemesi her iki alt ağda yansıtılır. Özellik vektörlerini karşılaştırarak girişlerin benzerliğini bulmak için kullanılır, bu nedenle bu ağlar birçok uygulamada kullanılır.
Geleneksel olarak, bir sinir ağı birden çok sınıfı tahmin etmeyi öğrenir. Bu, verilere yeni sınıflar eklememiz/çıkarmamız gerektiğinde bir sorun teşkil eder. Bu durumda, sinir ağını güncellemeli ve tüm veri setinde yeniden eğitmeliyiz. Ayrıca, derin sinir ağlarının eğitilmesi için büyük miktarda veriye ihtiyacı vardır. SNN’ler ise benzerlik işlevini öğrenir. Böylece, iki görüntünün aynı olup olmadığını görmek için onu eğitebiliriz (bunu burada yapacağız). Bu, ağı yeniden eğitmeden yeni veri sınıflarını sınıflandırmamızı sağlar.
Siyam Ağlarının Artıları ve Eksileri:
Siyam Ağlarının başlıca avantajları,
- Sınıfa göre daha sağlam Dengesizlik: Tek seferlik öğrenmenin yardımıyla, sınıf başına verilen birkaç görüntü, Siyam Ağlarının gelecekte bu görüntüleri tanıması için yeterlidir
- En iyi sınıflandırıcıya sahip bir grup için güzel: Öğrenme mekanizmasının Sınıflandırmadan biraz farklı olduğu göz önüne alındığında, bir Sınıflandırıcı ile basit ortalamasının alınması, ortalama 2 ilişkili Denetimli modelden (örn. GBM ve RF sınıflandırıcı) çok daha iyi sonuç verebilir.
- Semantik Benzerlikten Öğrenme: Siamese, aynı sınıfları/kavramları birbirine yakın yerleştiren (daha derin katmanda) yerleştirmeleri öğrenmeye odaklanır. Dolayısıyla anlamsal benzerliği öğrenebilir .
Siyam Ağlarının dezavantajları şunlar olabilir:
- Normal ağlardan daha fazla eğitim süresine ihtiyaç duyar: Siyam Ağları, öğrenmek için (mevcut tüm bilgileri görmek için) ikinci dereceden çiftleri içerdiğinden, normal sınıflandırma türünden daha yavaştır (noktasal öğrenme)
- Olasılıkları çıkarmaz: Eğitim, ikili öğrenmeyi içerdiğinden, tahminin olasılıklarını değil, her bir sınıfa olan mesafeyi verir.
Siyam Ağlarında kullanılan kayıp fonksiyonları:

Kontrast Kaybı, Yazar tarafından oluşturulan görüntü
Siyam ağlarının eğitimi ikili öğrenmeyi içerdiğinden, bu durumda Çapraz entropi kaybı kullanılamaz, bu Siyam ağlarının eğitiminde esas olarak iki kayıp fonksiyonu kullanılır, bunlar
Üçlü kayıp , bir temel (çapa) girişinin pozitif (doğru) bir giriş ve negatif (yanlış) bir girişle karşılaştırıldığı bir kayıp fonksiyonudur. Temel (çapa) girişinden pozitif (doğru) girişe olan mesafe en aza indirilir ve temel (çapa) girişinden negatif (yanlış) girişe olan mesafe maksimuma çıkarılır.

Yukarıdaki denklemde alfa, üçlüdeki benzer ve benzemeyen çiftler arasındaki mesafe farklarını “uzatmak” için kullanılan bir sınır terimidir, fa, fp, fn, çapa, pozitif ve negatif görüntüler için özellik yerleştirmeleridir.
Eğitim sürecinde, modele tek bir örnek olarak bir görüntü üçlüsü (ankor görüntü, negatif görüntü, pozitif görüntü) (ankor görüntü, negatif görüntü, pozitif görüntü) beslenir. Bunun arkasındaki fikir, çapa ve pozitif görüntüler arasındaki mesafenin, çapa ve negatif görüntüler arasındakinden daha küçük olması gerektiğidir.
Kontrast Kaybı: günümüzde oldukça kullanılan popüler bir kayıp fonksiyonudur.mesafeye dayalı kayıpdaha geleneksel olanın aksinehata tahmin kayıpları.Bu kayıp, iki benzer noktanın düşük bir Öklid mesafesine sahip olduğu ve iki farklı noktanın büyük bir Öklid mesafesine sahip olduğu yerleştirmeleri öğrenmek için kullanılır.

Ve sadece Öklid mesafesi olan Dw’yi şu şekilde tanımladık:

Gw, ağımızın bir görüntü için çıktısıdır.
Siamese Networks ile imza doğrulaması örneği:
