Fonctions valeur d'action

Reinforcement Learning avec Gymnasium en Python

Fouad Trad

Machine Learning Engineer

Fonctions valeur d’action (Q-values)

  • Rendement attendu de :
    • En partant de l’état $s$
    • En effectuant l’action $a$
    • En suivant la politique
  • Estime l’intérêt des actions selon l’état

Image montrant la formule pour calculer la valeur q d’un état et d’une action, Q(s,a), comme la somme de la récompense immédiate après l’action et de la valeur actualisée du nouvel état, calculée pour une politique donnée.

Reinforcement Learning avec Gymnasium en Python

Monde en grille

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

  • Valeurs d’état

Image montrant les valeurs d’état calculées plus tôt pour tous les états.

Reinforcement Learning avec Gymnasium en Python

Q-values – état 4

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

  • Agent né dans l’état 4

Image montrant les valeurs d’état calculées plus tôt pour tous les états.

Reinforcement Learning avec Gymnasium en Python

Q-values – état 4

Image montrant les 4 actions possibles en état 4 avec leurs récompenses.

  • L’agent peut aller haut, bas, gauche, droite

Image montrant les valeurs d’état calculées plus tôt pour tous les états.

Reinforcement Learning avec Gymnasium en Python

État 4 – action bas

Image montrant l’agent allant vers le bas depuis l’état 4 pour atteindre l’état 7.

  • Récompense : -2, valeur d’état : 5

Image montrant les valeurs d’état calculées plus tôt pour tous les états.

Reinforcement Learning avec Gymnasium en Python

État 4 – action bas

Image montrant l’agent allant vers le bas depuis l’état 4 vers l’état 7, et la valeur q correspondante de 3.

  • $Q(4, \text{down}) = -2 + 1 \times 5 = 3$

Image montrant les valeurs d’état calculées plus tôt pour tous les états.

Reinforcement Learning avec Gymnasium en Python

État 4 – action gauche

Image montrant l’agent allant vers la gauche depuis l’état 4 vers l’état 3, et la valeur q correspondante de 1.

  • $Q(4, \text{left}) = -1 + 1 \times 2 = 1$

Image montrant les valeurs d’état calculées plus tôt pour tous les états.

Reinforcement Learning avec Gymnasium en Python

État 4 – action haut

Image montrant l’agent allant vers le haut depuis l’état 4 vers l’état 1, et la valeur q correspondante de 7.

  • $Q(4, \text{up}) = -1 + 1 \times 8 = 7$

Image montrant les valeurs d’état calculées plus tôt pour tous les états.

Reinforcement Learning avec Gymnasium en Python

État 4 – action droite

Image montrant l’agent allant vers la droite depuis l’état 4 vers l’état 5, et la valeur q correspondante de 9.

  • $Q(4, \text{right}) = -1 + 1 \times 10 = 9$

Image montrant les valeurs d’état calculées plus tôt pour tous les états.

Reinforcement Learning avec Gymnasium en Python

Toutes les Q-values

Image montrant les Q-values calculées pour toutes les paires état–action.

Reinforcement Learning avec Gymnasium en Python

Calcul des Q-values

def compute_q_value(state, action):

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

Image montrant la formule pour calculer la valeur q d’un état et d’une action, Q(s,a), comme la somme de la récompense immédiate après l’action et de la valeur actualisée du nouvel état, calculée pour une politique donnée.

Reinforcement Learning avec Gymnasium en Python

Calcul des Q-values

Q = {(state, action): compute_q_value(state, action)
     for state in range(num_states) 
     for action in range(num_actions)}

print(Q)
Reinforcement Learning avec Gymnasium en Python

Calcul des Q-values

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

Image montrant les Q-values calculées pour toutes les paires état–action.

Reinforcement Learning avec Gymnasium en Python

Améliorer la politique

Image montrant les Q-values calculées pour toutes les paires état–action.

Reinforcement Learning avec Gymnasium en Python

Améliorer la politique

  • Pour chaque état, choisir l’action à Q-value maximale

Image montrant les Q-values calculées pour toutes les paires état–action, avec la valeur maximale de chaque état encerclée.

Reinforcement Learning avec Gymnasium en Python

Améliorer la politique

Image montrant l’ancienne politique et ses Q-values correspondantes Ancienne politique

Image montrant la nouvelle politique en prenant l’action menant à la Q-value maximale.

Reinforcement Learning avec Gymnasium en Python

Améliorer la politique

improved_policy = {}


for state in range(num_states-1): max_action = max(range(num_actions), key=lambda action: Q[(state, action)])
improved_policy[state] = max_action
print(improved_policy)
{0: 2, 1: 2, 2: 1, 
 3: 2, 4: 2, 5: 1, 
 6: 2, 7: 2}
Reinforcement Learning avec Gymnasium en Python

Passons à la pratique !

Reinforcement Learning avec Gymnasium en Python

Preparing Video For Download...