Orientace v rámci RL

Reinforcement Learning with Gymnasium in Python

Fouad Trad

Machine Learning Engineer

Rámec RL

Obrázek znázorňující komponentu agenta.

Reinforcement Learning with Gymnasium in Python

Rámec RL

Obrázek znázorňující komponenty agenta a prostředí.

Reinforcement Learning with Gymnasium in Python

Rámec RL

  • Agent: učí se, rozhoduje
  • Prostředí: problémy k řešení

Obrázek znázorňující všechny komponenty RL: agenta, prostředí, stavy, akce a odměny.

Reinforcement Learning with Gymnasium in Python

Rámec RL

  • Agent: učí se, rozhoduje
  • Prostředí: problémy k řešení
  • Stav: snímek prostředí v daném čase

Obrázek znázorňující, že prostředí předává stavy agentovi.

Reinforcement Learning with Gymnasium in Python

Rámec RL

  • Agent: učí se, rozhoduje
  • Prostředí: problémy k řešení
  • Stav: snímek prostředí v daném čase
  • Akce: volba agenta jako reakce na stav

Obrázek znázorňující, že agent reaguje na stav prostředí provedením akce.

Reinforcement Learning with Gymnasium in Python

Rámec RL

  • Agent: učí se, rozhoduje
  • Prostředí: problémy k řešení
  • Stav: snímek prostředí v daném čase
  • Akce: volba agenta jako reakce na stav
  • Odměna: zpětná vazba za akci agenta

Obrázek znázorňující, že agent reaguje na stav prostředí provedením akce a dostává od prostředí odměnu na základě provedené akce.

Reinforcement Learning with Gymnasium in Python

Interakční smyčka 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)

Obrázek znázorňující, že agent reaguje na stav prostředí provedením akce a dostává od prostředí odměnu na základě provedené akce.

Reinforcement Learning with Gymnasium in Python

Epizodické vs. kontinuální úlohy

Epizodické úlohy
  • Úlohy rozdělené do epizod
  • Epizoda má začátek a konec
  • Příklad: agent hrající šachy

Obrázek znázorňující kočku hrající šachy.

Kontinuální úlohy
  • Nepřetržitá interakce
  • Žádné oddělené epizody
  • Příklad: Řízení semaforů

Obrázek znázorňující žábu jedoucí na kole a čekající na zelený signál semaforu.

Reinforcement Learning with Gymnasium in Python

Výnos

  • Akce mají dlouhodobé důsledky
  • Agent se snaží maximalizovat celkovou odměnu
  • Výnos: součet všech očekávaných odměn

Obrázek znázorňující, že výnos je součtem jednotlivých odměn r_1 až r_n.

Reinforcement Learning with Gymnasium in Python

Diskontovaný výnos

  • Okamžité odměny jsou cennější než budoucí
  • Diskontovaný výnos: přikládá větší váhu bližším odměnám
  • Diskontní faktor ($\gamma$): snižuje váhu budoucích odměn

Obrázek znázorňující vzorec diskontovaného výnosu jako součtu odměn, z nichž každá je vynásobena diskontním faktorem umocněným na příslušný časový krok.

Reinforcement Learning with Gymnasium in Python

Diskontní faktor

  • Mezi nulou a jedničkou
  • Vyvažuje okamžité a dlouhodobé odměny
    • Nižší hodnota → okamžitý zisk
    • Vyšší hodnota → dlouhodobý přínos

Obrázek znázorňující vliv krajních hodnot diskontního faktoru: hodnota nula upřednostňuje pouze okamžitý zisk, hodnota jedna upřednostňuje budoucí zisky bez diskontování.

Reinforcement Learning with Gymnasium in Python

Numerický příklad

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 with Gymnasium in Python

Pojďme si procvičit!

Reinforcement Learning with Gymnasium in Python

Preparing Video For Download...