Pourquoi sqrt (6) est-il utilisé pour calculer epsilon pour l'initialisation aléatoire des réseaux de neurones?


8

Dans la semaine 5 notes de cours pour Coursera machine de classe d' apprentissage Andrew Ng , la formule suivante est donnée pour le calcul de la valeur de utilisé pour initialiser avec des valeurs aléatoires:ϵΘ

Forumla pour calculer epsilon-init pour une initialisation aléatoire

Dans l' exercice , des précisions sont apportées:

Une stratégie efficace pour choisir ϵinit consiste à le baser sur le nombre d'unités du réseau. Un bon choix de ϵinit est ϵinit=6LinLout , où Lin=sl et Lout=sl+1 sont le nombre d'unités dans les couches adjacentes à Θ(l) .

Pourquoi la constante 6 utilisée ici? Pourquoi pas 5 , 7 ou 6.1 ?

Réponses:


4

Je pense que c'est l' initialisation normalisée de Xavier (implémentée dans plusieurs cadres d'apprentissage profond, par exemple Keras, Cafe, ...) de Understanding the difficult of training deep deep feedforward neural networks par Xavier Glorot & Yoshua Bengio.

Voir les équations 12, 15 et 16 dans l'article lié: elles visent à satisfaire l'équation 12:

Var[Wi]=2ni+ni+1

et la variance d'un RV uniforme dans est (la moyenne est nulle, pdf = donc variance[ϵ,ϵ]ϵ2/31/(2ϵ)=ϵϵx212ϵdx


Hmm, alors pourquoi utiliser au lieu de ? 62
Tom Hale

Branchez epsilon dans la formule de variance de la variable aléatoire uniforme en +/- x et qu'obtenez-vous?
seanv507

Ah! Je vois maintenant dans les formules (16) que est utilisé. D'où obtenez-vous 2/3? [ϵ,ϵ]x2/3
Tom Hale

1
ajout d'une explication pour la variance du RV uniforme ...
seanv507
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.