Pour les problèmes convexes, le gradient en descente de gradient stochastique (SGD) pointe-t-il toujours vers la valeur extrême globale?

25

Étant donné une fonction de coût convexe, en utilisant SGD pour l'optimisation, nous aurons un gradient (vecteur) à un certain point au cours du processus d'optimisation.

Ma question est, étant donné le point sur le convexe, le gradient ne pointe-t-il que vers la direction dans laquelle la fonction augmente / diminue le plus rapidement, ou le gradient pointe toujours vers le point optimal / extrême de la fonction de coût ?

Le premier est un concept local, le second est un concept global.

SGD peut finalement converger vers la valeur extrême de la fonction de coût. Je m'interroge sur la différence entre la direction du gradient étant donné un point arbitraire sur le convexe et la direction pointant vers la valeur extrême globale.

La direction du gradient doit être la direction à laquelle la fonction augmente / diminue le plus rapidement sur ce point, non?

Tyler 十三 将士 归 玉门
la source
6
Avez-vous déjà marché directement en descendant d'une crête de montagne, pour vous retrouver dans une vallée qui continue de descendre dans une direction différente? Le défi est d'imaginer une telle situation avec une topographie convexe: pensez à un tranchant de couteau où l'arête est la plus raide au sommet.
whuber
4
Non, car c'est une descente de gradient stochastique, pas une descente de gradient. Tout l'intérêt de SGD est que vous jetez certaines des informations de gradient en échange d'une efficacité de calcul accrue - mais évidemment, en jetant certaines des informations de gradient, vous n'allez plus avoir la direction du gradient d'origine. Cela ignore déjà la question de savoir si les points de gradient réguliers dans la direction de la descente optimale, mais le point étant, même si la descente de gradient régulière l'a fait, il n'y a aucune raison de s'attendre à ce que la descente de gradient stochastique le fasse.
Chill2Macht
3
@Tyler, pourquoi votre question concerne-t-elle spécifiquement la descente de gradient stochastique ? Imaginez-vous quelque chose de différent par rapport à la descente à gradient standard?
Sextus Empiricus
2
Le gradient pointera toujours vers l'optimum dans le sens où l'angle entre le gradient et le vecteur à l'optimum aura un angle inférieur à , et en marchant dans la direction du gradient une quantité infinitésimale sera vous rapprocher de l'optimum. π2
Rétablir Monica le
5
Si le gradient pointait directement vers un minimiseur global, l'optimisation convexe deviendrait super facile, car nous pourrions alors simplement faire une recherche de ligne unidimensionnelle pour trouver un minimiseur global. C'est trop à espérer.
littleO

Réponses:

36

Ils disent qu'une image vaut plus que mille mots. Dans l'exemple suivant (gracieuseté de MS Paint, un outil pratique pour les statisticiens amateurs et professionnels), vous pouvez voir une surface de fonction convexe et un point où la direction de la descente la plus raide diffère clairement de la direction vers l'optimum.

Une image d'une fonction convexe allongée et des flèches montrant que la direction de la descente la plus raide n'est pas la même que la direction vers l'optimum global

Sur une note sérieuse: il y a des réponses bien supérieures dans ce fil qui méritent également un vote positif.

Jan Kukacka
la source
27
Et le contre-exemple d'aujourd'hui est ... un avocat!
JDL
11
Vous voyez qu'en coupant un avocat, vous devez couper dans la direction de descente la plus raide pour éviter la graine et une blessure possible .
Jan Kukacka,
28
  • Les méthodes de descente en gradient utilisent la pente de la surface.
  • Cela ne pointera pas nécessairement (ou même très probablement pas) directement vers le point extrême.

Une vue intuitive consiste à imaginer un chemin de descente qui est un chemin courbe. Voir par exemple les exemples ci-dessous.

Par analogie: Imaginez que je vous bandes les yeux et que je vous mette quelque part sur une montagne avec la tâche de revenir au point extrême (bas). Sur la colline, si vous ne disposez que d' informations locales , vous ne savez pas dans quelle direction se trouvera le fond du lac.

Si vous pouvez assumer la convexité

  • Ensuite, vous savez qu'il n'y a qu'un seul point extrême.
  • Ensuite, vous savez que vous allez certainement atteindre le point extrême tant que vous descendez.
  • Et puis vous savez aussi que l'angle entre la direction de descente la plus raide et la direction optimale est toujours au maximumπ/2 , comme le mentionnait le secret de Solomonoff dans les commentaires.

convexe

Sans convexité

  • π/2

    Dans le problème convexe, cela n'est pas possible. Vous pouvez relier cela aux isolignes pour la fonction de coût ayant une courbure dans la même direction lorsque le problème est convexe.

non convexe

En descente de gradient stochastique

  • Vous suivez la direction la plus raide pour un seul point (et vous faites plusieurs fois un pas pour un point différent). Dans l'exemple, le problème est convexe, mais il peut y avoir plusieurs solutions. Dans l'exemple, les valeurs extrêmes sont sur une ligne (au lieu d'un seul point), et de ce point de vue particulier, vous pouvez dire que la direction de descente la plus raide peut pointer directement vers l '"optimum" (bien que ce ne soit que l'optimum pour la fonction de ce point d'échantillonnage de formation particulier)

point unique

Voici une autre vue pour quatre points de données . Chacune des quatre images montre la surface d'un point unique différent. À chaque étape, un point différent est choisi le long duquel le gradient est calculé. Cela fait qu'il n'y a que quatre directions le long desquelles une étape est effectuée, mais les tailles de pas diminuent lorsque nous nous rapprochons de la solution.

descente de gradient stochastique



Les images ci-dessus concernent 4 points de données générés par la fonction:

yi=e0.4xie0.8xi+ϵi

x = 0      2      4      6           
y = 0.006  0.249  0.153  0.098

ce qui se traduit par:

  • S(a,b)=i=1(yi(eaxiebxi))2
    S(a,b)=[i=12xieaxi(yieaxiebxi)i=12xiebxi(yieaxiebxi)]

  • S(a,b)=i=1(yi(ae0.4xibe0.8xi))2
    S(a,b)=[i=12e0.4xi(yiae0.4xibe0.8xi)i=12e0.8xi(yiae0.4xibe0.8xi)]

  • i

    S(a,b)=(yi(ae0.4bxibe0.8xi))2
    S(a,b)=[2e0.4xi(yiae0.4xibe0.8xi)2e0.8xi(yiae0.4xibe0.8xi)]
    abS=0


Écrit par StackExchangeStrike


Sextus Empiricus
la source
17

La descente la plus abrupte peut être inefficace même si la fonction objectif est fortement convexe.

Descente en pente ordinaire

Je veux dire "inefficace" dans le sens où la descente la plus raide peut prendre des mesures qui oscillent énormément loin de l'optimum, même si la fonction est fortement convexe ou même quadratique.

f(x)=x12+25x22x=[0,0]

f(x)=[2x150x2]

α=0.035x(0)=[0.5,0.5],

x(1)=x(0)αf(x(0))

qui présente cette progression follement oscillante vers le minimum.

entrez la description de l'image ici

θ(x(i),x)(x(i),x(i+1))

entrez la description de l'image ici

x2x12f(x)

Le chemin direct vers le minimum serait de se déplacer "en diagonale" plutôt que de cette façon qui est fortement dominée par les oscillations verticales. Cependant, la descente de gradient ne possède que des informations sur la pente locale, donc elle "ne sait pas" que la stratégie serait plus efficace, et elle est soumise aux caprices de la Hesse ayant des valeurs propres à différentes échelles.

Descente de gradient stochastique

SGD a les mêmes propriétés, à l'exception du fait que les mises à jour sont bruyantes, ce qui implique que la surface du contour est différente d'une itération à l'autre, et donc les gradients sont également différents. Cela implique que l'angle entre la direction du pas de gradient et l'optimum aura également du bruit - imaginez les mêmes tracés avec un peu de gigue.

Plus d'information:


Cette réponse emprunte cet exemple et cette figure au Neural Networks Design (2nd Ed.) Chapter 9 de Martin T. Hagan, Howard B. Demuth, Mark Hudson Beale, Orlando De Jesús.

Sycorax dit de réintégrer Monica
la source
13

La direction locale la plus raide n'est pas la même que la direction optimale globale. Si c'était le cas, alors la direction de votre gradient ne changerait pas; car si vous allez toujours vers votre optimum, votre vecteur de direction pointera toujours vers l'optimum. Mais ce n'est pas le cas. Si c'était le cas, pourquoi se donner la peine de calculer votre gradient à chaque itération?

gunes
la source
3

Les autres réponses mettent en évidence des problèmes de taux de convergence gênants pour GD / SGD, mais votre commentaire "SGD peut éventuellement converger ..." n'est pas toujours correct (en ignorant les remarques pédantes sur le mot "peut" car il semble que vous vouliez dire "volonté").

(x0,y0)=(1,0)
α
f(x,α)=α2αx.

(f(x0,α)y0)2=α2α,
β
αn+1=αnβ(2αn1)=αn(2αn1)=1αn.
α=12p=12p1p

Je ne sais pas si la convexité est suffisante pour briser un comportement pire qui existe pour SGD général, mais si vous autorisez des fonctions aussi complexes que cubiques pour votre fonction de coût, alors SGD peut rebondir sur un sous-ensemble dense du domaine et ne jamais converger nulle part ou approcher n'importe quel cycle.

±

Une chose intéressante à propos de l'ensemble de la situation est qu'il existe un nombre incalculable de fonctions (comme SGD) qui prennent des fonctions convexes arbitraires en entrée puis émettent une règle de mise à jour qui converge toujours rapidement vers le minimum global (s'il en existe une). Même s'il existe conceptuellement beaucoup d'entre eux, nos meilleures tentatives d'optimisation convexe ont toutes des contre-exemples pathologiques. D'une certaine manière, l'idée d'une règle de mise à jour simple / intuitive / performante va à l'encontre de l'idée d'une règle de mise à jour prouvée correcte.

Hans Musgrave
la source
1
β=1
1
Notez que la preuve de convergence SGD suppose une taille de pas décroissante ...
Jan Kukacka
@MartijnWeterings Bonne observation. Je suppose que mon exemple indique en fait la bonne direction. Dois-je le mettre à jour avec un exemple 2D qui ne pointe jamais dans la bonne direction et diverge?
Hans Musgrave
β=1β>0βf(x,α)=α2αxβ.
fβ
2

Peut-être que les réponses à cette question nécessitent une mise à jour rapide. Il semble que SGD donne un minimum global également dans le cas non convexe (convexe est juste un cas spécial de cela):

SGD converge vers un minimum mondial en apprentissage profond via Star-Convex Path, auteurs anonymes , article en double aveugle à l'ICLR 2019

https://openreview.net/pdf?id=BylIciRcYQ

Les auteurs établissent la convergence de SGD à un minimum global pour les problèmes d'optimisation non convexes qui sont couramment rencontrés dans la formation des réseaux de neurones. L'argument exploite les deux propriétés importantes suivantes: 1) la perte d'entraînement peut atteindre une valeur nulle (approximativement); 2) SGD suit un chemin convexe en étoile. Dans un tel contexte, bien que SGD ait longtemps été considéré comme un algorithme randomisé, l'article révèle qu'il converge de manière intrinsèquement déterministe vers un minimum global.

Cela devrait être pris avec un grain de sel. Le document est toujours en cours d'examen.

La notion de trajectoire convexe en étoile donne une indication sur l'endroit où le gradient pointe à chaque itération.

Tolga Birdal
la source