Siyam sinir ağında geri yayılma nasıl çalışır?


13

İmzaların tanınması için 1994 yılında Yann LeCun ve meslektaşları tarafından sunulan siyam sinir ağının mimarisini inceliyorum ( “Siyam zaman gecikmesi sinir ağı kullanılarak imza doğrulaması” .pdf , NIPS 1994)

Bu mimarinin genel fikrini anladım, ancak bu durumda geri yayılımın nasıl çalıştığını gerçekten anlayamıyorum. Sinir ağının hedef değerlerinin ne olduğunu anlayamıyorum, bu da geri yayılımın her bir nöronun ağırlığını doğru bir şekilde ayarlamasına izin verecektir.

Chen Liu (Toronto Üniversitesi 2013) tarafından yazılan “Olasılıksal Siyam Öğrenme Temsilleri Ağı” ndan görüntü.

Bu mimaride algoritma, iki sinir ağının son gösterimleri arasındaki kosinüs benzerliğini hesaplar. Kağıt şunları belirtmektedir: "İstenen çıktı, orijinal imzalar sunulduğunda iki alt ağın (f1 ve f2) çıkışları arasında küçük bir açı içindir. ve imzalardan biri sahtecilik ise geniş bir açı ".

Geri-çoğaltmayı çalıştırmak için hedef olarak ikili bir işlevi (iki vektör arasındaki kosinüs benzerliği) nasıl kullanabileceklerini gerçekten anlayamıyorum.

Siyam sinir ağlarında geri yayılım nasıl hesaplanır?


kağıdı indiremiyorum .... başka veya dropbox kaynağınız var mı?
Brethlosze

Yanıtlar:


11

Her iki ağ da benzer mimarileri paylaşır ve ancak bölüm 4'te [1] yayınlandığı gibi aynı ağırlıklara sahip olmaları gerekir.

Amaçları, kosinüs benzerliğini en aza indiren özellikleri, imzalar orijinal olduğunda çıktı vektörlerini öğrenmek ve sahte olduklarında en üst düzeye çıkarmaktır (bu da backprop hedefidir, ancak gerçek kayıp işlevi sunulmaz).

cos(A,B)=ABABA,B

Çıktı katmanını değiştirmemelisiniz, doğrusal değerlere sahip eğitimli nöronlardan ve girdinizin daha yüksek seviyeli bir soyutlamasından oluşur. Tüm ağ birlikte eğitilmelidir. Her iki çıkış ve bir geçirilir işlevi bu çıkışlar kosinüs benzerlik ( , benzer, ve eğer onlar değilse). Bu göz önüne alındığında ve iki grup giriş teli ( sahip olduğumuz göz önüne alındığında, antrenman yapmak zorunda kalacağınız mümkün olan en basit kayıp fonksiyonuna bir örnek olabilir:O1O2cos(O1,O2)10XForged,XGenuine

L=(xA,xB)XForgedcos(xA,xB)(xC,xD)XGenuinecos(xC,xD)

sonra, iki çıkışın işlevine ve benzerliklerini kontrol sağlayan iki imzayı girmeniz .cos(O1,O2)

Son olarak, ağ ağırlıklarını aynı tutmak için bunu yapmanın birkaç yolu vardır (ve Tekrarlayan Sinir Ağlarında da kullanılırlar); yaygın bir yaklaşım, Degrade İniş güncelleme adımını gerçekleştirmeden önce iki ağın gradyanlarını ortalamaktır.

[1] http://papers.nips.cc/paper/769-signature-verification-using-a-siamese-time-delay-neural-network.pdf


Hedefin kosinüs benzerliğini en aza indirmek olduğunu biliyorum, ancak sinir ağımın çıkış katmanına ne eklemem gerektiğini anlayamıyorum. Sinir ağını oluşturduğumda, hedefleri son çıktı katmanına koydum. Onlar değerse, sorun değil. Ancak hedef bir işlevse, doldurulacak değerleri nerede bulabilirim? Teşekkürler
DavideChicco.it

Cevabımı güncelledim. Çıktı katmanınız, kosinüs benzerlik işlevine çıkardığı başka bir normal katman olacaktır. Kosinüs benzerlik fonksiyonunu birbirine bağlayan iki ağ, bir kayıp kriterine karşı birlikte eğitilmelidir. Son olarak, size bu durumda sahip olabileceğiniz en basit kaybı önerdim.
Yannis Assael

1
Teşekkürler. Sanırım sorunumu fark ettim: Torch7'deki bu sinir ağı mimarisinin uygulanması. Burada, eğitim ve testten önce, sinir ağı yapımı sırasında, giriş veri kümesi değerleri ve çıktı-hedef katman değerleri dahil olmak üzere birçok şey belirtmem gerekiyor . Geçmişte, her zaman sabit çıktı-hedef katman değerleri (örneğin, doğru / yanlış etiketler veya [0, 1] aralığındaki değerler) olan denetlenen sorunlarla uğraştım. Ancak bu sefer farklı: çıktı katmanı, eğitim sırasında hesaplanacak iki değere bağlı bir işlevdir. Bu doğru mu?
DavideChicco.it

Tam olarak bu kez ikili değil çıkış katmanında lineer değerleriniz vardır (bu yüzden sadece nöron çıkışı). Ayrıca, bu durumda doğrudan çıktı-hedef değerleriniz yoktur, ancak optimize etmek için bir kayıp işleviniz vardır. Son olarak, çıkış tabaka çıkışı olan nöron (birimlerinin sayısı modeli mimarisi ile tanımlanır ve kağıt başvurulan). Seçilen aktivasyon fonksiyonuna bağlı olan nöronlar (tanh, sigmoid vb.) Sırasıyla ikili olmayan lineer aktivasyonlara [-1,1] veya [0,1] sahiptir. nÖutputnÖutput
Yannis Assael

Teşekkürler @iassael. Torch7'de bunun nasıl uygulanacağı hakkında bir fikriniz var mı?
DavideChicco.it
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.