Navegando el marco de RL

Reinforcement Learning con Gymnasium en Python

Fouad Trad

Machine Learning Engineer

Marco de RL

Imagen que muestra un componente agente.

Reinforcement Learning con Gymnasium en Python

Marco de RL

Imagen que muestra los componentes agente y entorno.

Reinforcement Learning con Gymnasium en Python

Marco de RL

  • Agente: quien aprende y decide
  • Entorno: retos a resolver

Imagen que muestra todos los componentes de RL: agente, entorno, estados, acciones y recompensas.

Reinforcement Learning con Gymnasium en Python

Marco de RL

  • Agente: quien aprende y decide
  • Entorno: retos a resolver
  • Estado: foto del entorno en un momento

Imagen que muestra que el entorno entrega estados al agente.

Reinforcement Learning con Gymnasium en Python

Marco de RL

  • Agente: quien aprende y decide
  • Entorno: retos a resolver
  • Estado: foto del entorno en un momento
  • Acción: elección del agente según el estado

Imagen que muestra que el agente responde al estado del entorno ejecutando una acción.

Reinforcement Learning con Gymnasium en Python

Marco de RL

  • Agente: quien aprende y decide
  • Entorno: retos a resolver
  • Estado: foto del entorno en un momento
  • Acción: elección del agente según el estado
  • Recompensa: feedback por la acción del agente

Imagen que muestra que el agente responde al estado del entorno ejecutando una acción y recibe una recompensa del entorno según la acción ejecutada.

Reinforcement Learning con Gymnasium en Python

Bucle de interacción en 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)

Imagen que muestra que el agente responde al estado del entorno ejecutando una acción y recibe una recompensa del entorno según la acción ejecutada.

Reinforcement Learning con Gymnasium en Python

Tareas episódicas vs. continuas

Tareas episódicas
  • Tareas divididas en episodios
  • Un episodio tiene inicio y fin
  • Ejemplo: un agente jugando al ajedrez

Imagen que muestra un gato jugando al ajedrez.

Tareas continuas
  • Interacción continua
  • Sin episodios definidos
  • Ejemplo: ajustar semáforos

Imagen que muestra una rana en bici esperando a que el semáforo se ponga en verde.

Reinforcement Learning con Gymnasium en Python

Retorno

  • Las acciones tienen consecuencias a largo plazo
  • El agente busca maximizar la recompensa total en el tiempo
  • Retorno: suma de todas las recompensas esperadas

Imagen que muestra que el retorno es la suma de recompensas individuales r_1 a r_n.

Reinforcement Learning con Gymnasium en Python

Retorno descontado

  • Las recompensas inmediatas valen más que las futuras
  • Retorno descontado: da más peso a las cercanas
  • Factor de descuento ($\gamma$): rebaja las futuras

Imagen que muestra la fórmula del retorno descontado como la suma de recompensas, cada una multiplicada por el factor de descuento elevado al paso temporal correspondiente.

Reinforcement Learning con Gymnasium en Python

Factor de descuento

  • Entre cero y uno
  • Equilibra recompensas inmediatas y a largo plazo
    • Valor bajo → ganancias inmediatas
    • Valor alto → beneficios a largo plazo

Imagen que muestra la influencia de valores extremos del factor de descuento: cero favorece solo ganancias inmediatas y uno favorece futuras sin descuento.

Reinforcement Learning con Gymnasium en Python

Ejemplo numérico

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

¡Vamos a practicar!

Reinforcement Learning con Gymnasium en Python

Preparing Video For Download...