Tweet Share Share

Les méthodes de Monte Carlo sont une classe de techniques d’échantillonnage aléatoire d’une distribution de probabilité.

Il existe de nombreux domaines problématiques où la description ou l’estimation de la distribution de probabilité est relativement simple, mais où le calcul d’une quantité désirée est intraitable. Cela peut être dû à de nombreuses raisons, telles que la nature stochastique du domaine ou un nombre exponentiel de variables aléatoires.

Au lieu de cela, une quantité désirée peut être approchée en utilisant un échantillonnage aléatoire, appelé méthodes de Monte Carlo. Ces méthodes ont été initialement utilisées à peu près au moment où les premiers ordinateurs ont été créés et restent omniprésentes dans tous les domaines de la science et de l’ingénierie, y compris l’intelligence artificielle et l’apprentissage automatique.

Dans ce billet, vous découvrirez les méthodes de Monte Carlo pour l’échantillonnage des distributions de probabilité.

Après avoir lu ce billet, vous saurez :

  • Souvent, nous ne pouvons pas calculer une quantité désirée en probabilité, mais nous pouvons définir les distributions de probabilité pour les variables aléatoires directement ou indirectement.
  • L’échantillonnage de Monte Carlo une classe de méthodes pour l’échantillonnage aléatoire à partir d’une distribution de probabilité.
  • L’échantillonnage de Monte Carlo fournit la base de nombreuses méthodes d’apprentissage automatique telles que le rééchantillonnage, l’ajustement des hyperparamètres et l’apprentissage d’ensemble.

Démarrez votre projet avec mon nouveau livre Probability for Machine Learning, qui comprend des tutoriels étape par étape et les fichiers de code source Python pour tous les exemples.

Démarrons.

Une douce introduction à l’échantillonnage de Monte Carlo pour les probabilités
Photo par Med Cruise Guide, certains droits réservés.

Aperçu

Ce tutoriel est divisé en trois parties ; ce sont :

  1. Nécessité de l’échantillonnage
  2. Que sont les méthodes de Monte Carlo ?
  3. Exemples de méthodes de Monte Carlo

Besoin d’échantillonnage

Il existe de nombreux problèmes en probabilité, et plus largement en apprentissage automatique, pour lesquels nous ne pouvons pas calculer directement une solution analytique.

En fait, il peut y avoir un argument selon lequel l’inférence exacte peut être intraitable pour la plupart des modèles probabilistes pratiques.

Pour la plupart des modèles probabilistes d’intérêt pratique, l’inférence exacte est intraitable, et nous devons donc recourir à une certaine forme d’approximation.

– Page 523, Pattern Recognition and Machine Learning, 2006.

Le calcul souhaité est typiquement une somme d’une distribution discrète ou une intégrale d’une distribution continue et est intraitable à calculer. Le calcul peut être intraitable pour de nombreuses raisons, telles que le grand nombre de variables aléatoires, la nature stochastique du domaine, le bruit dans les observations, le manque d’observations, et plus encore.

Dans les problèmes de ce type, il est souvent possible de définir ou d’estimer les distributions de probabilité des variables aléatoires impliquées, soit directement, soit indirectement via une simulation informatique.

Au lieu de calculer directement la quantité, on peut utiliser l’échantillonnage.

L’échantillonnage fournit un moyen flexible d’approximer de nombreuses sommes et intégrales à un coût réduit.

– Page 590, Deep Learning, 2016.

Les échantillons peuvent être tirés au hasard de la distribution de probabilité et utilisés pour approximer la quantité désirée.

Cette classe générale de techniques d’échantillonnage aléatoire à partir d’une distribution de probabilité est appelée méthodes de Monte Carlo.

Vous voulez apprendre les probabilités pour l’apprentissage automatique

Suivez dès maintenant mon cours intensif gratuit de 7 jours par courriel (avec un exemple de code).

Cliquez pour vous inscrire et obtenir également une version PDF Ebook gratuite du cours.

Téléchargez votre mini-cours gratuit

Qu’est-ce que les méthodes de Monte Carlo ?

Les méthodes de Monte Carlo, ou MC en abrégé, sont une classe de techniques d’échantillonnage aléatoire d’une distribution de probabilité.

Il existe trois raisons principales d’utiliser les méthodes de Monte Carlo pour échantillonner aléatoirement une distribution de probabilité ; ce sont :

  • Estimer la densité, rassembler des échantillons pour approcher la distribution d’une fonction cible.
  • Approximer une quantité, telle que la moyenne ou la variance d’une distribution.
  • Optimiser une fonction, localiser un échantillon qui maximise ou minimise la fonction cible.

Les méthodes de Monte Carlo portent le nom du casino de Monaco et ont été développées pour résoudre des problèmes de physique des particules à peu près au moment du développement des premiers ordinateurs et du projet Manhattan de développement de la première bombe atomique.

C’est ce qu’on appelle une approximation de Monte Carlo, du nom d’une ville d’Europe connue pour ses casinos de jeu cossus. Les techniques de Monte Carlo ont d’abord été développées dans le domaine de la physique statistique – en particulier, lors du développement de la bombe atomique – mais sont maintenant largement utilisées aussi bien en statistique qu’en apprentissage automatique.

– Page 52, Machine Learning : A Probabilistic Perspective, 2012.

Tirer un échantillon peut être aussi simple que de calculer la probabilité d’un événement choisi au hasard, ou peut être aussi complexe que d’exécuter une simulation informatique, cette dernière étant souvent appelée simulation de Monte Carlo.

Des échantillons multiples sont collectés et utilisés pour approcher la quantité désirée.

Selon la loi des grands nombres issue des statistiques, plus le nombre d’essais aléatoires réalisés est important, plus la quantité approchée deviendra précise.

… la loi des grands nombres stipule que si les échantillons x(i) sont i.i.d., alors la moyenne converge presque sûrement vers la valeur attendue

– Page 591, Deep Learning, 2016.

En tant que tel, le nombre d’échantillons permet de contrôler la précision de la quantité que l’on cherche à approximer, souvent limitée par la complexité computationnelle du tirage d’un échantillon.

En générant suffisamment d’échantillons, nous pouvons atteindre le niveau de précision souhaité. La question principale est la suivante : comment générer efficacement des échantillons à partir d’une distribution de probabilité, en particulier en haute dimension ?

– Page 815, Machine Learning : A Probabilistic Perspective, 2012.

De plus, étant donné le théorème de la limite centrale, la distribution des échantillons formera une distribution normale, dont la moyenne peut être prise comme quantité approchée et la variance utilisée pour fournir un intervalle de confiance pour la quantité.

Le théorème central limite nous dit que la distribution de la moyenne , converge vers une distribution normale Cela nous permet d’estimer des intervalles de confiance autour de l’estimation , en utilisant la distribution cumulative de la densité normale.

– Page 592, Deep Learning, 2016.

Les méthodes de Monte Carlo sont définies en fonction de la façon dont les échantillons sont tirés ou des contraintes imposées au processus d’échantillonnage.

Certains exemples de méthodes d’échantillonnage de Monte Carlo comprennent : l’échantillonnage direct, l’échantillonnage par importance et l’échantillonnage par rejet.

  • Échantillonnage direct. Échantillonnage direct de la distribution sans information préalable.
  • Échantillonnage par importance. Échantillonnage à partir d’une approximation plus simple de la distribution cible.
  • Échantillonnage par rejet. Échantillonnage à partir d’une distribution plus large et prise en compte uniquement des échantillons dans une région de la distribution échantillonnée.

C’est un sujet énorme avec de nombreux livres qui lui sont consacrés. Ensuite, rendons l’idée de l’échantillonnage de Monte Carlo concrète avec quelques exemples familiers.

Exemples d’échantillonnage de Monte Carlo

Nous utilisons des méthodes de Monte Carlo tout le temps sans y penser.

Par exemple, lorsque nous définissons une distribution de Bernoulli pour un tirage à pile ou face et que nous simulons un tirage à pile ou face en échantillonnant à partir de cette distribution, nous effectuons une simulation de Monte Carlo. De plus, lorsque nous échantillonnons à partir d’une distribution uniforme pour les entiers {1,2,3,4,5,6} afin de simuler le lancer d’un dé, nous effectuons une simulation de Monte Carlo.

Nous utilisons également la méthode de Monte Carlo lorsque nous recueillons un échantillon aléatoire de données du domaine et que nous estimons la distribution de probabilité des données à l’aide d’un histogramme ou d’une méthode d’estimation de la densité.

Il existe de nombreux exemples d’utilisation des méthodes de Monte Carlo dans toute une série de disciplines scientifiques.

Par exemple, les méthodes de Monte Carlo peuvent être utilisées pour :

  • Calculer la probabilité d’un coup d’un adversaire dans un jeu complexe.
  • Calculer la probabilité d’un événement météorologique dans le futur.
  • Calculer la probabilité d’un accident de véhicule dans des conditions spécifiques.

Ces méthodes sont utilisées pour aborder l’inférence difficile dans des problèmes de probabilité appliquée, tels que l’échantillonnage à partir de modèles graphiques probabilistes.

L’idée de méthodes de Monte Carlo séquentielles utilisées dans les modèles bayésiens qui sont souvent appelées filtres particulaires est liée.

Le filtrage particulaire (FP) est un algorithme de Monte Carlo, ou basé sur la simulation, pour l’inférence bayésienne récursive.

– Page 823, Machine Learning : A Probabilistic Perspective, 2012.

Les méthodes de Monte Carlo sont également omniprésentes dans l’intelligence artificielle et l’apprentissage automatique.

Plusieurs technologies importantes utilisées pour atteindre des objectifs d’apprentissage automatique sont basées sur le tirage d’échantillons à partir d’une certaine distribution de probabilité et sur l’utilisation de ces échantillons pour former une estimation de Monte Carlo d’une certaine quantité souhaitée.

– Page 590, Deep Learning, 2016.

Elles fournissent la base de l’estimation de la probabilité des résultats dans les problèmes d’intelligence artificielle via la simulation, comme la robotique. Plus simplement, les méthodes de Monte Carlo sont utilisées pour résoudre des problèmes d’intégration insolubles, comme le tir de rayons aléatoires dans le traçage de chemin pour l’infographie lors du rendu d’une scène générée par ordinateur.

En apprentissage automatique, les méthodes de Monte Carlo fournissent la base des techniques de rééchantillonnage comme la méthode bootstrap pour estimer une quantité, telle que la précision d’un modèle sur un ensemble de données limité.

Le bootstrap est une technique de Monte Carlo simple pour approximer la distribution d’échantillonnage. Elle est particulièrement utile dans les cas où l’estimateur est une fonction complexe des vrais paramètres.

– Page 192, Machine Learning : A Probabilistic Perspective, 2012.

L’échantillonnage aléatoire des hyperparamètres du modèle lors du réglage d’un modèle est une méthode de Monte Carlo, tout comme les modèles d’ensemble utilisés pour surmonter des défis tels que la taille limitée et le bruit d’un petit échantillon de données et la variance stochastique d’un algorithme d’apprentissage.

  • Agorithmes de rééchantillonnage.
  • Réglage aléatoire des hyperparamètres.
  • Agorithmes d’apprentissage d’ensemble.

Les méthodes Monte Carlo constituent également la base des algorithmes d’optimisation aléatoire ou stochastique, comme la populaire technique d’optimisation par recuit simulé.

Les algorithmes de Monte Carlo, dont le recuit simulé est un exemple, sont utilisés dans de nombreuses branches de la science pour estimer des quantités difficiles à calculer exactement.

– Page 530, Artificial Intelligence : A Modern Approach, 3rd edition, 2009.

  • Algorithmes d’optimisation stochastique.

Exemple travaillé d’échantillonnage de Monte Carlo

Nous pouvons rendre l’échantillonnage de Monte Carlo concret avec un exemple travaillé.

Dans ce cas, nous aurons une fonction qui définit la distribution de probabilité d’une variable aléatoire. Nous utiliserons une distribution gaussienne avec une moyenne de 50 et un écart-type de 5 et tirerons des échantillons aléatoires de cette distribution.

Disons que nous ne connaissons pas la forme de la distribution de probabilité de cette variable aléatoire et que nous voulons échantillonner la fonction pour avoir une idée de la densité de probabilité. Nous pouvons tirer un échantillon d’une taille donnée et tracer un histogramme pour estimer la densité.

La fonction normale() NumPy peut être utilisée pour tirer au hasard des échantillons d’une distribution gaussienne avec la moyenne (mu), l’écart-type (sigma) et la taille de l’échantillon spécifiés.

Pour rendre l’exemple plus intéressant, nous allons répéter cette expérience quatre fois avec des échantillons de taille différente. Nous nous attendrions à ce que plus la taille de l’échantillon augmente, plus la densité de probabilité se rapproche de la véritable densité de la fonction cible, étant donné la loi des grands nombres.

L’exemple complet est répertorié ci-dessous.

L’exécution de l’exemple crée quatre échantillons de taille différente et trace un histogramme pour chacun.

Nous pouvons voir que les petites tailles d’échantillon de 10 et 50 ne capturent pas efficacement la densité de la fonction cible. Nous pouvons voir que 100 échantillons sont meilleurs, mais ce n’est qu’à partir de 1 000 échantillons que nous voyons clairement la forme de cloche familière de la distribution de probabilité gaussienne.

Cela met en évidence la nécessité de tirer de nombreux échantillons, même pour une variable aléatoire simple, et l’avantage d’une précision accrue de l’approximation avec le nombre d’échantillons tirés.

Plots d’histogrammes d’échantillons de Monte Carlo de taille différente de la fonction cible

Lectures complémentaires

Cette section fournit d’autres ressources sur le sujet si vous cherchez à approfondir.

Livres

  • Chapitre 29 Méthodes de Monte Carlo, Théorie de l’information, inférence et algorithmes d’apprentissage, 2003.
  • Chapitre 27 Échantillonnage, Raisonnement bayésien et apprentissage automatique, 2011.
  • Section 14.5 Approximate Inference In Bayesian Networks, Artificial Intelligence : A Modern Approach, 3e édition, 2009.
  • Chapitre 23 Inférence de Monte Carlo, Machine Learning : A Probabilistic Perspective, 2012.
  • Chapitre 11 Méthodes d’échantillonnage, Reconnaissance des formes et apprentissage automatique, 2006.
  • Chapitre 17 Méthodes de Monte Carlo, Deep Learning, 2016.

Articles

  • Échantillonnage (statistiques), Wikipédia.
  • Méthode Monte Carlo, Wikipédia.
  • Intégration Monte Carlo, Wikipédia.
  • Échantillonnage par importance, Wikipédia.
  • Échantillonnage par rejet, Wikipédia.

Résumé

Dans ce billet, vous avez découvert les méthodes de Monte Carlo pour l’échantillonnage de distributions de probabilité.

Spécifiquement, vous avez appris :

  • Souvent, nous ne pouvons pas calculer une quantité désirée en probabilité, mais nous pouvons définir les distributions de probabilité pour les variables aléatoires directement ou indirectement.
  • L’échantillonnage de Monte Carlo une classe de méthodes pour l’échantillonnage aléatoire à partir d’une distribution de probabilité.
  • L’échantillonnage de Monte Carlo constitue la base de nombreuses méthodes d’apprentissage automatique telles que le rééchantillonnage, le réglage des hyperparamètres et l’apprentissage d’ensemble.

Avez-vous des questions ?
Posez vos questions dans les commentaires ci-dessous et je ferai de mon mieux pour y répondre.

Maîtrisez les probabilités pour l’apprentissage automatique !

Développez votre compréhension des probabilités

….avec seulement quelques lignes de code python

Découvrez comment dans mon nouvel Ebook :
Probabilité pour l’apprentissage automatique

Il fournit des tutoriels d’auto-apprentissage et des projets de bout en bout sur :
le théorème de Bayes, l’optimisation bayésienne, les distributions, la vraisemblance maximale, l’entropie croisée, le calibrage des modèles
et bien plus encore.

Enfin, maîtrisez l’incertitude dans vos projets

Skip the Academics. Voyez ce qu’il y a dedans

Tweet Share Share

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *