Quand utiliser la descente en pente vs Monte Carlo comme technique d'optimisation numérique

11

Lorsqu'un ensemble d'équations ne peut pas être résolu analytiquement, alors nous pouvons utiliser un algorithme de descente de gradient. Mais il semble qu'il y ait aussi la méthode de simulation de Monte Carlo qui peut être utilisée pour résoudre des problèmes qui n'ont pas de solutions analytiques.

Comment savoir quand utiliser la descente en pente et quand utiliser Monte Carlo? Ou suis-je simplement en train de confondre le terme «simulation» avec «optimisation»?

Merci beaucoup!

Victor
la source

Réponses:

4

Ces techniques font des choses différentes.

La descente en gradient est une technique d'optimisation, elle est donc courante dans toute méthode statistique qui nécessite une maximisation (MLE, MAP).

La simulation de Monte Carlo permet de calculer des intégrales en échantillonnant à partir d'une distribution et en évaluant une fonction sur les échantillons. Par conséquent, il est couramment utilisé avec des techniques qui nécessitent le calcul des attentes (Inférence Bayésienne, Test d'Hypothèse Bayésienne).

jlimahaverford
la source
La descente de gradient est donc liée à la différenciation (maxima, minima) et le Monte Carlo est associé à l'intégration?
Victor
Le gradient est une (parmi plusieurs) généralisation de la dérivée. La descente de gradient est donc liée à la différenciation. Mais je dirais: «Gradient Descent utilise des dérivés pour l'optimisation» et «Monte Carlo utilise l'échantillonnage pour l'intégration», si je devais utiliser le moins de mots possible.
jlimahaverford du
4

Ce sont deux énormes familles d'algorithmes, il est donc difficile de vous donner une réponse précise, mais ...

La montée (ou la descente) en gradient est utile lorsque vous souhaitez trouver un maximum (ou un minimum). Par exemple, vous pouvez rechercher le mode d'une distribution de probabilité ou une combinaison de paramètres qui minimisent une fonction de perte. Le "chemin" qu'il faut pour trouver ces extrema peut vous en dire un peu plus sur la forme générale de la fonction, mais ce n'est pas le cas; en fait, mieux cela fonctionne, moins vous en saurez sur tout sauf les extrema.

Les méthodes de Monte-Carlo sont nommées d'après le casino de Monte-Carlo car elles, comme le casino, dépendent de la randomisation. Il peut être utilisé de différentes manières, mais la plupart d'entre elles se concentrent sur l'approximation des distributions. Les algorithmes de Markov Chain Monte Carlo, par exemple, trouvent des moyens d'échantillonner efficacement à partir de distributions de probabilités complexes. D'autres simulations de Monte Carlo pourraient générer des distributions sur les résultats possibles.

Matt Krause
la source
Les «méthodes de Monte Carlo» font généralement référence à ce que vous faites avec les échantillons par opposition aux méthodes d'obtention des échantillons. Dans MCMC, la «chaîne de Markov» fait référence au processus d'obtention des échantillons.
jlimahaverford
Vraiment? J'ai toujours pensé que Monte Carlo implique qu'il y a une sorte de randomisation en cours et ne signifie pas beaucoup plus que cela. Dans MCMC, il est vrai que les chaînes de Markov sont impliquées, mais vous échantillonnez également au hasard dans les chaînes (d'où Monte-Carlo) /
Matt Krause
C'est peut-être une question d'opinion. Si j'utilisais MCMC pour approximer la moyenne d'une distribution postérieure, j'utiliserais des marches aléatoires sur une chaîne de Markov pour échantillonner approximativement de ma distribution non normalisée, j'utiliserais l'intégration de Monte Carlo pour approximer la moyenne. Je considère les méthodes d'échantillonnage comme des outils qui permettent les méthodes de Monte Carlo. Par exemple, je n'appellerais pas l'échantillonnage par rejet une méthode de Monte Carlo, mais je peux imaginer que quelqu'un les utilise ensemble.
jlimahaverford
Cela étant dit, Wikipedia considère l'échantillonnage par rejet comme une méthode de Monte Carlo. Il est donc tout à fait possible que mes idées ici soient complètement fausses.
jlimahaverford
2

Comme expliqué par d'autres, la descente / montée en gradient effectue une optimisation, c'est-à-dire trouve le maximum ou le minimum d'une fonction. Monte Carlo est une méthode de simulation stochastique, c'est-à-dire qui rapproche une fonction de distribution cumulative par échantillonnage aléatoire répété. Ceci est également appelé "intégration Monte Carlo" car le cdf d'une distribution continue est en fait une intégrale.

Ce qui est commun entre la descente de gradient et Monte Carlo, c'est qu'ils sont tous deux particulièrement utiles dans les problèmes où il n'existe aucune solution de forme fermée. Vous pouvez utiliser une différenciation simple pour trouver le point maximum ou minimum de toute fonction convexe chaque fois qu'une solution analytique est faisable. Lorsqu'une telle solution n'existe pas, vous devez utiliser une méthode itérative telle que la descente de gradient. Il en va de même pour la simulation de Monte Carlo; vous pouvez essentiellement utiliser une intégration simple pour calculer n'importe quel cdf analytiquement, mais il n'y a aucune garantie qu'une telle solution sous forme fermée sera toujours possible. Le problème redevient résoluble avec la simulation de Monte Carlo.

Pouvez-vous utiliser la descente de gradient pour la simulation et Monte Carlo pour l'optimisation? La réponse simple est non. Monte Carlo a besoin d'un élément stochastique (une distribution) pour échantillonner et la descente de gradient n'a aucun moyen de gérer les problèmes d'information stochastique. Vous pouvez cependant combiner simulation et optimisation afin de produire des algorithmes d'optimisation stochastique plus puissants, capables de résoudre des problèmes très complexes qu'une simple descente de gradient ne peut pas résoudre. Un exemple de ceci serait Simulated Annealing Monte Carlo.

Digio
la source
2

Cette réponse est partiellement fausse. Vous pouvez en effet combiner des méthodes Monte Carlo avec une descente en gradient. Vous pouvez utiliser des méthodes de Monte Carlo pour estimer le gradient d'une fonction de perte, qui est ensuite utilisée par descente de gradient pour mettre à jour les paramètres. Une méthode de Monte Carlo populaire pour estimer le gradient est l' estimateur du gradient de score , qui peut par exemple être utilisé dans l'apprentissage par renforcement. Voir Monte Carlo Gradient Estimation in Machine Learning (2019) par Shakir Mohamed et al. pour plus d'informations.

nbro
la source