Pourquoi les poids des réseaux de neurones sont-ils initialisés avec des nombres aléatoires?

9

Pourquoi les poids initiaux des réseaux de neurones sont-ils initialisés sous forme de nombres aléatoires? J'avais lu quelque part que cela est fait pour "briser la symétrie" et que le réseau neuronal apprend plus vite. Comment briser la symétrie permet-elle d'apprendre plus rapidement?

Est-ce que l'initialisation des poids à 0 ne serait pas une meilleure idée? De cette façon, les poids pourraient trouver leurs valeurs (positives ou négatives) plus rapidement?

Y a-t-il une autre philosophie sous-jacente derrière la randomisation des poids en plus d'espérer qu'ils seraient proches de leurs valeurs optimales une fois initialisés?

Shayan RC
la source

Réponses:

6

L'intuition de base derrière l'initialisation des couches de poids en petites valeurs (et différentes) est juste pour que le biais du système soit rompu et que les valeurs de poids puissent se déplacer le long et loin et à part vers des valeurs différentes.

Plus concrètement, vous voudriez probablement que vos poids initiaux soient distincts et aient "un petit écart" entre eux, cet "écart" se dilate au fur et à mesure et force les poids à être un peu plus grands à chaque itération, et cela aide le réseau pour converger plus rapidement, c'est-à-dire que le processus d'apprentissage s'accélère.

Si vous souhaitez plutôt que tous vos poids soient constants, chaque poids sera mis à jour à un rythme très lent (~ fixe), et cela n'aidera pas beaucoup, surtout si les valeurs initiales sont `` très loin '' des valeurs finales.

J'espère que cela aide, amusez-vous à apprendre :)

Subhayan
la source
Donc, ce que vous dites est de randomiser les poids initiaux équivaut à donner à chaque poids un coup de pouce dans la direction dont il a besoin pour se déplacer (et l'écart pour s'élargir).
Shayan RC
Je ne pense pas que cela doive être dans la bonne direction, vous pouvez aussi bien commencer avec un poids initial de [-0,5, +0,5] où les valeurs finales peuvent être [+0,5, -0,5], l'idée clé est d'avoir valeurs différentes ..
Subhayan
Cela fait plus d'un an que je travaille avec des NN, donc je parle d'une manière ondulée, s'il vous plaît laissez-moi savoir si vous voulez les mathématiques derrière. mais je pense qu'il est plus important d'obtenir l'intuition ici, les mathématiques sont à peu près disponibles partout .. :)
Subhayan
Les calculs sous-jacents seraient utiles mais encore plus utiles seraient des conseils pratiques: par exemple, comment les poids initiaux devraient-ils être petits (10 ^?) Comment varient-ils pour différents types de réseaux? Existe-t-il une sorte de nombre magique qui fonctionne pour tous?
Shayan RC