Introduction au deep reinforcement learning

Deep Reinforcement Learning en Python

Timothée Carayol

Principal Machine Learning Engineer, Komment

Pourquoi le Deep Reinforcement Learning

 

  • Le RL classique convient aux tâches peu dimensionnelles

 

 

  • Beaucoup d'applications ont des espaces d'états et/ou d'actions très dimensionnels

 

Un agent qui explore l'environnement Frozen Lake

Un agent qui joue au jeu vidéo classique Space Invaders

Deep Reinforcement Learning en Python

Les ingrédients du DRL

 

  1. Concepts de Reinforcement Learning
  2. Deep Learning et PyTorch

 

  • Le DRL combine ces notions avec des réseaux neuronaux profonds

 

Illustration en pixel art d'un cuisinier qui mélange des ingrédients

Deep Reinforcement Learning en Python

Le cadre du RL

 

  • Étape t :

 

Une grande boîte contenant deux plus petites, étiquetées « Agent » et « Environnement »

Deep Reinforcement Learning en Python

Le cadre du RL

 

  • Étape t :
    • L'agent observe l'état $s_t$

 

Une flèche rouge étiquetée État s_t va de l'environnement vers l'agent.

Deep Reinforcement Learning en Python

Le cadre du RL

 

  • Étape t :
    • L'agent observe l'état $s_t$
    • L'agent effectue l'action $a_t$

 

Une flèche rouge étiquetée action a_t va de l'agent vers l'environnement. La flèche d'état est maintenant noire.

Deep Reinforcement Learning en Python

Le cadre du RL

 

  • Étape t :
    • L'agent observe l'état $s_t$
    • L'agent effectue l'action $a_t$
  • Étape t+1 :
    • L'environnement accorde la récompense $r_t$
    • L'état évolue vers $s_{t+1}$

 

La flèche d'état s_t devient s_t+1 et redevient rouge. Une nouvelle flèche rouge étiquetée récompense r_t+1 va de l'environnement vers l'agent. La flèche d'action est maintenant noire.

Deep Reinforcement Learning en Python

Le cadre du RL

 

  • Étape t :
    • L'agent observe l'état $s_t$
    • L'agent effectue l'action $a_t$
  • Étape t+1 :
    • L'environnement accorde la récompense $r_t$
    • L'état évolue vers $s_{t+1}$
  • Répéter jusqu'à la fin de l'épisode

 

La même image que la diapositive précédente, mais toutes les flèches sont noires.

Deep Reinforcement Learning en Python

Politique $\pi(s_t)$

 

  • Association état→action qui décrit le comportement de l'agent dans un état donné $s_t$

 

  • Déterministe :
    • Retourne l'action choisie
  • Stochastique :
    • Retourne une distribution sur les actions
    • La politique est une distribution de probabilité sur les actions possibles
Deep Reinforcement Learning en Python

Trajectoire et retour d'épisode

 

Trajectoire tau : suite de tous les états et actions d'un épisode ; tau = ((s0, a0), (s1, a1), ... (sT, aT))

 

Retour d'épisode Rtau : total des récompenses (actualisées) accumulées le long de la trajectoire tau. Rtau = somme sur t de gamma à la puissance t fois r_t

Deep Reinforcement Learning en Python

Configuration de l'environnement

env = gym.make("ALE/SpaceInvaders-v5")

# Define neural network architecture class Network(nn.Module): def __init__(self, dim_inputs, dim_outputs): super(Network, self).__init__() self.linear = nn.Linear(dim_inputs, dim_outputs) def forward(self, x): return self.linear(x)
# Instantiate network network = Network(dim_inputs, dim_outputs)
# Instantiate optimizer optimizer = optim.Adam(network.parameters(), lr=0.0001)
Deep Reinforcement Learning en Python

La boucle de base

for episode in range(1000):
  state, info = env.reset()
  done = False

while not done:
action = select_action(network, state)
next_state, reward, terminated, truncated, _ = ( env.step(action)) done = terminated or truncated
loss = calculate_loss(network, state, action, next_state, reward, done) optimizer.zero_grad() loss.backward() optimizer.step()
state = next_state

 

  • Boucle externe : parcourir les épisodes
  • Boucle interne : parcourir les étapes
    • Sélectionner une action
    • Observer le nouvel état et la récompense
    • Calculer la perte et mettre à jour le réseau
    • Mettre à jour l'état
  • (Perte ?)
Deep Reinforcement Learning en Python

À venir

 

 

  • Le DRL est puissant !
  • Approches à valeur et à politique
  • DQN et améliorations
  • Méthodes de gradient de politique

Un apprenant DataCamp plonge au fond de la mer pour découvrir les secrets du Deep Reinforcement Learning

Deep Reinforcement Learning en Python

Passons à la pratique !

Deep Reinforcement Learning en Python

Preparing Video For Download...