Politiques et fonctions de valeur d’état

Reinforcement Learning avec Gymnasium en Python

Fouad Trad

Machine Learning Engineer

Politiques

  • Objectif RL → formuler des politiques efficaces
  • Spécifier l’action à prendre dans chaque état pour maximiser le retour

Image montrant une grande feuille de route.

Reinforcement Learning avec Gymnasium en Python

Exemple grille

  • L’agent vise le diamant et évite les montagnes
  • Neuf états
  • Mouvements déterministes

action_numbers_green.png

Image montrant l’environnement personnalisé avec 9 cases, 2 montagnes et un diamant.

Reinforcement Learning avec Gymnasium en Python

Exemple grille – récompenses

  • Attribuées selon l’état :
    • Diamant : +10

Image montrant que les mouvements depuis les cases voisines vers le diamant donnent une récompense de +10.

Reinforcement Learning avec Gymnasium en Python

Exemple grille – récompenses

  • Attribuées selon l’état :
    • Diamant : +10
    • Montagne : -2

Image montrant que les actions menant aux montagnes donnent une récompense de -2.

Reinforcement Learning avec Gymnasium en Python

Exemple grille – récompenses

  • Attribuées selon l’état :
    • Diamant : +10
    • Montagne : -2
    • Autres états : -1

Image montrant que tout autre mouvement donne une récompense de -1.

Reinforcement Learning avec Gymnasium en Python

Exemple grille : politique

# 0: left, 1: down, 2: right, 3: up
policy = {
    0:1, 1:2, 2:1, 
    3:1, 4:3, 5:1,
    6:2, 7:3
}

state, info = env.reset() terminated = False while not terminated: action = policy[state] state, reward, terminated, _, _ = env.step(action)

Image montrant la politique avec des flèches représentant les mouvements entre états.

Reinforcement Learning avec Gymnasium en Python

Fonctions de valeur d’état

  • Estimer la valeur d’un état
  • Retour espéré en partant de l’état et suivant la politique

Image montrant la formule de la fonction de valeur comme le retour actualisé en partant de s et en suivant la politique.

Reinforcement Learning avec Gymnasium en Python

Exemple grille : valeurs d’état

Image montrant la politique avec des flèches représentant les mouvements entre états.

  • Neuf états → neuf valeurs d’état
  • Facteur d’actualisation : $\gamma = 1$
Reinforcement Learning avec Gymnasium en Python

Valeur de l’état objectif

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

  • En partant de l’état objectif, l’agent ne bouge pas
  • $V(\text{état objectif}) = 0$

Image montrant que la valeur de l’état objectif est 0

Reinforcement Learning avec Gymnasium en Python

Valeur de l’état 5

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

  • En partant de 5, l’agent va à l’objectif
  • $V(5) = 10$

Image montrant que la valeur de l’état 5 est 10

Reinforcement Learning avec Gymnasium en Python

Valeur de l’état 2

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

  • En partant de 2, récompenses : $-1, 10$
  • $ V(2) = (1 \times -1) + (1 \times 10) = 9$

Image montrant que la valeur de l’état 2 est 9.

Reinforcement Learning avec Gymnasium en Python

Toutes les valeurs d’état

Image montrant toutes les valeurs d’état pour les 9 états de l’environnement.

Reinforcement Learning avec Gymnasium en Python

Équation de Bellman

  • Formule récursive
  • Calcule les valeurs d’état

Image montrant l’équation de Bellman comme la somme de la récompense immédiate de l’état courant et de la valeur actualisée du prochain état.

Reinforcement Learning avec Gymnasium en Python

Calculer les valeurs d’état

def compute_state_value(state):

if state == terminal_state: return 0
action = policy[state]
_, next_state, reward, _ = env.unwrapped.P[state][action][0]
return reward + gamma * compute_state_value(next_state)

Image montrant l’équation de Bellman comme la somme de la récompense immédiate de l’état courant et de la valeur actualisée du prochain état.

Reinforcement Learning avec Gymnasium en Python

Calculer les valeurs d’état

terminal_state = 8
gamma = 1

V = {state: compute_state_value(state) for state in range(num_states)}
print(V)
{0: 1, 1: 8, 2: 9, 
 3: 2, 4: 7, 5: 10, 
 6: 3, 7: 5, 8: 0}

Image montrant toutes les valeurs d’état pour les 9 états de l’environnement.

Reinforcement Learning avec Gymnasium en Python

Changer de politique

# 0: left, 1: down, 2: right, 3: up
policy_two = {
    0:2, 1:2, 2:1,
    3:2, 4:2, 5:1,
    6:2, 7:2
}

V_2 = {state: compute_state_value(state) for state in range(num_states)} print(V_2)

Image montrant la politique avec des flèches représentant les mouvements entre états.

Reinforcement Learning avec Gymnasium en Python

Comparer les politiques

Valeurs d’état pour la politique 1

{0: 1, 1: 8, 2: 9, 
 3: 2, 4: 7, 5: 10, 
 6: 3, 7: 5, 8: 0}

Image montrant les valeurs d’état de la politique 1.

Valeurs d’état pour la politique 2

{0: 7, 1: 8, 2: 9, 
 3: 7, 4: 9, 5: 10, 
 6: 8, 7: 10, 8: 0}

Image montrant les valeurs d’état de la politique 2.

Reinforcement Learning avec Gymnasium en Python

Passons à la pratique !

Reinforcement Learning avec Gymnasium en Python

Preparing Video For Download...