Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Quelles Sont les Méthodes de Monte Carlo ? | Méthodes de Monte Carlo
Introduction à l'Apprentissage par Renforcement
course content

Contenu du cours

Introduction à l'Apprentissage par Renforcement

Introduction à l'Apprentissage par Renforcement

1. Théorie Fondamentale de l'Apprentissage par Renforcement
2. Problème du Bandit Manchot
3. Programmation Dynamique
4. Méthodes de Monte Carlo
5. Apprentissage par Différence Temporelle

book
Quelles Sont les Méthodes de Monte Carlo ?

Note
Définition

Les méthodes de Monte Carlo (MC) sont une catégorie d'algorithmes informatiques qui reposent sur l'échantillonnage aléatoire pour estimer des résultats numériques.

Les méthodes de Monte Carlo sont utilisées lorsque les solutions déterministes sont difficiles ou impossibles à obtenir. Elles remplacent les calculs exacts par des approximations qui s'améliorent avec le nombre d'échantillons aléatoires.

Fonctionnement

Les méthodes de Monte Carlo peuvent varier selon la tâche, mais elles suivent toutes un schéma unique :

  1. Définir un domaine d’entrées possibles ;
  2. Générer des entrées aléatoires à partir d’une distribution de probabilité ;
  3. Évaluer une fonction sur ces entrées ;
  4. Agréger les résultats pour produire une estimation.

Exemples

Bien que le schéma décrit ci-dessus puisse sembler complexe, ces exemples devraient aider à clarifier l’idée sous-jacente.

Calcul d'intégrale

Le calcul des intégrales est une tâche complexe qui nécessite généralement l'application de nombreuses techniques pour obtenir le résultat correct.

Essayons d'appliquer la méthode de Monte Carlo pour résoudre cette intégrale :

010111+(x+y)2dxdy\int_0^1 \int_0^1 \frac{1}{1 + (x + y)^2} \, dx \, dy
  1. Domaine d'entrée : cette intégrale double possède deux variables, x[0,1]x \in [0, 1] et y[0,1]y \in [0, 1] ;
  2. Génération : ces deux variables sont indépendantes l'une de l'autre et uniformément réparties ;
  3. Évaluation : pour obtenir une valeur ponctuelle, on utilise la fonction sous le signe intégral ;
  4. Agrégation : la valeur de cette intégrale peut être définie comme un volume sous la courbe. Le volume peut être calculé comme le produit de l'aire de la base et de la hauteur moyenne. L'aire de la base est 1 (carré unité) et la hauteur moyenne correspond à la moyenne des résultats obtenus à l'étape précédente.
12345678910111213141516
import numpy as np result = 0 # Many samples are required for estimates to be precise for i in range(100000): # Generation of random variables x, y = np.random.uniform(), np.random.uniform() # Computation of point value value = 1 / (1 + (x + y) ** 2) # Mean aggregation result += (value - result) / (i + 1) # Closed-form solution of this integral true_result = 2*np.arctan(2) - np.pi/2 - (1/2)*np.log(5) + np.log(2) print(f"Approximated result: {result}") print(f"True result: {true_result}")
copy

Approximation de π\Large\pi

L'approximation de π\pi est l'une des utilisations les plus emblématiques de la méthode de Monte Carlo. Elle illustre comment l'échantillonnage aléatoire permet de résoudre un problème géométrique sans recourir à un calcul complexe.

Considérer un carré unité avec un quart de cercle inscrit :

  • Le carré s'étend sur [0,1]×[0,1][0, 1] \times [0, 1] ;
  • Le quart de cercle a un rayon de 1 et est centré à l'origine.

L'aire du quart de cercle est πr24\displaystyle\frac{\pi r^2}{4} ou π4\displaystyle\frac{\pi}{4}, et l'aire du carré est 1. Échantillonnons maintenant des points aléatoires à l'intérieur du carré. Avec une taille d'échantillon suffisamment grande :

Points inside the quarter circleTotal pointsπ4\frac{\text{Points inside the quarter circle}}{\text{Total points}} \approx \frac\pi4

Ainsi, la valeur de π\pi peut être calculée comme suit :

π4Points insideTotal points\pi \approx 4 \cdot \frac{\text{Points inside}}{\text{Total points}}
1234567891011121314151617181920212223242526272829
import numpy as np import matplotlib.pyplot as plt # Lists for coordinates inside = [] outside = [] # Many samples are required for estimates to be precise for _ in range(100000): # Generation of random variables x, y = np.random.uniform(), np.random.uniform() # Splitting points inside and outside of the circle if x**2 + y**2 <= 1: inside.append((x, y)) else: outside.append((x, y)) # Plotting points plt.figure(figsize=(6,6)) plt.scatter(*zip(*inside), color="blue", s=1, label="Inside") plt.scatter(*zip(*outside), color="red", s=1, label="Outside") plt.legend() plt.xlabel("x") plt.ylabel("y") plt.show() estimate = 4 * len(inside) / (len(inside) + len(outside)) print(f"Estimated value of pi: {estimate}") print(f"True value of pi: {np.pi}")
copy

Bandits à plusieurs bras

Dans le contexte des bandits à plusieurs bras, un objectif clé est d'estimer la valeur d'action pour chaque bras — c'est-à-dire la récompense attendue lors du choix d'une action particulière. Une stratégie courante consiste à estimer ces valeurs en moyennant les récompenses observées obtenues en tirant chaque bras au fil du temps. Cette technique constitue en réalité une méthode de Monte Carlo.

Méthodes de Monte Carlo pour les MDP

Contrairement aux méthodes de la programmation dynamique, qui reposent sur un modèle complet et précis des dynamiques de l'environnement, les méthodes de Monte Carlo apprennent uniquement à partir de l'expérience — c'est-à-dire à partir de séquences réelles ou simulées d'états, d'actions et de récompenses.

Cela rend les approches Monte Carlo particulièrement puissantes : elles ne nécessitent aucune connaissance préalable du fonctionnement de l'environnement. À la place, elles extraient les estimations de valeur directement à partir des événements survenus lors de l'interaction. Dans de nombreux scénarios réels, où modéliser l'environnement est impraticable ou impossible, cette capacité à apprendre à partir de l'expérience brute constitue un avantage majeur.

Lorsque l'interaction directe avec l'environnement est coûteuse, risquée ou lente, les méthodes de Monte Carlo peuvent également apprendre à partir d'une expérience simulée, à condition qu'une simulation fiable existe. Cela permet l'exploration et l'apprentissage dans un cadre contrôlé et reproductible — bien que cela suppose l'accès à un modèle capable de générer des transitions plausibles.

question mark

Quel est l'avantage principal de l'utilisation des méthodes de Monte Carlo par rapport aux méthodes de programmation dynamique pour résoudre les MDP ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 1

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

course content

Contenu du cours

Introduction à l'Apprentissage par Renforcement

Introduction à l'Apprentissage par Renforcement

1. Théorie Fondamentale de l'Apprentissage par Renforcement
2. Problème du Bandit Manchot
3. Programmation Dynamique
4. Méthodes de Monte Carlo
5. Apprentissage par Différence Temporelle

book
Quelles Sont les Méthodes de Monte Carlo ?

Note
Définition

Les méthodes de Monte Carlo (MC) sont une catégorie d'algorithmes informatiques qui reposent sur l'échantillonnage aléatoire pour estimer des résultats numériques.

Les méthodes de Monte Carlo sont utilisées lorsque les solutions déterministes sont difficiles ou impossibles à obtenir. Elles remplacent les calculs exacts par des approximations qui s'améliorent avec le nombre d'échantillons aléatoires.

Fonctionnement

Les méthodes de Monte Carlo peuvent varier selon la tâche, mais elles suivent toutes un schéma unique :

  1. Définir un domaine d’entrées possibles ;
  2. Générer des entrées aléatoires à partir d’une distribution de probabilité ;
  3. Évaluer une fonction sur ces entrées ;
  4. Agréger les résultats pour produire une estimation.

Exemples

Bien que le schéma décrit ci-dessus puisse sembler complexe, ces exemples devraient aider à clarifier l’idée sous-jacente.

Calcul d'intégrale

Le calcul des intégrales est une tâche complexe qui nécessite généralement l'application de nombreuses techniques pour obtenir le résultat correct.

Essayons d'appliquer la méthode de Monte Carlo pour résoudre cette intégrale :

010111+(x+y)2dxdy\int_0^1 \int_0^1 \frac{1}{1 + (x + y)^2} \, dx \, dy
  1. Domaine d'entrée : cette intégrale double possède deux variables, x[0,1]x \in [0, 1] et y[0,1]y \in [0, 1] ;
  2. Génération : ces deux variables sont indépendantes l'une de l'autre et uniformément réparties ;
  3. Évaluation : pour obtenir une valeur ponctuelle, on utilise la fonction sous le signe intégral ;
  4. Agrégation : la valeur de cette intégrale peut être définie comme un volume sous la courbe. Le volume peut être calculé comme le produit de l'aire de la base et de la hauteur moyenne. L'aire de la base est 1 (carré unité) et la hauteur moyenne correspond à la moyenne des résultats obtenus à l'étape précédente.
12345678910111213141516
import numpy as np result = 0 # Many samples are required for estimates to be precise for i in range(100000): # Generation of random variables x, y = np.random.uniform(), np.random.uniform() # Computation of point value value = 1 / (1 + (x + y) ** 2) # Mean aggregation result += (value - result) / (i + 1) # Closed-form solution of this integral true_result = 2*np.arctan(2) - np.pi/2 - (1/2)*np.log(5) + np.log(2) print(f"Approximated result: {result}") print(f"True result: {true_result}")
copy

Approximation de π\Large\pi

L'approximation de π\pi est l'une des utilisations les plus emblématiques de la méthode de Monte Carlo. Elle illustre comment l'échantillonnage aléatoire permet de résoudre un problème géométrique sans recourir à un calcul complexe.

Considérer un carré unité avec un quart de cercle inscrit :

  • Le carré s'étend sur [0,1]×[0,1][0, 1] \times [0, 1] ;
  • Le quart de cercle a un rayon de 1 et est centré à l'origine.

L'aire du quart de cercle est πr24\displaystyle\frac{\pi r^2}{4} ou π4\displaystyle\frac{\pi}{4}, et l'aire du carré est 1. Échantillonnons maintenant des points aléatoires à l'intérieur du carré. Avec une taille d'échantillon suffisamment grande :

Points inside the quarter circleTotal pointsπ4\frac{\text{Points inside the quarter circle}}{\text{Total points}} \approx \frac\pi4

Ainsi, la valeur de π\pi peut être calculée comme suit :

π4Points insideTotal points\pi \approx 4 \cdot \frac{\text{Points inside}}{\text{Total points}}
1234567891011121314151617181920212223242526272829
import numpy as np import matplotlib.pyplot as plt # Lists for coordinates inside = [] outside = [] # Many samples are required for estimates to be precise for _ in range(100000): # Generation of random variables x, y = np.random.uniform(), np.random.uniform() # Splitting points inside and outside of the circle if x**2 + y**2 <= 1: inside.append((x, y)) else: outside.append((x, y)) # Plotting points plt.figure(figsize=(6,6)) plt.scatter(*zip(*inside), color="blue", s=1, label="Inside") plt.scatter(*zip(*outside), color="red", s=1, label="Outside") plt.legend() plt.xlabel("x") plt.ylabel("y") plt.show() estimate = 4 * len(inside) / (len(inside) + len(outside)) print(f"Estimated value of pi: {estimate}") print(f"True value of pi: {np.pi}")
copy

Bandits à plusieurs bras

Dans le contexte des bandits à plusieurs bras, un objectif clé est d'estimer la valeur d'action pour chaque bras — c'est-à-dire la récompense attendue lors du choix d'une action particulière. Une stratégie courante consiste à estimer ces valeurs en moyennant les récompenses observées obtenues en tirant chaque bras au fil du temps. Cette technique constitue en réalité une méthode de Monte Carlo.

Méthodes de Monte Carlo pour les MDP

Contrairement aux méthodes de la programmation dynamique, qui reposent sur un modèle complet et précis des dynamiques de l'environnement, les méthodes de Monte Carlo apprennent uniquement à partir de l'expérience — c'est-à-dire à partir de séquences réelles ou simulées d'états, d'actions et de récompenses.

Cela rend les approches Monte Carlo particulièrement puissantes : elles ne nécessitent aucune connaissance préalable du fonctionnement de l'environnement. À la place, elles extraient les estimations de valeur directement à partir des événements survenus lors de l'interaction. Dans de nombreux scénarios réels, où modéliser l'environnement est impraticable ou impossible, cette capacité à apprendre à partir de l'expérience brute constitue un avantage majeur.

Lorsque l'interaction directe avec l'environnement est coûteuse, risquée ou lente, les méthodes de Monte Carlo peuvent également apprendre à partir d'une expérience simulée, à condition qu'une simulation fiable existe. Cela permet l'exploration et l'apprentissage dans un cadre contrôlé et reproductible — bien que cela suppose l'accès à un modèle capable de générer des transitions plausibles.

question mark

Quel est l'avantage principal de l'utilisation des méthodes de Monte Carlo par rapport aux méthodes de programmation dynamique pour résoudre les MDP ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 1
some-alt