Processus de décision de Markov

Reinforcement Learning avec Gymnasium en Python

Fouad Trad

Machine Learning Engineer

MDP

  • Modélise mathématiquement les environnements RL

Image montrant un environnement complexe (ville intelligente) et les composants à en extraire : états, actions, récompenses et probabilités de transition.

Reinforcement Learning avec Gymnasium en Python

MDP

  • Modélise mathématiquement les environnements RL

Schéma montrant comment, à partir d’un environnement complexe, on extrait les composants d’un MDP (états, actions, récompenses, probabilités de transition) pour le résoudre avec des techniques RL à modèle.

Reinforcement Learning avec Gymnasium en Python

Propriété de Markov

  • L’état futur dépend uniquement de l’état courant et de l’action

Image montrant un échiquier avec des flèches pour des mouvements possibles.

Reinforcement Learning avec Gymnasium en Python

Frozen Lake comme MDP

  • L’agent doit atteindre l’objectif sans tomber dans les trous

Image montrant l’environnement Frozen Lake.

Reinforcement Learning avec Gymnasium en Python

Frozen Lake comme MDP - états

  • Positions que l’agent peut occuper

Image montrant trois positions différentes de l’agent dans l’environnement Frozen Lake.

Reinforcement Learning avec Gymnasium en Python

Frozen Lake comme MDP - états terminaux

  • Mènent à la fin de l’épisode

Image montrant les états terminaux dans l’environnement Frozen Lake.

Reinforcement Learning avec Gymnasium en Python

Frozen Lake comme MDP - actions

  • Haut, bas, gauche, droite

Image montrant les actions dans Frozen Lake et leurs étiquettes associées : 0-gauche, 1-bas, 2-droite, 3-haut.

Reinforcement Learning avec Gymnasium en Python

Frozen Lake comme MDP - transitions

  • Les actions ne mènent pas toujours au résultat attendu

Image montrant l’agent dans le coin supérieur gauche du lac gelé visant à aller à droite.

Reinforcement Learning avec Gymnasium en Python

Frozen Lake comme MDP - transitions

  • Les actions ne mènent pas toujours au résultat attendu

Image montrant que l’agent peut aller à droite.

Reinforcement Learning avec Gymnasium en Python

Frozen Lake comme MDP - transitions

  • Les actions ne mènent pas toujours au résultat attendu

Image montrant que l’agent peut aussi descendre.

Reinforcement Learning avec Gymnasium en Python

Frozen Lake comme MDP - transitions

  • Les actions ne mènent pas toujours au résultat attendu

Image montrant que l’agent peut aussi rester sur place.

Reinforcement Learning avec Gymnasium en Python

Frozen Lake comme MDP - transitions

  • Les actions ne mènent pas toujours au résultat attendu

Image montrant que lorsque l’agent décide d’aller à droite, il existe des probabilités d’aller à droite, en bas ou de rester sur place.

  • Probabilités de transition : probabilité d’atteindre un état donné un état et une action
Reinforcement Learning avec Gymnasium en Python

Frozen Lake comme MDP - récompenses

  • Récompense uniquement dans l’état objectif

Image montrant l’agent dans l’état objectif.

Reinforcement Learning avec Gymnasium en Python

États et actions dans Gymnasium

import gymnasium as gym


env = gym.make('FrozenLake', is_slippery=True)
print(env.action_space)
print(env.observation_space)
print("Number of actions: ", env.action_space.n)
print("Number of states: ", env.observation_space.n)
Discrete(4)

Discrete(16)
Number of actions: 4
Number of states: 16
Reinforcement Learning avec Gymnasium en Python

Récompenses et transitions dans Gymnasium

env.unwrapped.P : dictionnaire où les clés sont des paires état-action

print(env.unwrapped.P[state][action])
[
  (probability_1, next_state_1, reward_1, is_terminal_1), 
  (probability_2, next_state_2, reward_2, is_terminal_2), 
  etc.
]
Reinforcement Learning avec Gymnasium en Python

Récompenses et transitions dans Gymnasium - exemple

state = 6
action = 0

print(env.unwrapped.P[state][action])
[(0.3333333333333333, 2, 0.0, False), 
(0.3333333333333333, 5, 0.0, True), 
(0.3333333333333333, 10, 0.0, False)]

Image montrant les numéros d’action : 0-gauche, 1-bas, 2-droite, 3-haut.

Image montrant l’agent à l’état numéro 6, les états étant numérotés de gauche à droite, ligne par ligne, du coin supérieur gauche au coin inférieur droit.

Reinforcement Learning avec Gymnasium en Python

Passons à la pratique !

Reinforcement Learning avec Gymnasium en Python

Preparing Video For Download...