Lors de l'initialisation des poids de connexion dans un réseau de neurones à action directe, il est important de les initialiser de manière aléatoire pour éviter toute symétrie que l'algorithme d'apprentissage ne serait pas en mesure de briser.
La recommandation que j'ai vue à divers endroits (par exemple dans le tutoriel MNIST de TensorFlow ) est d'utiliser la distribution normale tronquée en utilisant un écart-type de , où est le nombre d'entrées dans le une couche de neurones donnée.
Je crois que la formule d'écart type garantit que les dégradés rétropropagés ne se dissolvent pas ou ne s'amplifient pas trop rapidement. Mais je ne sais pas pourquoi nous utilisons une distribution normale tronquée par opposition à une distribution normale régulière. Est-ce pour éviter les poids aberrants rares?
Réponses:
Je pense que c'est à propos de la saturation des neurones. Pensez que vous avez une fonction d'activation comme sigmoïde.
Si votre valeur de poids obtient une valeur> = 2 ou <= - 2, votre neurone n'apprendra pas. Donc, si vous tronquez votre distribution normale, vous n'aurez pas ce problème (au moins à partir de l'initialisation) en fonction de votre variance. Je pense que c'est pourquoi, il vaut mieux utiliser la normale tronquée en général.
la source
L'avantage d'utiliser la distribution normale tronquée est d'empêcher la génération de "neurones morts" en raison des relu_logits utilisés, ce qui est expliqué ici .
la source