Sınırlı Boltzmann makineleri vs çok katmanlı sinir ağları


22

Karşılaştığım bir sınıflandırma problemi için sinir ağı ile deneyler yapmak istiyordum. RBM'lerden bahseden gazetelere rastladım. Ama anladığım kadarıyla, çok katmanlı bir sinir ağına sahip olmaktan farklı değiller. Bu doğru mu?

Dahası, R ile çalışıyorum ve RBM'ler için hazır paketler göremiyorum. Temelde yığılmış RBM'leri olan ama bunları R'de uygulama çabasına değip değmeyeceğinden emin olmayan, derin öğrenme ağlarından bahseden literatüre rastladım. Teşekkürler


3
Bunlar şunlardır backprop ile eğitilmiş çok katmanlı ağlardan farklı. İşte her tür sinir ağı için bazı kaynaklar: stats.stackexchange.com/a/36257/13669
Stumpy Joe Pete

Yanıtlar:


21

Öncelikle RBM'ler normal Sinir Ağlarından kesinlikle farklıdır ve doğru kullanıldığında çok daha iyi performans elde ederler. Ayrıca, birkaç RBM katmanının antremanı ve ardından bulunan ağırlıkları bir Mulitlayer NN için başlangıç ​​noktası olarak kullanmak çoğu zaman sadece Çok Katmanlı NN kullanmaktan daha iyi sonuçlar verir.

Aklıma gelen en iyi işaretçi, RBM'lerden sorumlu kişilerden biri olan Geoffrey Hinton tarafından verilen Coursera kursudur.

https://class.coursera.org/neuralnets-2012-001/class/index

RBM'ler ve Denoising Otomatik Kodlayıcılar hakkındaki videolar, konuyla ilgilenen herkes için değerli bir öğrenme kaynağıdır.

R'deki uygulamaya gelince, ikisini de bilmiyorum, ancak uygulamak istiyorsanız, R'nizi kullanmayın (verileriniz büyük değilse). Bir RBM'nin eğitimi oldukça uzun sürüyor ve C ile R yerine saf R kullanıyorsanız önemli ölçüde büyüyebilir.


1
İçinde bazı RBM'ler yazdığım için R'nin performans sorunlarıyla konuşabilirim. Hesaplama süresinin büyük bir çoğunluğu, R'de diğer dillerden daha yavaş olma eğiliminde olan (belki de 3 veya 5 faktör), matris çarpımlarına harcanır. Kendi sisteminiz için R'yi özelleştirilmiş bir BLAS (doğrusal cebir kütüphanesi) ile yeniden derlemek, yavaş parçaları Rcpp ile C ++ 'a çevirmek için çok yardımcı olabilir. Tek katlı bir RBM yazmak, hız için optimize etmeyi denemeden önce muhtemelen en rahatça hangi dilde kodlayacağınıza karar vermenin mantıklı olduğu kadar hızlıdır.
David J. Harris,

@David J. Harris R'deki uygulamalarınızı paylaştınız mı? Onlara bir göz atmayı çok isterim.
Zach

1
@Zach Şu anda oldukça meşgulüm, ancak gelecekte açık kaynak sağlama konusunda neler yapabileceğime bakacağım. Ayrıca belgelendirilmemiş / yarı bitmiş bir projede sıralama yapmak istemiyorsanız, sahip olduğumun bir kopyası için profilimdeki adrese e-posta gönderebilirsiniz.
David J. Harris,

8

R'de standart çok katmanlı sinir ağlarına uyması için neuralnet ve RSNNS ( Stuttgart Sinir Ağı Simülatörüne bir arayüz sağlar ) kullanabilirsiniz, ancak RBM'de farklılıklar vardır.

R'de derin sinir ağlarının uygulanmasıyla ilgili olarak, tek değerli stratejinin, genellikle kendi başınıza yeniden uygulamaktan çok daha iyi bir çözüm olan mevcut FOSS uygulamalarını birbirine bağlamak olacağını düşünüyorum. R, bunu yapmak için çok fazla işlevsellik sunar ve R'nin veri yönetimini mevcut çözümlerin hızı ve kullanıma hazır yönleriyle kaldırabilirsiniz. Örneğin, biri MDP'yi Python / R arabirim özellikleriyle arayüzlendirebilir, örneğin bu yazıya bakınız .

Düzenleme: İstatistiksel Olarak Önemli Andrew Landgraf, RBM için bazı R Kodları sağlar .

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.