Processos de Decisão de Markov

Reinforcement Learning com Gymnasium em Python

Fouad Trad

Machine Learning Engineer

MDP

  • Modela ambientes de RL matematicamente

Imagem mostrando um ambiente complexo (cidade inteligente) e os componentes a extrair: estados, ações, recompensas e probabilidades de transição.

Reinforcement Learning com Gymnasium em Python

MDP

  • Modela ambientes de RL matematicamente

Diagrama mostrando como, de um ambiente complexo, extraímos componentes do MDP (estados, ações, recompensas e probabilidades de transição) para resolver com técnicas de RL baseado em modelo.

Reinforcement Learning com Gymnasium em Python

Propriedade de Markov

  • Próximo estado depende só do estado atual e da ação

Imagem mostrando um tabuleiro de xadrez com setas para possíveis jogadas.

Reinforcement Learning com Gymnasium em Python

Frozen Lake como MDP

  • O agente deve chegar ao objetivo sem cair nos buracos

Imagem mostrando o ambiente do lago congelado.

Reinforcement Learning com Gymnasium em Python

Frozen Lake como MDP - estados

  • Posições que o agente pode ocupar

Imagem mostrando três posições do agente no ambiente Frozen Lake.

Reinforcement Learning com Gymnasium em Python

Frozen Lake como MDP - estados terminais

  • Levam ao fim do episódio

Imagem mostrando os estados terminais no ambiente do lago congelado.

Reinforcement Learning com Gymnasium em Python

Frozen Lake como MDP - ações

  • Cima, baixo, esquerda, direita

Imagem mostrando as ações no Frozen Lake e seus rótulos: 0-esquerda, 1-baixo, 2-direita, 3-cima.

Reinforcement Learning com Gymnasium em Python

Frozen Lake como MDP - transições

  • Ações nem sempre geram o resultado esperado

Imagem mostrando o agente no canto superior esquerdo do grid tentando ir para a direita.

Reinforcement Learning com Gymnasium em Python

Frozen Lake como MDP - transições

  • Ações nem sempre geram o resultado esperado

Imagem mostrando que o agente pode ir para a direita.

Reinforcement Learning com Gymnasium em Python

Frozen Lake como MDP - transições

  • Ações nem sempre geram o resultado esperado

Imagem mostrando que o agente também pode descer.

Reinforcement Learning com Gymnasium em Python

Frozen Lake como MDP - transições

  • Ações nem sempre geram o resultado esperado

Imagem mostrando que o agente também pode ficar no mesmo lugar.

Reinforcement Learning com Gymnasium em Python

Frozen Lake como MDP - transições

  • Ações nem sempre geram o resultado esperado

Imagem mostrando que, ao decidir ir para a direita, há probabilidades de ir para a direita, descer ou ficar no mesmo lugar.

  • Probabilidades de transição: chance de alcançar um estado dado um estado e uma ação
Reinforcement Learning com Gymnasium em Python

Frozen Lake como MDP - recompensas

  • Recompensa só no estado objetivo

Imagem mostrando o agente no estado objetivo.

Reinforcement Learning com Gymnasium em Python

Estados e ações no Gymnasium

import gymnasium as gym


env = gym.make('FrozenLake', is_slippery=True)
print(env.action_space)
print(env.observation_space)
print("Number of actions: ", env.action_space.n)
print("Number of states: ", env.observation_space.n)
Discrete(4)

Discrete(16)
Number of actions: 4
Number of states: 16
Reinforcement Learning com Gymnasium em Python

Recompensas e transições no Gymnasium

env.unwrapped.P: dicionário onde as chaves são pares estado-ação

print(env.unwrapped.P[state][action])
[
  (probability_1, next_state_1, reward_1, is_terminal_1), 
  (probability_2, next_state_2, reward_2, is_terminal_2), 
  etc.
]
Reinforcement Learning com Gymnasium em Python

Recompensas e transições no Gymnasium - exemplo

state = 6
action = 0

print(env.unwrapped.P[state][action])
[(0.3333333333333333, 2, 0.0, False), 
(0.3333333333333333, 5, 0.0, True), 
(0.3333333333333333, 10, 0.0, False)]

Imagem mostrando os números das ações: 0-esquerda, 1-baixo, 2-direita, 3-cima.

Imagem mostrando o agente no estado 6, com estados numerados da esquerda superior para a direita inferior, linha a linha.

Reinforcement Learning com Gymnasium em Python

Vamos praticar!

Reinforcement Learning com Gymnasium em Python

Preparing Video For Download...