Varyans ölçeklendirme başlatıcısı ile xavier başlatıcısı arasındaki fark nedir?


20

Arasında Tensorflow en uygulamasında ResNet , onlar, ben de başlatıcısı popüler xavier bulmak varyans ölçeklendirme başlatıcı kullanmak bulabilirsiniz. Bu konuda çok fazla deneyimim yok, bu pratikte daha iyi mi?


Xavier'in başlatılmasına ilişkin daha ayrıntılı bir açıklama için şu bağlantıyı ziyaret edebilirsiniz: prateekvjoshi.com/2016/03/29/… Xavier'in başlatılması ve arkasındaki sezginin doğru türetilmesini içerir.
Himanshu Singh

Yanıtlar:


31

Tarihi bakış açısı

Başlangıçta Xavier Glorot ve Yoshua Bengio tarafından "Derin ileri beslemeli sinir ağlarını eğitmenin zorluğunu anlama" konusunda önerilen Xavier'in başlatılması , bir katmanın çıktılarının varyansının girdilerinin varyansına eşit olmasını sağlamaya çalışan ağırlık başlatma tekniğidir. . Bu fikrin pratikte çok faydalı olduğu ortaya çıktı. Doğal olarak, bu başlatma katman aktivasyon fonksiyonuna bağlıdır. Ve gazetelerinde Glorot ve Bengio , o anda varsayılan seçim olan lojistik sigmoid aktivasyon işlevini düşündüler .

Daha sonra, sigmoid aktivasyonu ReLu tarafından aşıldı, çünkü yok olan / patlayan degradeler problemini çözmesine izin verdi. Sonuç olarak, aynı fikri (aktivasyonun varyansının dengelenmesi) bu yeni aktivasyon fonksiyonuna uygulayan yeni bir başlatma tekniği ortaya çıktı. Kaiming He tarafından "Doğrultuculara Derinlemesine Delme: ImageNet Sınıflandırmasında İnsan Seviyesinde Performansı Aşmak" bölümünde önerildi ve şimdi sıklıkla O başlatma olarak adlandırılıyor .

Tensorflow'da, O başlatma variance_scaling_initializer()fonksiyonu (aslında daha genel bir başlatıcıdır, ancak varsayılan olarak O başlatma işlemini gerçekleştirir) işlev görürken Xavier başlatıcı mantıksaldır xavier_initializer().

özet

Özetle, makine öğrenimi uygulayıcıları için temel fark şudur:

  • Başlatma ReLu aktivasyonu olan katmanlar için daha iyi çalışır .
  • Xavier başlatma, sigmoid aktivasyonu olan katmanlar için daha iyi çalışır .

Pytorch'ta hangi başlangıç ​​kullanılır? aktivasyona bağlı mı?
Charlie Parker

2
Merhaba, tanh()aktivasyon fonksiyonu için hangi başlatma fonksiyonunu kullanmalıyım.
GoingMyWay

@GoingMyWay, bu pytorch.org/docs/stable/… 'a göre , 5/3 kazançla O başlatmayı kullanabilirsiniz. Bunun nereden geldiğinden emin değilim.
Podgorskiy

3

Varyans ölçekleme yalnızca Xavier'in genelleştirilmesidir: http://tflearn.org/initializations/ . Her ikisi de degradelerin ölçeğinin tüm katmanlarda benzer olması gerektiği ilkesine göre çalışır. Xavier, zamanın deneysel testinden geçtiği için muhtemelen daha güvenlidir; varyans ölçeklemesi için kendi parametrelerinizi seçmeye çalışmak eğitimi engelleyebilir veya ağınızın hiç kazanmamasına neden olabilir.


Teşekkürler. Varyans için kendi parametrelerinizi seçmek nedir?
Hanamichi

TF uygulamasında, bu faktör parametresi olacaktır (giriş varyansının çıkış varyansına oranını belirler)
liangjy
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.