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!
la source
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.
la source
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.
la source
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.
la source