Pourquoi une descente en pente est-elle nécessaire?


10

Quand nous pouvons différencier la fonction de coût et trouver des paramètres en résolvant des équations obtenues par différenciation partielle par rapport à chaque paramètre et savoir où la fonction de coût est minimale. Je pense aussi qu'il est possible de trouver plusieurs endroits où les dérivées sont nulles, ainsi nous pouvons vérifier tous ces endroits et trouver des minima globaux

pourquoi la descente de gradient est-elle effectuée à la place?


2
Comment définir génériquement les dérivées à 0 pour une fonction? Avec des algorithmes, comme la descente de gradient.
Cliff AB

3
Vous pouvez considérer la descente de gradient comme la méthode utilisée pour résoudre les équations auxquelles vous faites référence. Si vous pensez que vous pouvez résoudre de manière générique de telles équations avec une manipulation algébrique intelligente, je vous invite à essayer de le faire pour la régression logistique.
Matthew Drury



vous ne pouvez pas tout résoudre analytiquement. Même si vous pouviez, s'il y avait dire, un nombre incalculable de zéros, alors vous prendriez beaucoup de temps pour vérifier tous les points critiques.
Pinocchio

Réponses:


8

Même dans le cas, par exemple, de modèles linéaires, où vous avez une solution analytique, il peut être préférable d'utiliser un tel solveur itératif.

Par exemple, si l'on considère la régression linéaire, la solution explicite nécessite d'inverser une matrice qui a la complexité . Cela devient prohibitif dans le contexte du big data.O(N3)

De plus, de nombreux problèmes d'apprentissage automatique sont convexes, donc l'utilisation de dégradés garantit que nous atteindrons les extrêmes.

Comme déjà souligné, il existe encore des problèmes non convexes pertinents, comme les réseaux de neurones, où les méthodes de gradient (rétropropagation) fournissent un solveur efficace. Encore une fois, cela est particulièrement pertinent pour le cas de l'apprentissage en profondeur.


2
Inverser une matrice est un peu un homme de paille ici car la décomposition QR avec pivotement partiel est plus précise et plus rapide, mais oui, QR est toujours . Je conviens que pour des systèmes suffisamment grands (par exemple> 10 000 variables), cela peut devenir un problème. L'approche moderne et de haute technologie consiste alors à rapprocher la solution avec des méthodes itératives du sous-espace de Krylov (par exemple, gradient conjugué, GMRES). O(n3)
Matthew Gunn

1
Un point que certaines personnes peuvent trouver déroutant est de savoir comment la résolution d'un système linéaire est un problème d'optimisation? La réponse est bien sûr que la résolution d'un système linéaire peut être recadrée comme minimisant un objectif quadratique. Certaines méthodes itératives pour résoudre des systèmes linéaires sont plus faciles à comprendre du point de vue qu'elles minimisent un objectif quadratique de manière itérative. (Par exemple, la direction de pas du gradient conjugué de la méthode du sous-espace de Krylov est basée sur le gradient ... elle est vaguement liée à la descente du gradient.)
Matthew Gunn

12

Une descente en pente n'est pas requise. Il s'avère que la descente de gradient est souvent un algorithme d'optimisation horriblement inefficace! Pour les méthodes itératives, il est souvent possible de trouver une meilleure direction pour se déplacer que là où le gradient est le plus raide.

C'est un peu une réponse inversée cependant. Votre question devrait vraiment être, "pourquoi avons-nous besoin de méthodes itératives?" Par exemple. pourquoi ne pas aller directement à la solution si le problème est convexe, la condition de Slater tient, et les conditions de premier ordre sont des conditions nécessaires et suffisantes pour un optimum? Autrement dit, lorsque la solution peut être décrite comme la solution à un système d'équations, pourquoi ne pas simplement résoudre le système? La réponse est que:

  • Pour un problème d'optimisation quadratique, la condition du premier ordre est un système d'équations linéaires, et nous pouvons aller presque directement à la solution car les systèmes linéaires peuvent être résolus efficacement! Nous n'utilisons les conditions de premier ordre et résoudre le système (par exemple. Avec décomposition QR, mise en garde ci - dessous).
  • Plus généralement cependant, les conditions du premier ordre définissent un système non linéaire d'équations et un système non linéaire peut être assez difficile à résoudre! En fait, la façon dont vous résolvez souvent un système d'équations non linéaires numériquement est de le reformuler comme un problème d'optimisation ...
  • Pour les systèmes linéaires extrêmement grands , résoudre le système directement avec la décomposition QR et le pivotement partiel devient impossible. Que font les gens?! Méthodes itératives! (par exemple, les méthodes itératives du sous-espace de Krylov ...)

7

Dans le calcul 101, nous avons appris comment optimiser une fonction en utilisant la "méthode analytique": il nous suffit d'obtenir la dérivée de la fonction de coût et de définir la dérivée sur 0, puis de résoudre l'équation. C'est vraiment un problème de jouet et ne se produira presque jamais dans le monde réel.

Dans le monde réel, de nombreuses fonctions de coût n'ont pas de dérivée partout (en outre, la fonction de coût peut être discrète et ne pas avoir de dérivée du tout). De plus, même si vous pouvez calculer la dérivée, vous ne pouvez pas simplement résoudre l'équation analytiquement (par exemple, pensez à résoudre analytiquement? Je peux vous dire que la réponse numérique est , mais je ne connais pas la solution analytique). Il faut utiliser quelques méthodes numériques (vérifier pourquoi ici sur les cas polynomiaux du théorème d'Abel Ruffin ).x7+x352+ex+log(x+x2)+1/x=0x=1.4786

Les méthodes itératives sont agréables à utiliser et très intuitives à comprendre. Supposons que vous vouliez optimiser une fonction, au lieu de résoudre une équation et d'obtenir la réponse, vous essayez d'améliorer votre réponse en nombre d'itérations / étapes après une itération suffisante, vous obtiendrez une réponse proche de la "vraie réponse". Supposons que si vous utilisez le calcul pour minimiser , vous obtenez directement , mais en utilisant des méthodes numériques, vous pouvez obtenir .f(x)=x2x=0x=1.1234×1020

Maintenant, il est important de comprendre comment fonctionnent ces méthodes itératives. Le concept clé est de savoir comment mettre à jour vos paramètres d'entrée pour obtenir une meilleure solution. Supposons que vous souhaitiez minimiser(notez que cette fonction de coût n'est pas différenciable partout, mais qu'elle est différenciable dans "la plupart des endroits", cela nous suffit, car nous savons comment mettre à jour dans "la plupart des endroits".), vous êtes actuellement à , et le coût est de , maintenant vous voulez mettre à jour pour rendre la fonction objectif plus petite. Comment feriez-vous cela? Vous pouvez dire que je veux diminuer les deux , mais pourquoi? En fait, vous utilisez implicitementf(x1,x2)=x12+x22+|x1+x2|(1,1)4.0(x1,x2)x1 x2le concept de gradient "changer une petite quantité de , ce qui se passera sur ". xy. Dans , la dérivée est , donc le gradient négatif multiplié par un taux d'apprentissage, disons , est , nous avons donc mis à jour notre solution de à qui ont un meilleur coût.(1,1)(3,3)α=0.0011 , 1 ( 0,997 , 0,997 )(0.003,0.003)1,1(0.997,0.997)


plus d'informations peuvent être trouvées dans cet article
Haitao Du

4

L'approche que vous avez mentionnée ne peut être utilisée que pour résoudre un ensemble d'équations linéaires, par exemple dans le cas de la régression linéaire, mais disons pour résoudre un ensemble d'équations non linéaires, dans des cas tels que les réseaux de neurones avec des activations sigmoïdes, la descente en gradient est l'approche aller pour. Ainsi, Gradient Descent est une approche plus générique.

Même pour les équations linéaires, la taille des matrices donnée par l'ensemble des équations linéaires i est énorme, et il peut être difficile de contraindre les besoins en mémoire.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.