Politiques et fonctions de valeur d'état

Reinforcement Learning avec Gymnasium en Python

Fouad Trad

Machine Learning Engineer

Politiques

  • Objectif de l'AR → formuler des politiques efficaces
  • Préciser l'action à prendre dans chaque état pour maximiser le rendement

Image montrant une grande feuille de route.

Reinforcement Learning avec Gymnasium en Python

Exemple de grille (« grid world »)

  • L'agent vise le diamant tout en évitant 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 de grille – récompenses

  • Attribuées selon les états :
    • Diamant : +10

Image montrant que les mouvements depuis les cases voisines vers le diamant donnent +10.

Reinforcement Learning avec Gymnasium en Python

Exemple de grille – récompenses

  • Attribuées selon les états :
    • Diamant : +10
    • Montagne : -2

Image montrant que l'action menant aux montagnes donne -2.

Reinforcement Learning avec Gymnasium en Python

Exemple de grille – récompenses

  • Attribuées selon les états :
    • Diamant : +10
    • Montagne : -2
    • Autres états : -1

Image montrant que tout autre mouvement donne -1.

Reinforcement Learning avec Gymnasium en Python

Exemple de 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 pour représenter les mouvements entre états.

Reinforcement Learning avec Gymnasium en Python

Fonctions de valeur d'état

  • Estimer la valeur d'un état
  • Rendement attendu en partant d'un état et en suivant la politique

Image montrant la formule de la fonction de valeur d'état comme le rendement actualisé en partant de s et en suivant la politique.

Reinforcement Learning avec Gymnasium en Python

Exemple de grille : valeurs d'état

Image montrant la politique avec des flèches pour représenter 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(goal \, state) = 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

Calcul des 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

Calcul des 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

Modifier les politiques

# 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 pour représenter 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...