NASIL YAPILIR: Derin Sinir Ağı ağırlık başlatma


10

Zor öğrenme görevi göz önüne alındığında (örneğin, yüksek boyutsallık, doğal veri karmaşıklığı) Derin Sinir Ağlarının eğitimi zorlaşır. Sorunların çoğunu hafifletmek için:

  1. Kalite verilerini normalleştirin ve elden geçirin
  2. farklı bir eğitim algoritması seçin (örneğin Gradient Descent yerine RMSprop)
  3. daha dik bir gradyan Maliyet fonksiyonu seçin (örn. MSE yerine Çapraz Entropi)
  4. Farklı ağ yapısı kullanın (ör. Feedforward yerine Convolution katmanları)

Daha iyi ağırlıklar başlatmak için akıllı yollar olduğunu duydum. Örneğin, büyüklüğü daha iyi seçebilirsiniz: Glorot ve Bengio (2010)

  • Sigmoid birimleri için: bir örnek Uniform (-r, r) iler=6N-benn+N-Öut
  • ya da hiperbolik tanjant birimleri: Numune bir forma (r, r) iler=46N-benn+N-Öut

Ağırlıkları daha iyi başlatmanın tutarlı bir yolu var mı?

Yanıtlar:


7

Bildiğim kadarıyla verdiğiniz iki formül standart başlatmadır. Bir süre önce bir literatür taraması yapmıştım , ilgiliyse aşağıya kopyaladım.


[1] şu soruyu ele alır:

İlk olarak, geri işlem yaparken simetriyi kırmak için ağırlıklar sıfır olarak ayarlanmamalıdır:

Eğilimler genellikle sıfıra başlatılabilir, ancak aynı katmanın gizli birimleri arasındaki simetriyi kırmak için ağırlıkların dikkatle başlatılması gerekir. Farklı çıktı birimleri farklı gradyan sinyalleri aldığından, bu simetri kırma sorunu çıktı ağırlıklarını (çıktı birimlerine) ilgilendirmez, bu nedenle sıfıra da ayarlanabilir.

Bazı başlatma stratejileri:

  • [2] ve [3], fan girişinin kare kökünün tersine göre ölçeklendirilmesini önerir
  • Glorot ve Bengio (2010) ve Derin Öğrenme Öğreticileri, fan girişi ve fan çıkışı kombinasyonunu kullanır:
    • sigmoid üniteler için: örnekle bir Üniforma (-r, r) r=6yelpaze-in+çıkış yelpazesi (fan girişi ünitenin giriş sayısıdır).
    • hiperbolik tanjant birimleri için: ile bir Düzgün (-r, r) örnekleme r=46yelpaze-in+çıkış yelpazesi (fan girişi ünitenin giriş sayısıdır).
  • RBM'lerde, 0.1 veya 0.01 civarında küçük bir standart sapmaya sahip sıfır-ortalama Gaussian iyi çalışır (Hinton, 2010) ağırlıkları başlatmak için.
  • Ortogonal rastgele matris başlatma, yani başlatma matrisiniz olarak W = np.random.randn(ndim, ndim); u, s, v = np.linalg.svd(W)kullanın u.

Ayrıca, denetimsiz ön eğitim bazı durumlarda yardımcı olabilir:

Önemli bir seçenek, parametrelerin başlatılması için denetimsiz ön eğitimin (ve hangi denetimsiz özellik öğrenme algoritmasının kullanılacağı) kullanıp kullanmayacağıdır. Çoğu ortamda, yardımcı olmak ve çok nadiren incitmek için denetimsiz ön eğitim bulduk, ancak elbette ek eğitim süresi ve ek hiper parametreler anlamına geliyor.

Bazı YSA kütüphanelerinde bazı ilginç listeler de vardır, örneğin : Lazanya :

Constant([val]) Initialize weights with constant value.
Normal([std, mean]) Sample initial weights from the Gaussian distribution.
Uniform([range, std, mean]) Sample initial weights from the uniform distribution.
Glorot(initializer[, gain, c01b])   Glorot weight initialization.
GlorotNormal([gain, c01b])  Glorot with weights sampled from the Normal distribution.
GlorotUniform([gain, c01b]) Glorot with weights sampled from the Uniform distribution.
He(initializer[, gain, c01b])   He weight initialization.
HeNormal([gain, c01b])  He initializer with weights sampled from the Normal distribution.
HeUniform([gain, c01b]) He initializer with weights sampled from the Uniform distribution.
Orthogonal([gain])  Intialize weights as Orthogonal matrix.
Sparse([sparsity, std]) Initialize weights as sparse matrix.

[1] Bengio, Yoshua. " Derin mimarilerin eğim temelli eğitimi için pratik öneriler. " Yapay Sinir Ağları: Ticaretin püf noktaları. Springer Berlin Heidelberg, 2012. 437-478.

[2] LeCun, Y., Bottou, L., Orr, GB ve Muller, K. (1998a). Etkili backprop. Yapay Sinir Ağlarında, Ticaretin Püf Noktaları .

[3] Glorot, Xavier ve Yoshua Bengio. " Derin ileri beslemeli sinir ağlarını eğitmenin zorluklarını anlamak ." Yapay zeka ve istatistik üzerine uluslararası konferans. 2010.


2
Eksik gibi görünen bir şey Toplu Normalizasyon. Burada açıklanmıştır: arxiv.org/abs/1502.03167 Yararlı olabilir.
Joonatan Samuel

Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun, Glorot ve Bengio'dan Xavier ağırlık başlatmanın bir varyasyonunu içeren daha yeni bir makale yayınladı: "Doğrultuculara Derinlemesine Bakış: ImageNet Sınıflamasında İnsan Seviyesinde Performansı Aşmak" .
mjul
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.