Naviguer dans le cadre RL

Reinforcement Learning avec Gymnasium en Python

Fouad Trad

Machine Learning Engineer

Cadre RL

Image montrant un composant agent.

Reinforcement Learning avec Gymnasium en Python

Cadre RL

Image montrant les composants agent et environnement.

Reinforcement Learning avec Gymnasium en Python

Cadre RL

  • Agent : apprenant, décideur
  • Environnement : défis à résoudre

Image montrant tous les composants RL : agent, environnement, états, actions et récompenses.

Reinforcement Learning avec Gymnasium en Python

Cadre RL

  • Agent : apprenant, décideur
  • Environnement : défis à résoudre
  • État : instantané de l’environnement à un moment donné

Image montrant que l’environnement fournit des états à l’agent.

Reinforcement Learning avec Gymnasium en Python

Cadre RL

  • Agent : apprenant, décideur
  • Environnement : défis à résoudre
  • État : instantané de l’environnement à un moment donné
  • Action : choix de l’agent en réponse à l’état

Image montrant que l’agent répond à l’état de l’environnement en exécutant une action.

Reinforcement Learning avec Gymnasium en Python

Cadre RL

  • Agent : apprenant, décideur
  • Environnement : défis à résoudre
  • État : instantané de l’environnement à un moment donné
  • Action : choix de l’agent en réponse à l’état
  • Récompense : retour sur l’action de l’agent

Image montrant que l’agent répond à l’état de l’environnement en exécutant une action et reçoit une récompense de l’environnement selon l’action exécutée.

Reinforcement Learning avec Gymnasium en Python

Boucle d’interaction RL

env = create_environment()
state = env.get_initial_state()

for i in range(n_iterations): action = choose_action(state)
state, reward = env.execute(action)
update_knowledge(state, action, reward)

Image montrant que l’agent répond à l’état de l’environnement en exécutant une action et reçoit une récompense de l’environnement selon l’action exécutée.

Reinforcement Learning avec Gymnasium en Python

Tâches épisodiques vs continues

Tâches épisodiques
  • Tâches segmentées en épisodes
  • Un épisode a un début et une fin
  • Exemple : un agent joue aux échecs

Image montrant un chat jouant aux échecs.

Tâches continues
  • Interaction continue
  • Pas d’épisodes distincts
  • Exemple : réglage des feux de circulation

Image montrant une grenouille à vélo attendant que le feu passe au vert.

Reinforcement Learning avec Gymnasium en Python

Retour (Return)

  • Les actions ont des conséquences à long terme
  • L’agent vise à maximiser la récompense totale dans le temps
  • Retour (return) : somme de toutes les récompenses attendues

Image montrant que le retour est la somme des récompenses individuelles r_1 à r_n.

Reinforcement Learning avec Gymnasium en Python

Retour actualisé

  • Les récompenses immédiates valent plus que les futures
  • Retour actualisé : pondère davantage les récompenses proches
  • Facteur d’actualisation ($\gamma$) : réduit le poids des récompenses futures

Image montrant la formule du retour actualisé comme la somme des récompenses, chacune multipliée par le facteur d’actualisation, élevé à la puissance de son pas de temps.

Reinforcement Learning avec Gymnasium en Python

Facteur d’actualisation

  • Entre zéro et un
  • Équilibre récompenses immédiates et à long terme
    • Valeur faible → gains immédiats
    • Valeur élevée → bénéfices à long terme

Image montrant l’influence des valeurs extrêmes du facteur d’actualisation : zéro favorise seulement les gains immédiats, un favorise les gains futurs sans actualisation.

Reinforcement Learning avec Gymnasium en Python

Exemple numérique

import numpy as np
expected_rewards = np.array([1, 6, 3])

discount_factor = 0.9
discounts = np.array([discount_factor ** i for i in range(len(expected_rewards))])
print(f"Discounts: {discounts}")
Discounts: [1.   0.9  0.81]
discounted_return = np.sum(expected_rewards * discounts)
print(f"The discounted return is {discounted_return}")
The discounted return is 8.83
Reinforcement Learning avec Gymnasium en Python

Passons à la pratique !

Reinforcement Learning avec Gymnasium en Python

Preparing Video For Download...