Aktivasyon fonksiyonu olarak otomatik kodlayıcıda ReLU kullanabilir miyim?


11

Sinir ağına sahip bir otomatik kodlayıcı uygularken, çoğu insan aktivasyon fonksiyonu olarak sigmoid kullanacaktır.

Bunun yerine ReLU kullanabilir miyiz? (ReLU'nun üst sınırda bir sınırı olmadığından, sigmoid kullanıldığında otomatik kodlayıcı için kısıtlanmış kriterlerin aksine, temel olarak giriş görüntüsünün 1'den büyük piksel olabileceği anlamına gelir).

Yanıtlar:


5

İşte bununla ilgili bazı sorunlar olabileceğini belirten bir tartışma dizisi (Temmuz 2013'ten itibaren), ancak yapılabilir.

Çağlar Gülçehre (Yoshua Bengio'nun laboratuvarından) Bilgi Konuları'nda şu tekniği başarıyla kullandığını söyledi : Optimizasyon için Ön Bilgilerin Önemi :

ilk DAE'yi her zamanki gibi eğitin, ancak gizli katmandaki doğrultucularla: a1(x) = W1 x + b1 h1 = f1(x) = rectifier(a1(x)) g1(h1) = {sigmoid}(V1 h1 + c1) g1 (f1 (bozuk (x))) ve x'i karşılaştırarak çapraz entropi veya MSE kaybını en aza indirin. sigmoid verilere bağlı olarak isteğe bağlıdır.

2. DAE'yi f1 doğrultucudan önce eklenen gürültü ile eğitin ve MSE kaybı olan softplus yeniden yapılandırma birimlerini kullanın: h2 = f2(h1) = rectifier(W2 h1 + b2) g2(h2) = softplus(V2 h2 + c2) minimizef1(x)g2(f2(rectifier(corrupt(a1(x)))))2+λ1W1+λ2W2

Xavier Glorot, ayrıca Bengio laboratuarından, o değiştirilmesi haricinde aynı şeyi söyledi bir ile (muhtemelen "aktivasyon değerleri üzerinde" ceza hem?) Alan Uyarlanması için Büyük Ölçekli Duygu Sınıflandırması: Derin Öğrenme Yaklaşımı (ICML 2011) ve Derin seyrek doğrultucu sinir ağlarında (AISTATS 2011).W1L1g2()1


Hızlı yanıt için teşekkürler! Yani, Sigmoid yerine ReLU kullanıldığında auteenkodu optimize etmede bir sorun olduğunu mu söylüyorsunuz?
RockTheStar

Sorunlara neden olabileceği anlaşılıyor, evet, ancak öğrenme sürecini doğru bir şekilde ayarlarsanız kesinlikle yapılabilir. Bağlantılı makaleleri okumak yardımcı olabilir.
Dougal

MNIST veri kümesinde basit bir otomatik kodlayıcıyı deniyorum. 784-128-64-2-64-128-784 mimarisine sahip tam bağlantılı ağlar kullanıyorum. Relus'u her yerde kullanıyorum, ancak darboğaz katmanı (relu veya doğrusal) ve çıktı katmanı (relu veya sigmoid) ile denemeler yapıyorum. Çıktıda doğrultucu kullanılması daha kötü performans sağlar; sigmoid daha iyisini yapar. Sigmoid çıktısı için, doğrusal darboğaz biraz daha iyi yapıyor gibi görünüyor. Bu iki katman için en sevdiğim kombinasyon doğrusal / sigmoid. (Bu arada, tüm katmanlarda sigmoids kullanmak bunu daha da kötüleştiriyor.)
amip

@ameoba Relu çıktılarının kötü olması benim için şaşırtıcı değil: çıktıların belirli sınırları olduğunu biliyorsanız, sizi bu sınırlarla sınırlayan bir aktivasyon fonksiyonu kullanmak mantıklıdır. Bu alanda süper tecrübeli değilim, ama muhtemelen gizli katmanlar için bir ELU veya sızan bir ReLU deneyebilirim.
Dougal

2
Oh, vay be, ELU'ların farkında değildim! Bahşiş için çok teşekkürler Dougal. Onları denedim ve daha iyi çalışıyorlar. Derin öğrenme şaşırtıcı: her yıl yeni hileler ortaya çıkıyor ve kimsenin neden diğerlerinden daha iyi çalıştığına dair bir fikri yok. (CC'den @RockTheStar'a). Bu arada, Adam optimizer'ın oldukça harika performans gösterdiğini de fark ettim.
amip
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.