Différence entre la diminution du poids neuronal net et le taux d'apprentissage

94

Dans le contexte des réseaux de neurones, quelle est la différence entre le taux d'apprentissage et la perte de poids?

Ryan Zotti
la source

Réponses:

161

Le taux d'apprentissage est un paramètre qui détermine dans quelle mesure une étape de mise à jour influence la valeur actuelle des poids. Alors que la diminution du poids est un terme supplémentaire dans la règle de mise à jour du poids, les poids décroissent de manière exponentielle jusqu'à zéro, si aucune autre mise à jour n'est planifiée.

Supposons donc que nous ayons une fonction de coût ou d'erreur à minimiser. La descente de gradient nous dit de modifier les poids dans la direction de la descente la plus raide dans : où est le taux d’apprentissage, et s’il est grand, vous aurez une modification conséquente des poids (en général, il ne devrait pas être trop grand, sinon vous dépassez le minimum local dans votre fonction de coût).E(w)wE

wiwiηEwi,
ηwi

Afin de limiter efficacement le nombre de paramètres libres dans votre modèle afin d'éviter les surajustements, il est possible de régulariser la fonction de coût. Une méthode simple consiste à introduire un précédent gaussien avec une moyenne nulle sur les poids, ce qui revient à changer la fonction de coût en . En pratique, cela pénalise les gros poids et limite efficacement la liberté de votre modèle. Le paramètre de régularisation détermine le compromis entre le coût initial et la pénalisation de poids importants.E~(w)=E(w)+λ2w2λE

En appliquant une descente de gradient à cette nouvelle fonction de coût, nous obtenons: Le nouveau terme provenant de la régularisation provoque la décroissance du poids proportionnellement à sa taille.

wiwiηEwiηλwi.
ηλwi
mrig
la source
2
Merci pour l'explication utile. Une question: dans le package "nnet" R, il existe un paramètre utilisé dans l'apprentissage du réseau de neurones appelé "decay". Savez-vous si la dégradation correspond à votre lambda ou à votre eta * lambda?
Andrea Ianni
3
J'ajouterais également que la perte de poids est la même chose que la régularisation de L2 pour ceux qui sont familiers avec ce dernier.
Sergei
2
@Sergei, non, arrête de répandre cette désinformation! Ceci n'est vrai que dans le cas très particulier de SGD vanille. Reportez-vous à la rubrique Correction du poids de fixation pour le papier Adam .
LucasB
Pour clarifier: au moment de la rédaction, la documentation PyTorch pour Adam utilise le terme " perte de poids" (appelée entre parenthèses "pénalité de L2") pour faire référence à ce que je pense que ces auteurs appellent une régulation de L2. Si je comprends bien, cette réponse fait référence à SGD sans élan, où les deux sont équivalents.
Dylan F
14

Outre la réponse de @ mrig (+1), pour de nombreuses applications pratiques des réseaux de neurones, il est préférable d’utiliser un algorithme d’optimisation plus avancé, tel que Levenberg-Marquardt (réseaux de petite et moyenne taille) ou de descente à gradient conjugué à l’échelle (moyenne à grande). réseaux), car ils seront beaucoup plus rapides et qu’il n’est pas nécessaire de définir le taux d’apprentissage (les deux algorithmes adaptent essentiellement le taux d’apprentissage en utilisant la courbure et le gradient). Tout paquet ou bibliothèque de réseau neuronal convenable aura l’implémentation de l’une de ces méthodes, tout paquet qui ne l’est pas est probablement obsolète. J'utilise la librairie NETLAB pour MATLAB, un excellent kit.

Dikran Marsupial
la source
Qu'en est-il des algorithmes d'optimisation basés sur Rprop? Comment s'empilent-ils?
puissance
4
Je pense que la plupart des gens utilisent des variantes de Rprop + Moment telles que RMSProp, Adagrad, SGD + Nesterov Momentum. Voir la classe cs231 .
Facuq
1
Bien sûr, cela dépend de votre application. Mais pour les grands ensembles de données / réseaux qui sont un peu à la mode en ce moment, je pense que les gens trouvent les algorithmes que j'ai mentionnés mieux adaptés.
facuq
6
@ DikranMarsupial c'est peut-être parce qu'aujourd'hui (presque cinq ans après votre réponse) les gens ont tendance à utiliser Adam plutôt?
ComputerScientist
2
En effet, cette réponse est très dépassée. Ces algorithmes ne sont pas pratiques avec l’échelle des modèles et des jeux de données qui sont typiques de nos jours, et les paquetages les plus largement utilisés, qui ne sont certainement pas obsolètes, n’ont pas ces algorithmes.
LucasB