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, preneur de décisions
  • Environnement : défis à relever

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

Reinforcement Learning avec Gymnasium en Python

Cadre RL

  • Agent : apprenant, preneur de décisions
  • Environnement : défis à relever
  • É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, preneur de décisions
  • Environnement : défis à relever
  • É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, preneur de décisions
  • Environnement : défis à relever
  • État : instantané de l'environnement à un moment donné
  • Action : choix de l'agent en réponse à l'état
  • Récompense : rétroaction à 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 découpées en épisodes
  • Un épisode a un début et une fin
  • Exemple : un agent qui joue aux échecs

Image montrant un chat qui joue aux échecs.

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

Image montrant une grenouille à vélo qui attend que le feu de circulation tourne au vert.

Reinforcement Learning avec Gymnasium en Python

Retour

  • Les actions ont des effets à long terme
  • L'agent vise à maximiser la récompense totale dans le temps
  • Retour : 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é : accorde plus de poids aux récompenses proches
  • Facteur d'actualisation ($\gamma$) : réduit les 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 étape temporelle.

Reinforcement Learning avec Gymnasium en Python

Facteur d'actualisation

  • Entre zéro et un
  • Équilibre entre récompenses immédiates et à long terme
    • Valeur plus faible → gains immédiats
    • Valeur plus é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, et 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...