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 composantes à 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 composantes d'un MDP (états, actions, récompenses et probabilités de transition) pour le résoudre avec des techniques RL fondées sur un modèle.

Reinforcement Learning avec Gymnasium en Python

Propriété de Markov

  • L'état futur dépend seulement de l'état courant et de l'action

Image montrant un échiquier avec des flèches pour des coups 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 lac gelé.

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 lac gelé.

Reinforcement Learning avec Gymnasium en Python

Frozen Lake comme MDP - actions

  • Haut, bas, gauche, droite

Image montrant les actions à effectuer dans Frozen Lake et leurs étiquettes : 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 de la grille 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 aller vers le bas.

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 au même endroit.

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 lorsqu'il 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 donnée seulement à l'état objectif

Image montrant l'agent à 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 dont 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 et de haut en bas, ligne par ligne.

Reinforcement Learning avec Gymnasium en Python

Passons à la pratique !

Reinforcement Learning avec Gymnasium en Python

Preparing Video For Download...