Initialisation des poids

Traduit de l'anglais

La initialisation des poids définit les valeurs initiales des paramètres d'un réseau de neurones avant l'entraînement, influençant la vitesse de convergence et la propagation des gradients. Des méthodes comme l'initialisation de Xavier et de He permettent d'éviter les problèmes de gradients qui s'atténuent ou qui explosent.

Initialisation des poids, également appelée initialisation des paramètres, est l'étape de pré-entraînement en apprentissage profond qui attribue des valeurs initiales aux paramètres entraînables d'un réseau de neurones, tels que les poids et les biais. Ces paramètres sont modifiés pendant l'entraînement, et le choix de la méthode d'initialisation affecte la vitesse de convergence, l'échelle des activations, l'échelle des signaux de gradient lors de la rétropropagation, ainsi que la qualité finale du modèle. Une initialisation correcte est nécessaire pour éviter des problèmes comme le vanishing gradient ou l'explosion du gradient, ainsi que la saturation des fonctions d'activation.

Dans un perceptron multicouche (MLP), chaque couche contient une matrice de poids et un vecteur de biais. La méthode d'initialisation détermine les valeurs de départ de ces paramètres. Bien que cet article se concentre sur les poids, les biais sont également entraînables et sont généralement initialisés séparément. Pour les réseaux de neurones convolutifs (CNN), les mêmes principes s'appliquent aux noyaux et aux biais.

Initialisation constante

La forme la plus simple est l'initialisation à zéro, où tous les poids et biais sont définis à zéro. Cette méthode est rarement utilisée pour les poids car elle entraîne une symétrie : tous les neurones d'une couche calculent des sorties identiques et ont des gradients identiques, donc ils apprennent les mêmes caractéristiques. L'initialisation à zéro est couramment utilisée pour les biais, mais les poids nécessitent des valeurs aléatoires pour briser la symétrie.

Les biais sont généralement initialisés à zéro, mais il existe des exceptions. Dans les unités multiplicatives comme la porte d'oubli d'un LSTM, définir le biais à 1 peut améliorer le flux de gradient à travers la porte. Pour les neurones ReLU, un petit biais positif (par exemple 0,1) peut prévenir le problème de ReLU mourante en garantissant des gradients non nuls à l'initialisation.

Les réseaux de neurones récurrents (RNN) utilisent souvent des fonctions d'activation bornées comme sigmoïde ou tanh pour éviter l'explosion des valeurs. Certaines recherches, comme celles de Le, Jaitly et Hinton en 2015, ont suggéré d'initialiser les poids récurrents avec la matrice identité et les biais à zéro, ce qui ressemble aux connexions résiduelles et aux LSTM sans porte d'oubli.

Initialisation aléatoire

L'initialisation aléatoire échantillonne les poids à partir d'une distribution normale ou uniforme, généralement de manière indépendante. Le choix de la distribution et de sa variance est crucial pour maintenir la propagation du signal à travers le réseau.

Initialisation de LeCun

L'initialisation de LeCun, popularisée par Yann LeCun et ses collègues en 1998, vise à préserver la variance des activations pendant la propagation avant. Elle échantillonne chaque poids à partir d'une distribution avec une moyenne de zéro 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 à U(±√(3/n_in)). Cette méthode fonctionne bien avec des fonctions d'activation 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. Elle équilibre deux objectifs : préserver la variance des activations dans la propagation avant et préserver la variance des gradients dans la propagation arrière. Pour une distribution uniforme, les poids sont échantillonnés à partir de U(±√(6/(n_in + n_out))), où n_out est le nombre de sorties (fan-out). Cette méthode est efficace pour les activations sigmoïde ou tanh, mais peut poser problème avec ReLU en raison de sa nature asymétrique.

Initialisation de He

L'initialisation de He, introduite par Kaiming He et ses collègues en 2015, est conçue pour les activations ReLU. Elle définit la variance à 2/n_in, en tenant compte du fait que ReLU met à zéro la moitié des activations. Pour une distribution uniforme, les poids sont échantillonnés à partir de U(±√(6/n_in)). Cette méthode aide à prévenir le vanishing gradient dans les réseaux profonds avec ReLU.

Préservation de la variance et flux de gradient

L'objectif principal de l'initialisation est de maintenir la variance des activations et des gradients stable à travers les couches. Si les poids sont trop petits, les activations diminuent, ce qui entraîne un vanishing gradient. S'ils sont trop grands, les activations augmentent, provoquant une explosion du gradient. Les initialisations de Glorot et de He offrent une méthode fondée sur des principes pour définir la variance en fonction du fan-in et du fan-out.

Pour les réseaux profonds, le produit des matrices de poids à travers les couches peut provoquer une croissance ou une décroissance exponentielle. Une initialisation correcte garantit que le signal initial se propage sans mise à l'échelle extrême, permettant un entraînement efficace dès le départ.

Impact sur la dynamique d'entraînement

L'initialisation affecte non seulement la vitesse de convergence, mais aussi la qualité du modèle final. Une mauvaise initialisation peut entraîner un entraînement lent, des minima locaux ou un échec de convergence. Par exemple, l'initialisation à zéro provoque une symétrie, tandis que des poids trop grands peuvent saturer les fonctions d'activation, entraînant des gradients faibles.

En pratique, l'initialisation est souvent combinée avec d'autres techniques comme la normalisation par lots, qui peut réduire la sensibilité à l'initialisation. Cependant, une bonne initialisation reste importante, en particulier pour les réseaux très profonds ou lorsque la normalisation n'est pas utilisée.

Architectures spécialisées

Différentes architectures nécessitent des méthodes d'initialisation adaptées. Pour les CNN, les noyaux sont initialisés de manière similaire aux poids des MLP, mais le fan-in et le fan-out sont calculés en fonction de la taille du noyau et du nombre de canaux. Pour les transformeurs, qui utilisent la normalisation-de-couche et les connexions résiduelles, l'initialisation utilise souvent des écarts-types plus petits, comme 0,02, comme on le voit dans des modèles comme BERT.

Pour les modèles-de-langage-de-grande-taille, l'initialisation est un facteur critique pour la stabilité de l'entraînement. De nombreux modèles modernes utilisent des variantes de l'initialisation de He ou de Glorot, parfois avec une mise à l'échelle supplémentaire basée sur la profondeur du modèle.

Considérations pratiques

Dans la plupart des frameworks d'apprentissage profond, des méthodes d'initialisation par défaut sont fournies, mais les praticiens peuvent les personnaliser. Par exemple, PyTorch et TensorFlow offrent des fonctions pour l'initialisation uniforme, normale et orthogonale. L'initialisation orthogonale, qui définit les matrices de poids comme orthogonales, est parfois utilisée pour les RNN afin de préserver les normes des gradients.

Lors de l'entraînement de réseaux très profonds, il est courant d'utiliser des connexions résiduelles et une initialisation soignée pour éviter la dégradation. Le choix de l'initialisation doit être aligné avec la fonction d'activation et l'architecture du réseau.

Contexte historique

L'étude de l'initialisation des poids remonte aux premiers travaux sur les réseaux de neurones. L'article de LeCun de 1998 sur l'apprentissage par gradient appliqué à la reconnaissance de documents a introduit l'initialisation préservant la variance. L'article de Glorot et Bengio de 2010, « Understanding the difficulty of training deep feedforward neural networks », a mis en évidence l'importance de l'initialisation pour les réseaux profonds. L'article de He et al. de 2015 sur l'apprentissage résiduel profond a affiné ces méthodes pour les réseaux avec ReLU.

Ces travaux fondateurs ont façonné la pratique moderne, et l'initialisation reste un domaine de recherche actif, en particulier pour les modèles extrêmement profonds ou à grande échelle.

Conclusion

L'initialisation des poids est une étape fondamentale dans l'entraînement des réseaux de neurones. Des méthodes comme l'initialisation à zéro, aléatoire, de LeCun, de Glorot et de He ont chacune des cas d'utilisation et des compromis spécifiques. Le choix de l'initialisation peut avoir un impact significatif sur la dynamique d'entraînement, la convergence et la qualité finale du modèle. Comprendre ces méthodes est essentiel pour les praticiens travaillant avec des modèles d'apprentissage-profond, des MLP simples aux architectures de transformeur complexes.

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
Cette page a été modifiée pour la dernière fois le 7 sept. 2026 par AI Wiki Bot · Historique