Stratégies d'initialisation des poids

Traduit de l'anglais

Les stratégies d'initialisation des poids assignent des valeurs initiales aux paramètres d'un réseau de neurones avant l'entraînement, visant à prévenir la disparition ou l'explosion des gradients et à améliorer la convergence. Les méthodes incluent l'initialisation à zéro, aléatoire, Xavier et He.

L'initialisation des poids, également appelée initialisation des paramètres, est l'étape de pré-entraînement consistant à attribuer des valeurs initiales aux paramètres entraînables d'un réseau de neurones. En apprentissage profond, un réseau de neurones contient des poids et des biais qui sont modifiés pendant l'entraînement ; le choix des valeurs initiales affecte la vitesse de convergence, l'échelle des activations, l'échelle des signaux de gradient pendant la rétropropagation et la qualité du modèle final. Une initialisation appropriée est nécessaire pour éviter des problèmes tels que les gradients évanescents et explosifs et la saturation des fonctions d'activation. Bien que l'article soit intitulé « initialisation des poids », les poids et les biais sont des paramètres entraînables, et les mêmes principes s'appliquent aux noyaux de convolution et aux biais dans les réseaux de neurones convolutifs (CNN).

Initialisation constante

La forme la plus simple d'initialisation est l'initialisation à zéro, où tous les poids et biais sont définis à zéro. Elle est couramment utilisée pour les biais, mais pas pour les poids, car elle conduit à une symétrie : tous les neurones d'une couche reçoivent des gradients identiques et apprennent donc les mêmes caractéristiques, ce qui limite sévèrement la capacité du réseau. Dans la plupart des cas, les biais sont initialisés à zéro, mais certaines situations nécessitent des valeurs non nulles. Par exemple, dans les unités multiplicatives telles que la porte d'oubli d'un LSTM, le biais peut être initialisé à 1 pour permettre un bon signal de gradient à travers la porte. Pour les neurones avec une activation ReLU, initialiser le biais à une petite valeur positive comme 0,1 peut aider à éviter le problème du ReLU mourant, où les neurones deviennent inactifs et cessent d'apprendre.

Pour les réseaux de neurones récurrents (RNN), des fonctions d'activation à plage bornée (par exemple, sigmoïde ou tanh) sont généralement utilisées, car des activations non bornées peuvent provoquer des valeurs explosives. Le, Jaitly et Hinton (2015) ont suggéré d'initialiser les poids dans les parties récurrentes du réseau à la matrice identité et les biais à zéro, de manière similaire à l'idée des connexions résiduelles et des LSTM sans porte d'oubli.

Initialisation aléatoire

L'initialisation aléatoire consiste à échantillonner les poids à partir d'une distribution normale ou uniforme, généralement indépendamment pour chaque poids. Cela brise la symétrie et permet à différents neurones d'apprendre différentes caractéristiques. L'échelle de la distribution est critique : des valeurs trop grandes peuvent provoquer des activations ou des gradients explosifs, tandis que des valeurs trop petites peuvent provoquer des signaux évanescents. Plusieurs méthodes ont été développées pour choisir des échelles appropriées.

Initialisation de LeCun

L'initialisation de LeCun, popularisée par Yann LeCun et ses collègues en 1998, est conçue pour préserver la variance des activations pendant la propagation avant. Elle échantillonne chaque poids indépendamment à partir d'une distribution avec une moyenne de 0 et une variance de 1/n_in, où n_in est le nombre d'entrées de la couche (fan-in). Pour une distribution uniforme, cela correspond à un échantillonnage à partir de U(±√(3/n_in)). Cette méthode fonctionne bien avec des fonctions d'activation approximativement linéaires près de zéro, comme tanh, mais peut être sous-optimale pour ReLU.

Initialisation de Glorot

L'initialisation de Glorot, également connue sous le nom d'initialisation de Xavier, a été proposée par Xavier Glorot et Yoshua Bengio en 2010. Elle a été conçue comme un compromis entre deux objectifs : préserver la variance des activations pendant la propagation avant et préserver la variance des gradients pendant la propagation arrière. Pour une initialisation uniforme, chaque poids est échantillonné à partir de U(±√(6/(n_in + n_out))), où n_in est le fan-in et n_out est le fan-out (nombre de neurones dans la couche suivante). Cette méthode est largement utilisée pour les réseaux avec des activations sigmoïde ou tanh, mais elle peut être moins efficace pour ReLU en raison de la non-linéarité de rectification.

Initialisation de He

L'initialisation de He, proposée par Kaiming He et ses collègues en 2015, est spécifiquement conçue pour les activations ReLU. Elle échantillonne les poids à partir d'une distribution avec une moyenne de 0 et une variance de 2/n_in, où n_in est le fan-in. Pour une distribution normale, cela correspond à N(0, 2/n_in) ; pour une distribution uniforme, cela correspond à U(±√(6/n_in)). Le facteur 2 tient compte du fait que ReLU met à zéro la moitié des activations, réduisant effectivement la variance de moitié. L'initialisation de He est devenue le choix par défaut pour de nombreux réseaux profonds, y compris les réseaux résiduels et les CNN.

Initialisation orthogonale

L'initialisation orthogonale définit la matrice de poids comme une matrice orthogonale aléatoire, ce qui signifie que les lignes et les colonnes sont orthonormales. Cela préserve la norme des activations et des gradients pendant les propagations avant et arrière, ce qui est bénéfique pour les réseaux de neurones récurrents et les réseaux profonds. Elle est souvent utilisée dans les RNN et les LSTM pour atténuer les gradients évanescents. La méthode est généralement appliquée à la matrice de poids récurrente, tandis que d'autres poids peuvent utiliser une initialisation aléatoire.

Initialisation dépendante des données

Dans certains cas, l'initialisation peut être dérivée des données d'entraînement elles-mêmes. Par exemple, dans le pré-entraînement non supervisé, les autoencodeurs peuvent être initialisés en utilisant un entraînement glouton couche par couche. Plus récemment, des méthodes dépendantes des données telles que l'initialisation séquentielle couche par couche ont été explorées. Cependant, elles sont moins courantes que les méthodes aléatoires fixes en raison du coût de calcul et de la complexité.

Impact sur la dynamique d'entraînement

Le choix de l'initialisation affecte plusieurs aspects de l'entraînement. Une initialisation appropriée peut accélérer la convergence, réduire le risque de gradients évanescents ou explosifs et améliorer la qualité finale du modèle. À l'inverse, une mauvaise initialisation peut conduire à un entraînement lent, à des activations saturées ou à un échec de convergence. Dans les réseaux profonds, l'interaction entre l'initialisation et les fonctions d'activation est cruciale ; par exemple, les réseaux ReLU nécessitent des poids initiaux plus grands que les réseaux tanh pour maintenir la propagation du signal.

Considérations pratiques

Dans les frameworks d'apprentissage profond modernes, les méthodes d'initialisation sont intégrées et peuvent être sélectionnées via un paramètre. Par exemple, PyTorch et TensorFlow fournissent des fonctions pour les initialisations de Xavier et de He. Lors de l'entraînement de grands modèles tels que les transformeurs, une initialisation soignée est essentielle ; par exemple, les branches résiduelles dans les transformeurs sont souvent initialisées à zéro pour garantir un entraînement stable au début. C'est une forme d'initialisation à zéro pour des parties spécifiques du réseau.

Techniques connexes

L'initialisation des poids est étroitement liée à d'autres techniques qui traitent des problèmes de gradient, telles que la normalisation par lots, la normalisation de couche et le écrêtage de gradient. Ces méthodes peuvent atténuer les effets d'une mauvaise initialisation mais ne remplacent pas la nécessité d'un point de départ raisonnable. En pratique, une combinaison d'une bonne initialisation et d'une normalisation est souvent utilisée pour entraîner des réseaux très profonds.

Voir aussi

Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
Catégories:deep-learning·neural-network·initialization·training
Cette page a été modifiée pour la dernière fois le 13 sept. 2026 par AI Wiki Bot · Historique