Pourquoi utiliser la descente de gradient avec des réseaux de neurones?

22
  1. Lors de la formation d'un réseau neuronal à l'aide de l'algorithme de rétropropagation, la méthode de descente en gradient est utilisée pour déterminer les mises à jour du poids. Ma question est la suivante: Plutôt que d'utiliser la méthode de descente en gradient pour localiser lentement le point minimum par rapport à un certain poids, pourquoi ne pas simplement définir la dérivée , et trouver la valeur du poids qui minimise l'erreur?d(Error)dw=0w

  2. Aussi, pourquoi sommes-nous sûrs que la fonction d'erreur dans la rétropropagation sera au minimum? Ne peut-il pas s'avérer que la fonction d'erreur est un maximum à la place? Existe-t-il une propriété spécifique des fonctions d'écrasement qui garantit qu'un réseau avec un nombre quelconque de nœuds cachés avec des poids arbitraires et des vecteurs d'entrée donnera toujours une fonction d'erreur qui a des minima?

Minaj
la source
2
Tous les titres de majuscules ne sont pas standard ici (veuillez regarder autour de vous) et ici et ailleurs largement déconseillés en tant que CRIES indésirables.
Nick Cox
@Nick Cox mes excuses
Minaj
Il est intéressant de voir chaque fois que des variables cachées ou latentes sont utilisées dans les modèles Machine Learning, l'optimisation (presque?) Devient toujours non linéaire, non convexe et juste plus difficile à optimiser.
Vladislavs Dovgalecs

Réponses:

30
  1. Parce que nous ne pouvons pas. La surface d'optimisation en fonction des poids w est non linéaire et aucune solution de forme fermée n'existe pour d S ( w )S(w)w.S(w)w=0

  2. La descente en pente, par définition, descend. Si vous atteignez un point stationnaire après la descente, ce doit être un minimum (local) ou un point de selle, mais jamais un maximum local.

Marc Claesen
la source
Si la fonction était concave, le gradient décent descendrait pour toujours car la seule façon d'aller est vers le bas. Voulez-vous dire que la surface d'erreur est garantie de ne pas être concave? De plus, il n'est pas clair pour moi pourquoi la dérivée de la fonction d'erreur n'aurait pas de solution de forme fermée. N'est pas l'erreur de la forme où K est une constante? Cette fonction semble assez différentiable et l'expression résultante résolu analytiquement. Veuillez m'aider à clarifier car il y a quelque chose que je ne vois clairement pas. K-11+eΣwX
Minaj
8
Cela ne peut pas se produire, car toutes les fonctions d'erreur couramment utilisées ont un strict minimum théorique de 0. Les erreurs ne peuvent jamais devenir négatives.
Marc Claesen
2
Une autre interprétation possible de 1. est "C'est exactement ce que nous faisons, l'équation est résolue en utilisant la descente de gradient."
Matthew Drury
1
il y a clairement une forme fermée pour le gradient (c'est ainsi que nous faisons efficacement la descente du gradient). Le problème n'est pas une racine de forme fermée de gradient = 0
seanv507
@ seanv507 c'est ce que j'avais l'intention de dire, désolé pour la confusion. Modifié mon message.
Marc Claesen
10

En ce qui concerne la réponse de Marc Claesen, je pense que la descente en pente peut s'arrêter à un maximum local dans les situations où vous initialisez à un maximum local ou vous vous retrouvez justement là-bas en raison de la malchance ou d'un paramètre de taux erroné. Le maximum local aurait un gradient nul et l'algorithme penserait qu'il a convergé. C'est pourquoi je lance souvent plusieurs itérations à partir de différents points de départ et garde une trace des valeurs en cours de route.

Jared Becksfort
la source
1
J'ai édité votre commentaire de préambule, car il semble que vous attiriez déjà des votes positifs! Bienvenue sur le site!
Matthew Drury
Merci! Je ne savais pas si cela devait être un commentaire ou une réponse et je ne voulais pas que ma première réponse soit ramenée à l'oubli sur la seule base de cela.
Jared Becksfort
6

Dans les méthodes de type Newton, à chaque étape on résout pour uneversionlinéariséeou approximative du problème. Ensuite, le problème est linéarisé sur le nouveau point, et le processus se répète jusqu'à la convergence. Certaines personnes l'ont fait pour les réseaux neuronaux, mais il présente les inconvénients suivants,(Erreur)w=0

  • Il faut traiter des dérivées secondes (la Hesse, en particulier les produits vectoriels de Hesse).
  • L '«étape de résolution» est très coûteuse en termes de calcul: dans le temps nécessaire pour effectuer une résolution, on aurait pu effectuer de nombreuses itérations de descente de gradient.

Si l'on utilise une méthode de Krylov pour la résolution de la Hesse et que l'on n'utilise pas un bon préconditionneur pour la Hesse, alors les coûts s'équilibrent à peu près - les itérations de Newton prennent beaucoup plus de temps mais font plus de progrès, de telle sorte que le temps total est à peu près la même ou plus lente que la descente en pente. D'un autre côté, si l'on a un bon préconditionneur hessois, la méthode de Newton gagne gros.

Cela dit, les méthodes Newton-Krylov dans la région de confiance sont la référence en matière d'optimisation moderne à grande échelle, et je ne m'attendrais à ce que leur utilisation augmente dans les réseaux neuronaux dans les années à venir, car les gens veulent résoudre des problèmes de plus en plus importants. (et aussi à mesure que de plus en plus de personnes en optimisation numérique s'intéressent à l'apprentissage automatique)

Nick Alger
la source
Je pense que vous vous trompez. Les gens utilisent des réseaux depuis les années 90 et connaissent bien les méthodes de second ordre. le problème est précisément que les réseaux sont efficaces lorsqu'il y a beaucoup de données, qui prennent alors en charge de nombreux paramètres, auquel cas les contraintes de temps et de mémoire des méthodes du second ordre sont inefficaces. voir par exemple leon.bottou.org/publications/pdf/compstat-2010.pdf
seanv507
@ seanv507 Pas vraiment. La discussion des méthodes de second ordre dans cet article a beaucoup de défauts, en ce qu'elles supposent que l'on doit construire et inverser la Hesse dense entière afin d'utiliser des méthodes de second ordre. Ce n'est tout simplement pas ainsi que cela se fait dans l'optimisation numérique à grande échelle moderne. Dans les méthodes modernes du second ordre, on calcule l'action de la Hesse sur les vecteurs en résolvant des problèmes adjoints, et les utilise dans un solveur itératif (Krylov). Généralement, la première itération interne renvoie la direction du gradient et les itérations suivantes l'améliorent.
Nick Alger
Bien que je ne sois pas particulièrement fan de ce document, je ne pense pas que ce soit vrai. Il a précédemment discuté / implémenté des approximations diagonales et de rangs réduits de la toile de jute. Et qu'en est-il de la multiplication exacte rapide du papier de 1994 par pearlmutter par la toile de jute?
seanv507
Droite. Une fois que vous avez des applications rapides en Hesse (que ce soit via Pearlmutter ou quoi que ce soit), vous pouvez faire des résolutions de Hesse inexactes avec des méthodes de Krylov comme le gradient conjugué. En faisant cela, on transfère efficacement les difficultés de conditionnement loin de l'optimiseur itératif non linéaire, sur le solveur itératif d'algèbre linéaire où l'on a beaucoup de machines et de techniques de préconditionnement disponibles pour traiter le problème. Une bonne référence est la section sur la région de confiance CG-Steihaug dans le classique "Numerical Optimization" de Nocedal et Wright.
Nick Alger
Mon point est que cette multiplication par des gradients de jute et de conjugué était connue dans la communauté des réseaux depuis disons 1994. Donc je crois qu'il y a certainement une raison pour laquelle SGD est utilisé plutôt que des méthodes de second ordre (et j'aimerais certainement une résolution claire de pourquoi c'est )
seanv507