Pourquoi la méthode de Newton n'est-elle pas largement utilisée dans l'apprentissage automatique?


132

C'est quelque chose qui me dérange depuis un moment et je ne trouvais pas de réponses satisfaisantes en ligne, alors voici:

Après avoir passé en revue un ensemble de conférences sur l'optimisation convexe, la méthode de Newton semble être un algorithme bien supérieur à la descente de gradient pour trouver des solutions globalement optimales, car la méthode de Newton peut fournir une garantie pour sa solution, elle est invariante affine et converge surtout vers beaucoup moins d'étapes. Pourquoi les algorithmes d'optimisation de second ordre, tels que la méthode de Newton, ne sont-ils pas aussi largement utilisés que la descente de gradient stochastique dans les problèmes d'apprentissage machine?


24
Pour les réseaux de neurones, deeplearningbook.org Section "8.6 Méthodes approximatives de second ordre" donne un bon aperçu. En résumé "Au-delà des défis créés par certaines caractéristiques de la fonction objectif, telles que les points de selle, l'application de la méthode de Newton pour la formation de grands réseaux neuronaux est limitée par la charge de calcul considérable qu'elle impose." Il existe des alternatives qui tentent de tirer parti des avantages de la méthode de Newton tout en contournant les obstacles informatiques, mais elles ont leurs propres problèmes.
Franck Dernoncourt

1
voir cette question et ces commentaires, stats.stackexchange.com/questions/232305/…
Haitao Du

1
Notez que les autres commentaires ont une applicabilité plus large à l'apprentissage automatique, au-delà du "apprentissage en profondeur". Cependant, si tous les problèmes de ML peuvent avoir tendance à être des "données massives", ils ne sont pas tous nécessairement de "grandes caractéristiques" (c.-à-d. De nombreux paramètres à ajuster), bien que l'apprentissage en profondeur le soit invariablement.
GeoMatt22

1
Il est à noter que dans l'apprentissage machine en dehors de l'apprentissage en profondeur, L-BFGS (qui, grosso modo, est proche de la méthode de Newton) est un algorithme d'optimisation assez commun.
Dougal le

2
La méthode de Newton suppose la convexité, les problèmes de ML modernes (réseaux neutres) ne sont vraisemblablement pas convexes, bien qu’il s’agisse là d’un domaine de recherche ouvert. Par conséquent, la méthode de Newton est probablement un aussi mauvais estimateur que linéaire, sauf si le point de calcul est proche. Vous gagnerez probablement très peu pour une augmentation quadratique du calcul. Cela dit, une conférence tenue récemment à Berkeley avait un présentateur qui continuait à montrer les progrès réalisés dans l'utilisation de méthodes de second ordre, de sorte que rien n'est mort.
David Parks

Réponses:


95

NN2


5
Il est à noter que les méthodes basées sur la méthode de Gauss-Newton sont probablement plus courantes. Ceci est une spécialisation de Newton aux moindres carrés non linéaires.
GeoMatt22

4
Je n'appellerais pas Gauss-Newton une spécialisation de Newton aux moindres carrés non linéaires. J'appellerais cela une approximation bâtarde de Newton pour les moindres carrés non linéaires, qui utilise une approximation de Hessian plus imprécise, plus les résidus dans les équations ajustées sont grands, et en conséquence, plus l'argument est fondé sur l'optimalité.
Mark L. Stone

1
@ MarkL.Stone bon point, j'essayais de ne pas entrer dans les détails techniques :) Il est vrai que les méthodes de style Gauss-Newton essaient de "simuler" le second ordre avec seulement les informations du 1er ordre. Personnellement, je n'ai jamais utilisé de méthodes de Newton pour l'optimisation, juste des méthodes de Gauss-Newton (ou LM ou ~ similaire UKF) ou DFO-SQP (par exemple, BOBYQA ). "L'optimalité" est une question délicate, je dirais ... pour un problème de ML, par opposition à un problème d'optimisation de la conception technique, la fiabilité / l'informativité d'un "hessien local" peut être douteuse. Peut-être que le MPO-SQP non local est ~ un "Newton stochastique"? (par exemple "en ligne")
GeoMatt22

1
À la réflexion, les approches du MPO-SQP ont tendance à être non locales dans l' espace des paramètres , plutôt que des lots de données. L' UKF est peut-être la saveur la plus proche de "Newton stochastique" car elle est en ligne avec une mémoire limitée ... mais elle suppose en fait un hessien positif défini (c'est-à-dire gaussien environ).
GeoMatt22

1
En réalité, c'est une raison fallacieuse, car il existe des méthodes de second ordre comme CG qui n'exigent pas de calculer le hessian. k itérations de CG ne coûteront que kN. Il est exact que CG ne mettrait théoriquement en correspondance Newton que lorsque k = N, mais vous n’avez vraiment pas besoin de tant d’itérations.
user25322

40

Davantage de personnes devraient utiliser la méthode de Newton en apprentissage automatique *. Je dis cela en tant que personne ayant une formation en optimisation numérique, qui a touché à l'apprentissage automatique au cours des deux dernières années.

Les inconvénients des réponses ici (et même dans la littérature) ne sont pas un problème si vous utilisez correctement la méthode de Newton. De plus, les inconvénients qui en découlent ralentissent également la descente de gradient d’un montant égal ou supérieur, mais par le biais de mécanismes moins évidents.

  • L'utilisation de la recherche de lignes dans les conditions de Wolfe ou l'utilisation de ou de régions de confiance empêche la convergence vers les points d'équilibre. Une mise en œuvre appropriée de la descente de gradient devrait également le faire. Le document référencé dans la réponse de Cam.Davidson.Pilon signale des problèmes avec la "méthode de Newton" en présence de points de selle, mais le correctif qu’ils préconisent est également une méthode de Newton.

  • Utiliser la méthode de Newton ne nécessite pas de construire le hessien entier (dense); vous pouvez appliquer l'inverse de la hesse à un vecteur à l'aide de méthodes itératives n'utilisant que des produits matriciels (par exemple, les méthodes de Krylov telles que le gradient conjugué). Voir, par exemple, la méthode de région de confiance CG-Steihaug.

  • Vous pouvez calculer efficacement les produits matriciels hessiens en résolvant deux équations adjointe d'ordre supérieur de la même forme que l'équation adjointe déjà utilisée pour calculer le gradient (par exemple, le travail de deux étapes de rétropropagation dans la formation d'un réseau neuronal).

  • Un mauvais conditionnement ralentit la convergence des solveurs linéaires itératifs, mais il ralentit également ou moins bien la descente de gradient. Utiliser la méthode de Newton au lieu de la descente de gradient déplace la difficulté du stade d'optimisation non linéaire (où l'on ne peut pas faire grand chose pour améliorer la situation) au stade de l'algèbre linéaire (où on peut l'attaquer avec tout l'arsenal de techniques de préconditionnement d'algèbre linéaire numérique).

  • En outre, le calcul passe de "nombreuses étapes peu coûteuses" à "quelques étapes coûteuses", ouvrant davantage de possibilités de parallélisme au niveau des sous-étapes (algèbre linéaire).

Pour des informations générales sur ces concepts, je recommande le livre "Optimisation numérique" de Nocedal et Wright.

* Bien sûr, la méthode de Newton ne vous aidera pas avec L1 ou d’autres fonctions de pénalité similaires de compression / promotion de la compression, car elles n’ont pas la douceur requise.


2
Je pense que nous sommes violemment en accord les uns avec les autres, pas avec tous les autres.
Mark L. Stone

1
Cela revient à comparer si le Royaume-Uni ou les États-Unis produisent de meilleurs mathématiciens spécialisés dans la recherche en comparant les aptitudes en mathématiques des décrocheurs du cycle secondaire des toxicomanes de 26 ans, plutôt qu'en comparant les meilleurs étudiants en mathématiques issus des meilleures écoles du pays. Le papier est signé, scellé et remis, personne, et je veux dire que personne ne le change ou le retire maintenant. Incroyable.
Mark L. Stone

3
@ MarkL.Stone Il semble qu'une conversation ait eu lieu ici et a été supprimée pendant mon absence. Quoi qu'il en soit, je pense que vous avez raison de dire que nous sommes d'accord les uns avec les autres et avec personne d'autre. Je suppose que cela est à prévoir en fonction de nos antécédents par rapport aux autres personnes ici. Comme vous vous en doutez probablement, je ne pense pas beaucoup au document lié. D'autre part, je pense effectivement que la méthode de Newton multiple de Riemannian , dans laquelle on tire une trajectoire géodésique dans une direction de recherche de Newton, est une technique très prometteuse pour des problèmes très difficiles.
Nick Alger

2
Comment feriez-vous avec un grand ensemble de formation? Si vous avez par exemple 1 million d'échantillons d'apprentissage, alors pour évaluer l'objectif d'optimisation actuel, il faut tester 1 million d'échantillons. Et vous devez le faire plusieurs fois lors d'une recherche en ligne. Ainsi, au moment où vous avez effectué 1 étape en Newton, la descente de gradient stochastique aura effectué quelques millions de mises à jour.
Nikie

2
Nick et @ MarkL.Stone: Parlez-vous essentiellement de cette approche ? C'est quelque chose qui était brièvement populaire dans l'apprentissage en profondeur, en particulier pour les réseaux récurrents, mais est depuis tombé en disgrâce, je suppose, parce que cela ne fonctionnait tout simplement pas mieux que les méthodes à gradients adaptatifs. S'ils faisaient juste quelque chose de mal, et que vous corrigez quoi que ce soit et que vous montriez qu'il est généralement supérieur à la variante standard actuelle de SGD, Adam, vous pourriez avoir un impact important: le document Adam a reçu 1345 citations en deux ans ...
Dougal

33

J'ai récemment appris cela moi-même - le problème est la prolifération de points de selle dans un espace de grande dimension, vers lequel les méthodes de Newton veulent converger. Voir cet article: Identifier et attaquer le problème du point de selle dans l'optimisation non convexe de grande dimension .

En effet, le rapport entre le nombre de points de selle et les minima locaux augmente de façon exponentielle avec la dimensionnalité N.

Alors que la dynamique de descente de gradient est repoussée par un point de selle vers une erreur plus basse en suivant les directions de courbure négative, ... la méthode de Newton ne traite pas les points de selle de manière appropriée; comme expliqué ci-dessous, les points de selle deviennent attrayants sous la dynamique de Newton.


3
Pourriez-vous ajouter une explication à cela? En théorie, la méthode de Newton préforme une descente de gradient pondérée avec des poids "optimaux" pour chacun des vecteurs propres.
nbubis

4
Ce que cet article dit à propos des méthodes de Newton "vouloir" converger vers les points d'équilibre n'est vrai que pour les implémentations de la méthode de Newton.
Mark L. Stone

Le document reparamètre le problème en termes de valeurs propres et de vecteurs propres et l'utilise pour montrer que la descente de gradient s'éloigne d'un point de selle: il se déplace vers le point de selle dans la direction des vecteurs e négatifs, mais s'éloigne dans la direction de vecteurs électroniques positifs, de sorte qu’il quitte finalement le point de selle. Newton, d'autre part, n'a aucune telle garantie.
Elizabeth Santorella

Le nouvel algorithme qu'ils préconisent dans cet article est cependant (une variante de) la méthode de Newton. c'est fondamentalement la méthode de Newton pour les directions de courbure positive et la méthode de Newton négative pour les directions de courbure négative.
Nick Alger

26

Une combinaison de deux raisons:

  • La méthode de Newton attire les points de selle;
  • Les points de selle sont courants dans l'apprentissage automatique, ou en fait, dans toute optimisation multivariable.

f=x2y2
entrez la description de l'image ici

xn+1=xn[Hf(xn)]1f(xn)

H=[2fx122fx1x22fx1xn2fx2x12fx222fx2xn2fxnx12fxnx22fxn2].

H=[2002]

[Hf]1=[1/2001/2]

f=[2x2y]

[xy]n+1=[xy]n[1/2001/2][2xn2yn]=[xy]n[xy]n=[00]

x=0,y=0

En revanche, la méthode de descente de gradient ne mènera pas au point de selle. La pente est nulle au niveau de la selle, mais un petit pas en arrière détournerait l'optimisation, comme vous pouvez le voir sur la pente ci-dessus - sa pente sur la variable y est négative.


1
Grâce à vous, j'ai effectivement compris comment cette méthode fonctionne de A à Z, alors merci beaucoup pour cet exemple clair!
greenoldman

Quel serait le point favori ici?
Ben

14

Vous avez posé deux questions: pourquoi davantage de personnes n'utilisent-elles pas la méthode de Newton et pourquoi tant de personnes utilisent-elles la descente de gradient stochastique? Ces questions ont des réponses différentes, car de nombreux algorithmes réduisent le fardeau informatique de la méthode de Newton, mais fonctionnent souvent mieux que SGD.

HO(N2)NgO(N)H1gO(N3)pour calculer. Ainsi, bien que le calcul de la Hesse coûte cher, l'inverser ou résoudre les moindres carrés est souvent pire. (Si vous avez des caractéristiques rares, les asymptotiques regarder mieux, mais d' autres méthodes aussi effectuer mieux, donc sparsity ne fait pas Newton relativement plus attrayante.)

Deuxièmement, de nombreuses méthodes, pas seulement la descente de gradient, sont utilisées plus souvent que Newton; ils sont souvent des imitations de la méthode de Newton, en ce sens qu'ils se rapprochent d'une étape de Newton à un coût de calcul par étape inférieur, mais prennent plus d'itérations pour converger. Quelques exemples:

  • H1

  • O(N2)

  • Lorsque vous ne voulez pas du tout vous approcher des dérivées secondes, la descente de gradient est attrayante car elle utilise uniquement des informations de premier ordre. La descente de gradient est implicitement approximative du hessien inverse lorsque le taux d’apprentissage est multiplié par la matrice d’identité. Personnellement, j’utilise rarement la descente de gradient: L-BFGS est tout aussi facile à mettre en oeuvre, puisqu’il ne nécessite que de spécifier la fonction objectif et le gradient; l'approximation hessienne inverse est meilleure que la descente de gradient; et parce que la descente de gradient nécessite d’ajuster le taux d’apprentissage.

  • Parfois, vous avez un très grand nombre d'observations (points de données), mais vous pourriez presque aussi bien apprendre d'un nombre d'observations plus petit. Dans ce cas, vous pouvez utiliser des "méthodes de traitement par lots", comme la descente de gradient stochastique, qui défilent en utilisant des sous-ensembles d'observations.


(+1) Il convient de noter que L-BFGS est du même ordre de complexité que la descente de gradient en ce qui concerne le nombre de paramètres. Ce n'est pas le cas pour BFGS. Donc, ce n’est pas seulement la partie à mémoire limitée de L-BFGS qui le rend attrayant.
Cliff AB

12

Il est moins coûteux de calculer la direction de descente de gradient et effectuer une recherche de ligne dans cette direction est une source de progrès plus fiable et régulière vers un optimum. En bref, la descente de gradient est relativement fiable.

La méthode de Newton est relativement coûteuse dans la mesure où vous devez calculer le hessien à la première itération. Ensuite, à chaque itération suivante, vous pouvez recalculer complètement le Hessian (comme dans la méthode de Newton) ou simplement "mettre à jour" le Hessian de l'itération précédente (dans les méthodes quasi-Newton), qui est meilleur marché mais moins robuste.

Dans le cas extrême d'une fonction très sage, en particulier d'une fonction parfaitement quadratique, la méthode de Newton l'emporte clairement. Si c'est parfaitement quadratique, la méthode de Newton convergera en une seule itération.

Dans le cas contraire d'une fonction très mal conduite, la descente de gradient aura tendance à l'emporter. Il choisira une direction de recherche, effectuera une recherche dans cette direction et, finalement, franchira une étape petite mais productive. En revanche, la méthode de Newton aura tendance à échouer dans ces cas, surtout si vous essayez d'utiliser les approximations quasi-newtoniennes.

Entre la descente de gradient et la méthode de Newton, il existe des méthodes telles que l'algorithme de Levenberg – Marquardt (LMA), bien que j'ai vu les noms un peu confus. L’essentiel est d’utiliser une recherche plus informée sur la descente lorsque les choses sont chaotiques et confuses, puis de passer à une recherche plus informée par la méthode de Newton lorsque les choses deviennent plus linéaires et fiables.


3
Boy, vous devez utiliser des implémentations terribles de Newton et Quasi-Newton. Si vous utilisez soit avec une hessienne définie non positive, utilisez des régions de confiance ou effectuez une recherche linéaire le long de la direction de courbure négative. Si c'est le cas, ils sont PLUS fiables que la descente la plus raide (c'est-à-dire la descente de gradient avec recherche de ligne ou région de confiance). En bref, la descente gradiewnt est beaucoup moins fiable qu'une méthode Quasi-Newton correctement mise en œuvre, qui est moins fiable qu'une méthode Newton correctement mise en œuvre. Le temps de calcul et les besoins en mémoire par itération diffèrent toutefois.
Mark L. Stone

4
Je pense que vous voulez dire fonction parfaitement quadratique. C'est-à-dire que la méthode de Newton converge en une seule itération avec une fonction objectif quadratique, qui a un gradient linéaire.
Elizabeth Santorella

1
@ElizabethSantorella: Ouais, vous avez raison! J'ai mis à jour la réponse.
Nat

2
1/2xTx

1
J'ai fait mon cas. si vous voulez penser à la descente la plus raide, la descente de gradient est merveilleuse, en particulier sur les fonctions mal comportées, c'est votre affaire. Assommez-vous.
Mark L. Stone

7

Hd=g

La méthode de Newton fonctionne bien à l'approche d'une solution ou si le Hessian varie lentement, mais nécessite quelques astuces pour faire face au manque de convergence et au manque de précision.

Souvent, une amélioration est recherchée plutôt qu'une solution exacte, auquel cas le coût supplémentaire de méthodes de type Newton ou de type Newton n'est pas justifié.

Il existe différentes manières d’améliorer ce qui précède, telles que les méthodes de métrique variable ou de région de confiance.

Il convient de noter que dans de nombreux problèmes, l’échelle est un problème essentiel et le Hessian fournit d’excellentes informations sur l’échelle, bien qu’à un coût. Si l'on peut se rapprocher de la Hesse, cela peut souvent améliorer considérablement les performances. Dans une certaine mesure, la méthode de Newton fournit la "meilleure" mise à l'échelle en ce qu'elle est invariante affine.


0

L'utilisation de la méthode de Newton pour SGD soulève de nombreuses difficultés, notamment:

  • il a besoin d’une matrice de Hesse - comment l’estimer par exemple à partir de gradients bruyants avec une précision suffisante à un coût raisonnable?

  • full Hessian est trop coûteux - nous avons plutôt besoin de certaines restrictions, par exemple à un sous-espace (quel sous-espace?),

  • H1λ=0

  • La méthode de Newton attire directement le point de fermeture avec un gradient nul ... qui est généralement une selle ici. Comment les repousser à la place? Par exemple, Newton sans sellerie inverse les directions de courbure négatives, mais il faut contrôler les signes de valeurs propres,

  • ce serait bien de le faire en ligne - au lieu de faire beaucoup de calculs en un seul point, essayez de le scinder en plusieurs petites étapes exploitant davantage d'informations locales.

Nous pouvons passer du 1er ordre au 2ème ordre par petites étapes. Par exemple, en ajoutant la mise à jour de seulement 3 moyennes à la méthode momentum, nous pouvons simultanément ajuster MSE à la parabole dans son sens pour un choix plus judicieux de la taille de pas ... peut toujours utiliser les coordonnées restantes pour une descente simultanée du gradient.

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.