Pourquoi la rétropropagation ne fonctionne-t-elle pas lorsque vous initialisez les poids à la même valeur?


20

Pourquoi la rétropropagation ne fonctionne-t-elle pas lorsque vous initialisez tous les poids à la même valeur (disons 0,5), mais fonctionne bien lorsque des nombres aléatoires sont donnés?

L'algorithme ne devrait-il pas calculer l'erreur et travailler à partir de là, malgré le fait que les poids soient initialement les mêmes?

Réponses:


26

Rupture de symétrie.

Si tous les poids commencent par des valeurs égales et si la solution nécessite que des poids inégaux soient développés, le système ne pourra jamais apprendre.

En effet, l'erreur se propage à travers les poids proportionnellement aux valeurs des poids. Cela signifie que toutes les unités cachées connectées directement aux unités de sortie recevront des signaux d'erreur identiques et, puisque les changements de poids dépendent des signaux d'erreur, les poids de ces unités aux unités de sortie doivent toujours être les mêmes. Le système commence à une sorte de point d'équilibre instable qui maintient les poids égaux, mais il est plus élevé que certains points voisins sur la surface d'erreur, et une fois qu'il s'éloigne vers l'un de ces points, il ne reviendra jamais. Nous contrebalançons ce problème en démarrant le système avec de petits poids aléatoires. Dans ces conditions, des problèmes de symétrie de ce type ne se posent pas.


Ainsi, les poids initiaux d'un NN ne déterminent pas seulement la vitesse à laquelle il s'entraîne, mais pourraient également être la cause de l'apprentissage ou non?
user1724140

2
Oui, parfois, nous ne nous entraînons pas (un réseau de neurones par exemple) sur un seul ensemble de poids. Une chose courante à faire, si nous avons le temps, est de créer plusieurs configurations différentes de poids de départ et de former le réseau à ce sujet. Parce que parfois, il peut arriver qu'une configuration se retrouve dans un optima local ou que le poids ne soit malheureusement pas vraiment aléatoire.
ThiS

N'est-ce pas faux, car différentes entrées peuvent encore briser la symétrie. voir: open.wolframcloud.com/env/…
user3180

12

Pour compléter la réponse de Thierry, vous pouvez penser l'erreur en fonction du vecteur poids c'est-à-dire en fonction de que vous souhaitez minimiser. L'algorithme de rétropropagation fonctionne en regardant un voisinage local d'un point et en voyant quelle direction conduira à une erreur plus petite. Cela vous donnera alors un minimum local.RnR

Ce que vous voulez, c'est un minimum global, mais vous n'avez aucun moyen garanti de le trouver. Et si votre surface a plusieurs minima locaux, vous pourriez avoir des ennuis.

Mais s'il n'en a que quelques-uns, la stratégie de Thierry devrait fonctionner - effectuer plusieurs recherches de minima locaux en commençant à des points sélectionnés au hasard devrait augmenter les chances de trouver le minimum global.

Et dans le cas heureux où il n'y a qu'un minimum - n'importe quel vecteur de poids initial vous y mènera.

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.