Políticas y funciones de valor de estado

Reinforcement Learning con Gymnasium en Python

Fouad Trad

Machine Learning Engineer

Políticas

  • Objetivo del RL → formular políticas efectivas
  • Especifican qué acción tomar en cada estado para maximizar el retorno

Imagen que muestra una gran hoja de ruta.

Reinforcement Learning con Gymnasium en Python

Ejemplo grid world

  • El agente busca el diamante evitando montañas
  • Nueve estados
  • Movimientos deterministas

action_numbers_green.png

Imagen que muestra el entorno con 9 celdas de rejilla, 2 montañas y un diamante.

Reinforcement Learning con Gymnasium en Python

Ejemplo grid world: recompensas

  • Dados por estado:
    • Diamante: +10

Imagen que muestra que los movimientos desde celdas vecinas al diamante dan +10.

Reinforcement Learning con Gymnasium en Python

Ejemplo grid world: recompensas

  • Dados por estado:
    • Diamante: +10
    • Montaña: -2

Imagen que muestra que una acción que lleva a montañas da una recompensa de -2.

Reinforcement Learning con Gymnasium en Python

Ejemplo grid world: recompensas

  • Dados por estado:
    • Diamante: +10
    • Montaña: -2
    • Otros estados: -1

Imagen que muestra que cualquier otro movimiento da una recompensa de -1.

Reinforcement Learning con Gymnasium en Python

Ejemplo grid world: política

# 0: left, 1: down, 2: right, 3: up
policy = {
    0:1, 1:2, 2:1, 
    3:1, 4:3, 5:1,
    6:2, 7:3
}

state, info = env.reset() terminated = False while not terminated: action = policy[state] state, reward, terminated, _, _ = env.step(action)

Imagen que muestra la política con flechas que representan los movimientos entre estados.

Reinforcement Learning con Gymnasium en Python

Funciones de valor de estado

  • Estima el valor del estado
  • Retorno esperado desde el estado siguiendo la política

Imagen que muestra la fórmula de la función de valor de estado como el retorno descontado desde s siguiendo la política.

Reinforcement Learning con Gymnasium en Python

Ejemplo grid world: valores de estado

Imagen que muestra la política con flechas que representan los movimientos entre estados.

  • Nueve estados → nueve valores de estado
  • Factor de descuento: $\gamma = 1$
Reinforcement Learning con Gymnasium en Python

Valor del estado objetivo

Imagen que muestra al agente en el estado objetivo.

  • Si empieza en el objetivo, el agente no se mueve
  • $V(\text{estado objetivo}) = 0$

Imagen que muestra que el valor del estado objetivo es 0

Reinforcement Learning con Gymnasium en Python

Valor del estado 5

Imagen que muestra al agente en el estado 5.

  • Empezando en 5, el agente va al objetivo
  • $V(5) = 10$

Imagen que muestra que el valor del estado 5 es 10

Reinforcement Learning con Gymnasium en Python

Valor del estado 2

Imagen que muestra al agente en el estado 2.

  • Empezando en 2, recompensas: $-1, 10$
  • $ V(2) = (1 \times -1) + (1 \times 10) = 9$

Imagen que muestra que el valor del estado 2 es 9.

Reinforcement Learning con Gymnasium en Python

Todos los valores de estado

Imagen que muestra todos los valores de los 9 estados del entorno.

Reinforcement Learning con Gymnasium en Python

Ecuación de Bellman

  • Fórmula recursiva
  • Calcula valores de estado

Imagen que muestra la ecuación de Bellman como la suma de la recompensa inmediata del estado actual y el valor descontado del siguiente estado.

Reinforcement Learning con Gymnasium en Python

Cálculo de valores de estado

def compute_state_value(state):

if state == terminal_state: return 0
action = policy[state]
_, next_state, reward, _ = env.unwrapped.P[state][action][0]
return reward + gamma * compute_state_value(next_state)

Imagen que muestra la ecuación de Bellman como la suma de la recompensa inmediata del estado actual y el valor descontado del siguiente estado.

Reinforcement Learning con Gymnasium en Python

Cálculo de valores de estado

terminal_state = 8
gamma = 1

V = {state: compute_state_value(state) for state in range(num_states)}
print(V)
{0: 1, 1: 8, 2: 9, 
 3: 2, 4: 7, 5: 10, 
 6: 3, 7: 5, 8: 0}

Imagen que muestra todos los valores de los 9 estados del entorno.

Reinforcement Learning con Gymnasium en Python

Cambiar políticas

# 0: left, 1: down, 2: right, 3: up
policy_two = {
    0:2, 1:2, 2:1,
    3:2, 4:2, 5:1,
    6:2, 7:2
}

V_2 = {state: compute_state_value(state) for state in range(num_states)} print(V_2)

Imagen que muestra la política con flechas que representan los movimientos entre estados.

Reinforcement Learning con Gymnasium en Python

Comparar políticas

Valores de estado para la política 1

{0: 1, 1: 8, 2: 9, 
 3: 2, 4: 7, 5: 10, 
 6: 3, 7: 5, 8: 0}

Imagen que muestra los valores de estado de la política 1.

Valores de estado para la política 2

{0: 7, 1: 8, 2: 9, 
 3: 7, 4: 9, 5: 10, 
 6: 8, 7: 10, 8: 0}

Imagen que muestra los valores de estado de la política 2.

Reinforcement Learning con Gymnasium en Python

¡Vamos a practicar!

Reinforcement Learning con Gymnasium en Python

Preparing Video For Download...