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 =6fan girişi + fan çıkışı---------√ (fan girişi ünitenin giriş sayısıdır).
- hiperbolik tanjant birimleri için: ile bir Düzgün (-r, r) örnekleme r = 46fan girişi + fan çıkışı---------√ (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.