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 ?

Tom Hale
la source

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

seanv507
la source
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