Lance-toi en Débuter Reinforcement Learning : ton premier pas concret aujourd'hui

Débuter Reinforcement Learning : l'essentiel en un article — vrai code, schémas et étapes concrètes, extraits d'un cours de 42 leçons.

Lance-toi en Débuter Reinforcement Learning : ton premier pas concret aujourd'hui

La meilleure façon d'apprendre Débuter Reinforcement Learning, c'est de faire. Cet article te met le pied à l'étrier avec des extraits pratiques tirés d'un cours de 42 leçons — de quoi obtenir un premier résultat dès aujourd'hui.

tl;dr
  • Ressources du cours et Installer l'environnement
  • Introduction au Reinforcement Learning
  • Notions Fondamentales du RL
  • MDP Partie 1 - Etats Actions Recompenses
  • MDP Partie 2 - Politique et Equations de Bellman
~$ cat ./parcours.md # Débuter Reinforcement Learning — 11 chapitres
01
Ressources du cours et Installer l'environnement
→ Ressources du Cours & Introduction→ Installer Python, Anaconda et TensorFlow+ 3 autres leçons
02
Introduction au Reinforcement Learning
→ C'est quoi le Reinforcement Learning ?→ Comparaison Apprentissage Supervisé, Non Supervisé et RL+ 2 autres leçons
03
Notions Fondamentales du RL
→ Interaction Agent-Environnement→ Exploration vs Exploitation — Le Grand Dilemme+ 2 autres leçons
04
MDP Partie 1 - États Actions Récompenses
→ Définition des MDP et Propriété de Markov→ états, Actions et Récompenses dans un MDP+ 2 autres leçons
05
MDP Partie 2 - Politique et Équations de Bellman
→ Politique Optimale vs Sous-optimale→ Fonctions de Valeur V(s) et Q(s,a)+ 2 autres leçons
06
Q-Learning
→ Fondamentaux du Q-Learning→ Mise à Jour des Q-values et Convergence+ 1 autres leçons
07
Méthodes de Monte Carlo
→ Introduction aux Méthodes de Monte Carlo→ Monte Carlo vs TD Learning+ 1 autres leçons
08
Programmation Dynamique et TD Learning
→ Introduction à la Programmation Dynamique→ Méthodes TD(0) et TD(λ)+ 1 autres leçons
🏁
Projet final (+ 3 chapitres en chemin)
→ Tu repars avec un projet concret et démontrable

Chapitre 02 – Fiche de Terminologie Complète

NOTEObjectif de cette fiche — Avoir en un seul endroit toutes les définitions fondamentales du RL, de la notion d'état jusqu'aux algorithmes. Cette fiche sert de référence tout au long du cours.

Paradigme d'apprentissage automatique où un agent apprend à se comporter dans un environnement en effectuant des actions et en recevant des récompenses ou des pénalités en retour.

TIPMécanisme :
  1. L'agent observe l'état de l'environnement
  2. Il choisit une action à effectuer
  3. Il observe le résultat : nouvel état + récompense (positive ou négative)
  4. En répétant ce cycle, il apprend quelles actions maximisent la récompense à long terme

État — State st Composante fondamentale

Description complète de la situation actuelle de l'environnement à l'instant t. C'est l'information dont l'agent dispose pour décider quelle action entreprendre.

Type d'état Description Exemple
État de départ Position initiale au début d'un épisode Case (1,1) dans un labyrinthe
État intermédiaire Tout état en cours d'épisode (non terminal) Cases traversées dans le labyrinthe
État terminal État de fin d'épisode (victoire ou défaite) Sortie du labyrinthe ou trou
NOTEDiscret vs Continu : Un état peut être discret (ex: cases numérotées d'un labyrinthe — on peut les compter) ou continu (ex: position GPS en mètres, angle en degrés — valeurs numériques infinies).

Action at Composante fondamentale

Ce que l'agent décide de faire dans un état donné. L'ensemble de toutes les actions possibles forme l'espace d'actions.

TIPActions discrètes
Nombre fini d'actions énumérables.
Exemples : Haut, Bas, Gauche, Droite (labyrinthe) ; 0 ou 1 (CartPole)
NOTEActions continues
Valeurs numériques dans un intervalle.
Exemples : Force de 0 à 10 N ; angle de volant de −30° à +30°

Récompense rtReward Signal d'apprentissage

Signal numérique reçu par l'agent après chaque action. C'est le seul moyen pour l'environnement de dire à l'agent si son action était bonne ou mauvaise.

NOTERécompense immédiate (3.6)
Récompense reçue directement après une action au pas t. Donne un retour instantané sur la qualité d'une seule action.
Notation : rt+1
NOTERécompense à long terme (3.7)
Somme des récompenses accumulées sur tout l'épisode (ou à l'infini). C'est ce que l'agent cherche réellement à maximiser.
Notation : Gt = rt+1 + rt+2 + rt+3 + …

Discount — Facteur d'actualisation γ (gamma) Paramètre clé

Valeur comprise entre 0 et 1 qui pondère les récompenses futures. Plus une récompense est lointaine dans le temps, plus elle est "dévalorisée". C'est la pénalité appliquée aux récompenses futures.

NOTEγ proche de 0
L'agent est "myope" : il ne pense qu'à la récompense immédiate. Comportement court-termiste.
TIPγ proche de 1
L'agent est "prévoyant" : il considère les récompenses futures avec presque autant d'importance. Comportement long-termiste.
NOTEValeur typique : γ = 0.9 ou 0.99 dans la plupart des applications pratiques.

Utilité — Utility / Return Gt Objectif final

La somme totale des récompenses actualisées obtenues à partir du pas de temps t. C'est LA valeur que l'agent cherche à maximiser. Aussi appelée retour ou rendement cumulé.

TIPEn français simple : L'utilité = la somme de toutes les récompenses futures, avec une pondération qui diminue avec le temps (grâce au discount γ). Une bonne action maintenant ET de bonnes actions dans le futur = utilité élevée.
NOTESynonymes utilisés dans le cours : Récompense à long terme, Retour, Return, Rendement cumulé, Gt

Politique — Policy π Cœur du RL

La stratégie de décision de l'agent : pour chaque état, elle définit quelle action entreprendre. C'est le "cerveau" de l'agent, ce qu'il cherche à apprendre.

Environnements Virtuels Python

NOTEObjectif — Comprendre pourquoi on utilise des environnements virtuels, comment installer plusieurs versions de Python en parallèle, et comment créer un environnement isolé pour chaque projet — sur Windows et sur Linux (Ubuntu).

Pourquoi des environnements virtuels ?

Le problème sans venv

La solution avec venv

EnvironnementPythonBibliothèquesProjet
myenv393.9TensorFlow 2.10, Gym 0.26Cours RL (ancien)
myenv3103.10Streamlit 1.28, pandas 2.0Dashboard
myenv3113.11TensorFlow 2.15, GymnasiumCours RL (actuel)
rl-env3.12Gymnasium, NumPy, MatplotlibCe cours

🪟 Windows   Installer plusieurs versions de Python

NOTEAvant de commencer — PowerShell en mode administrateur
Certaines commandes nécessitent les droits administrateur. Si vous avez une erreur de permissions lors de l'activation d'un venv, exécutez d'abord dans PowerShell :
output
# Ouvrir PowerShell en administrateur, puis :
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
# Répondre O (Oui) à la confirmation

Téléchargez et installez chaque version depuis python.org/downloads. Cochez «Add to PATH» pour la première version seulement. Pour les suivantes, décochez «Add to PATH» pour éviter les conflits.

TIPConseil : Lors de l'installation de Python sur Windows, le launcher py est installé automatiquement. Il vous permet d'appeler n'importe quelle version installée avec py -3.10, py -3.11, etc.
output
python --version
# Python 3.x.x (la version par défaut dans le PATH)

py -3.9 --version
# Python 3.9.x

py -3.10 --version
# Python 3.10.x

py -3.11 --version
# Python 3.11.x

py -3.12 --version
# Python 3.12.x

py -3.13 --version
# Python 3.13.x
output
# Vérifier la version
py -3.9 --version

# Créer l'environnement virtuel
py -3.9 -m venv myenv39

# Activer l'environnement (PowerShell)
.\myenv39\Scripts\activate

# Le prompt change : (myenv39) indique que l'env est actif
(myenv39) python --version
# Python 3.9.x

(myenv39) pip install streamlit
(myenv39) pip show streamlit
# Name: streamlit
# Version: 1.x.x
# ...

# Désactiver l'environnement
(myenv39) deactivate
output
py -3.10 --version
py -3.10 -m venv myenv310

.\myenv310\Scripts\activate

(myenv310) python --version
# Python 3.10.x

(myenv310) pip install streamlit
(myenv310) pip show streamlit
(myenv310) deactivate
output
# Python 3.11
py -3.11 -m venv myenv311
.\myenv311\Scripts\activate
(myenv311) python --version
(myenv311) pip install streamlit
(myenv311) deactivate

# Python 3.12
py -3.12 -m venv myenv312
.\myenv312\Scripts\activate
(myenv312) python --version
(myenv312) pip install streamlit
(myenv312) deactivate

# Python 3.13
py -3.13 -m venv myenv313
.\myenv313\Scripts\activate
(myenv313) python --version
(myenv313) pip install streamlit
(myenv313) deactivate

🔗 SSH   Se connecter à une VM Linux depuis Windows

NOTEContexte : Si vous travaillez avec une machine virtuelle Linux (VirtualBox, VMware...) ou un serveur distant, vous pouvez vous y connecter depuis Windows via SSH sans quitter votre terminal Windows.

Étape 1 — Installer SSH sur la VM Linux

Dans le terminal de la VM Linux, en tant que root :

output
su                         # ou : sudo -s
apt install openssh-server -y
systemctl status ssh       # vérifier le statut
systemctl start ssh        # démarrer si nécessaire
systemctl enable ssh       # démarrer automatiquement au boot

# Trouver l'adresse IP de la VM
ip -br addr
# lo               UNKNOWN        127.0.0.1/8
# eth0             UP             192.168.2.139/24   ← copier cette IP

Premier script Gym – Tester l'installation

TIP😌 Pas de panique — on teste seulement !
Le but de cette leçon est uniquement de vérifier que votre environnement fonctionne. Vous allez copier-coller des scripts et observer les résultats. Vous ne devez pas encore tout comprendre — chaque ligne de code sera expliquée en détail dans les prochains chapitres. Respirez, c'est juste un test de démarrage !
NOTEObjectif — Exécuter vos premiers scripts avec Gymnasium et confirmer que votre installation fonctionne. Deux options : en local (Jupyter) ou directement dans Google Colab sans rien installer.

Option A – Tester en local (Jupyter)

Si vous avez suivi les leçons 01 et 02 (installation Anaconda + configuration Jupyter), activez votre environnement et lancez Jupyter :

bash
conda activate rl-env
jupyter notebook

Ensuite copiez les scripts plus bas dans une cellule et exécutez avec Shift + Entrée.

Option B – Tester dans Google Colab (rien à installer !)

TIPPas encore installé Python en local ? Aucun problème.
Google Colab fonctionne directement dans votre navigateur. Aucune installation requise — idéal pour tester maintenant et installer en local plus tard.

Ouvrez un nouveau notebook sur colab.research.google.com, puis installez Gymnasium en première cellule :

bash
# Cellule 1 — Installation (Colab uniquement, déjà fait si vous êtes en local)
!pip install gymnasium[toy-text] matplotlib --quiet

Ensuite copiez les scripts ci-dessous dans les cellules suivantes. C'est tout !

NOTEColab ou local — les scripts sont identiques. La seule différence est la cellule d'installation ci-dessus que vous n'avez pas besoin de lancer en local.

C'est quoi Gymnasium (ex-OpenAI Gym) ?

Gymnasium est la bibliothèque de référence pour tester des algorithmes de RL. Elle fournit des environnements standardisés avec une interface uniforme.

Environments classiques

Interface universelle

Script 1 – Explorer l'environnement CartPole

TIP📋 Copiez-collez simplement ce code — ne cherchez pas à tout comprendre maintenant. Vous verrez ce que CartPole produit comme informations. On détaillera chaque terme (observation_space, action_space, etc.) dans le Chapitre 02.
output
import gymnasium as gym
import numpy as np

# Créer l'environnement
env = gym.make("CartPole-v1")
obs, info = env.reset(seed=42)

print("=== CartPole-v1 ===")
print(f"Espace d'états  : {env.observation_space}")
print(f"  Nombre de dimensions : {env.observation_space.shape[0]}")
print(f"  Valeurs min : {env.observation_space.low}")
print(f"  Valeurs max : {env.observation_space.high}")
print(f"\nEspace d'actions : {env.action_space}")
print(f"  Nombre d'actions : {env.action_space.n}")
print(f"  Actions : 0 (gauche), 1 (droite)")
print(f"\nObservation initiale : {obs}")
print(f"  [position cart, vitesse cart, angle bâton, vitesse bâton]")

env.close()

Script 2 – Agent aléatoire sur CartPole

TIP🎲 Un agent qui joue au hasard — c'est notre point de départ. Ce script ne fait rien d'intelligent : il choisit des actions aléatoires. C'est notre baseline de référence. Tout ce que vous apprendrez dans ce cours permettra à un agent de faire bien mieux que ça. Exécutez et observez les récompenses — c'est tout !
output
import gymnasium as gym
import numpy as np
import matplotlib.pyplot as plt

def run_random_agent(env_name, n_episodes=100):
    """Agent qui prend des actions aléatoires - notre baseline."""
    env = gym.make(env_name)
    total_rewards = []

    for episode in range(n_episodes):
        obs, info = env.reset()
        episode_reward = 0
        done = False

        while not done:
            # Action aléatoire (pas d'apprentissage)
            action = env.action_space.sample()
            obs, reward, terminated, truncated, info = env.step(action)
            episode_reward += reward
            done = terminated or truncated

        total_rewards.append(episode_reward)

    env.close()
    return total_rewards

# Exécuter l'agent aléatoire
rewards = run_random_agent("CartPole-v1", n_episodes=100)

print(f"Récompense moyenne : {np.mean(rewards):.2f}")
print(f"Récompense maximale : {np.max(rewards):.0f}")
print(f"Récompense minimale : {np.min(rewards):.0f}")

# Visualiser
plt.figure(figsize=(10, 4))
plt.plot(rewards, alpha=0.6, label="Récompense par épisode")
plt.axhline(np.mean(rewards), color='red', linestyle='--', label=f"Moyenne: {np.mean(rewards):.1f}")
plt.xlabel("Épisode")
plt.ylabel("Récompense totale")
plt.title("Agent aléatoire - CartPole-v1")
plt.legend()
plt.tight_layout()
plt.savefig("agent_aleatoire_cartpole.png")
plt.show()

Script 3 – Explorer FrozenLake (environnement discret)

TIP🗺️ FrozenLake sera votre terrain de jeu principal dans ce cours. Ne vous inquiétez pas de la boucle ou des actions manuelles pour l'instant — l'objectif est juste de voir que l'environnement se lance et répond. Le Chapitre 03 expliquera tout en détail.
output
import gymnasium as gym

# FrozenLake : grille 4x4 avec états discrets
env = gym.make("FrozenLake-v1", is_slippery=False)
obs, info = env.reset()

print("=== FrozenLake-v1 ===")
print(f"Espace d'états  : {env.observation_space.n} états (grille 4x4)")
print(f"Espace d'actions : {env.action_space.n} actions")
print(f"  0=gauche, 1=bas, 2=droite, 3=haut")
print(f"\nÉtat initial : {obs}")
print("\nVisualisez la grille :")
env.render()

# Boucle manuelle
actions_manuelles = [2, 2, 1, 1, 1, 2, 1, 2, 2]  # chemin vers la sortie
total_reward = 0

print("\n--- Simulation manuelle ---")
obs, _ = env.reset()
for i, action in enumerate(actions_manuelles):
    obs, reward, terminated, truncated, _ = env.step(action)
    total_reward += reward
    direction = ["←", "↓", "→", "↑"][action]
    print(f"Étape {i+1}: {direction}  État={obs}  Récompense={reward}")
    if terminated or truncated:
        break

print(f"\nRécompense totale : {total_reward}")
env.close()
TIPPourquoi FrozenLake ? Cet environnement est parfait pour débuter car il a un espace d'états discret (16 cases). Vous pouvez visualiser toute la Q-table. CartPole a des états continus, ce qui nécessite des techniques plus avancées.
va-plus-loin

Cet article couvre les extraits les plus utiles — le cours complet Débuter Reinforcement Learning (12 chapitres, 42 leçons, exercices corrigés et projet final) t'emmène jusqu'au bout.

./acceder-au-cours-complet cours gratuit : Maîtriser Claude Code

FAQ

Combien de temps pour apprendre Débuter Reinforcement Learning ?
Avec une progression structurée (12 chapitres, 42 leçons courtes et pratiques), on atteint un niveau opérationnel en quelques semaines à raison de 30 à 60 minutes par jour. L'important est de pratiquer chaque notion immédiatement.
Faut-il des prérequis ?
Aucun prérequis : le cours part de zéro, chaque notion est introduite avant d'être utilisée.
Par où commencer concrètement ?
Reproduis les commandes de cet article, puis suis le cours complet Débuter Reinforcement Learning : il enchaîne les 42 leçons dans l'ordre, avec exercices et projet final.

📬 Tu veux recevoir ce type de guide chaque semaine ? Abonne-toi gratuitement — code réel, zéro blabla.