En supposant une normalisation des données assez raisonnable, l'attente des pondérations devrait être nulle ou proche de celle-ci. Il pourrait donc être raisonnable de mettre tous les poids initiaux à zéro, car un poids initial positif devra aller plus loin s'il devait en fait être un poids négatif et vice versa. Mais cela ne fonctionne pas. Si tous les poids sont les mêmes, ils auront tous la même erreur et le modèle n'apprendra rien - il n'y a pas de source d'asymétrie entre les neurones.
Ce que nous pourrions faire, à la place, est de garder les poids très proches de zéro, mais de les rendre différents en les initialisant sur de petits nombres non nuls. C'est ce qui est suggéré dans le didacticiel que vous avez lié. Il a le même avantage de l'initialisation à zéro en ce sens qu'il est proche de la valeur d'attente `` meilleure estimation '', mais la symétrie a également été suffisamment brisée pour que l'algorithme fonctionne.
Cette approche présente des problèmes supplémentaires. Il n'est pas nécessairement vrai que de plus petits nombres fonctionneront mieux, surtout si le réseau neuronal est profond. Les gradients calculés en rétropropagation sont proportionnels aux poids; de très petits poids conduisent à de très faibles gradients et peuvent conduire au réseau à prendre beaucoup, beaucoup plus de temps à s'entraîner ou à ne jamais terminer.
sqrt(d)d[−1d√,1d√]