Procesos de decisión de Markov

Reinforcement Learning con Gymnasium en Python

Fouad Trad

Machine Learning Engineer

MDP

  • Modela matemáticamente los entornos de RL

Imagen que muestra un entorno complejo (ciudad inteligente) y los componentes que debemos extraer: estados, acciones, recompensas y probabilidades de transición.

Reinforcement Learning con Gymnasium en Python

MDP

  • Modela matemáticamente los entornos de RL

Diagrama que muestra cómo, a partir de un entorno complejo, extraemos componentes de MDP (estados, acciones, recompensas y probabilidades de transición) para resolverlo con técnicas de RL basado en modelos.

Reinforcement Learning con Gymnasium en Python

Propiedad de Markov

  • El estado futuro depende solo del estado actual y la acción

Imagen que muestra un tablero de ajedrez con flechas de posibles movimientos.

Reinforcement Learning con Gymnasium en Python

Frozen Lake como MDP

  • El agente debe llegar a la meta sin caer en agujeros

Imagen que muestra el entorno del lago helado.

Reinforcement Learning con Gymnasium en Python

Frozen Lake como MDP - estados

  • Posiciones que el agente puede ocupar

Imagen que muestra tres posiciones diferentes del agente dentro del entorno Frozen Lake.

Reinforcement Learning con Gymnasium en Python

Frozen Lake como MDP - estados terminales

  • Llevan a terminar el episodio

Imagen que muestra los estados terminales en el entorno del lago helado.

Reinforcement Learning con Gymnasium en Python

Frozen Lake como MDP - acciones

  • Arriba, abajo, izquierda, derecha

Imagen que muestra las acciones en Frozen Lake con sus etiquetas: 0-izquierda, 1-abajo, 2-derecha y 3-arriba.

Reinforcement Learning con Gymnasium en Python

Frozen Lake como MDP - transiciones

  • Las acciones no siempre dan el resultado esperado

Imagen que muestra al agente en la esquina superior izquierda del lago helado intentando moverse a la derecha.

Reinforcement Learning con Gymnasium en Python

Frozen Lake como MDP - transiciones

  • Las acciones no siempre dan el resultado esperado

Imagen que muestra que el agente puede moverse a la derecha.

Reinforcement Learning con Gymnasium en Python

Frozen Lake como MDP - transiciones

  • Las acciones no siempre dan el resultado esperado

Imagen que muestra que el agente también puede moverse hacia abajo.

Reinforcement Learning con Gymnasium en Python

Frozen Lake como MDP - transiciones

  • Las acciones no siempre dan el resultado esperado

Imagen que muestra que el agente también puede quedarse en el mismo lugar.

Reinforcement Learning con Gymnasium en Python

Frozen Lake como MDP - transiciones

  • Las acciones no siempre dan el resultado esperado

Imagen que muestra que, cuando el agente decide moverse a la derecha, hay probabilidades de ir a la derecha, abajo o quedarse en el mismo lugar.

  • Probabilidades de transición: probabilidad de llegar a un estado dado un estado y una acción
Reinforcement Learning con Gymnasium en Python

Frozen Lake como MDP - recompensas

  • Recompensa solo en el estado objetivo

Imagen que muestra al agente en el estado objetivo.

Reinforcement Learning con Gymnasium en Python

Estados y acciones en 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 con Gymnasium en Python

Recompensas y transiciones en Gymnasium

env.unwrapped.P: diccionario donde las claves son pares estado-acción

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 con Gymnasium en Python

Recompensas y transiciones en Gymnasium - ejemplo

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)]

Imagen que muestra los números de acción: 0-izquierda, 1-abajo, 2-derecha, 3-arriba.

Imagen que muestra al agente en el estado número 6 con los estados numerados de izquierda a derecha y de arriba abajo, línea por línea.

Reinforcement Learning con Gymnasium en Python

¡Vamos a practicar!

Reinforcement Learning con Gymnasium en Python

Preparing Video For Download...