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?
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?
Yanıtlar:
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()
.
Özetle, makine öğrenimi uygulayıcıları için temel fark şudur:
tanh()
aktivasyon fonksiyonu için hangi başlatma fonksiyonunu kullanmalıyım.
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.