Markov-beslissingsprocessen

Reinforcement Learning met Gymnasium in Python

Fouad Trad

Machine Learning Engineer

MDP

  • Modelleert RL-omgevingen wiskundig

Afbeelding van een complexe omgeving (smart city) en de componenten die we eruit halen: toestanden, acties, beloningen en transitiekansen.

Reinforcement Learning met Gymnasium in Python

MDP

  • Modelleert RL-omgevingen wiskundig

Diagram dat laat zien hoe we uit een complexe omgeving MDP-componenten halen (toestanden, acties, beloningen en transitiekansen) om die met modelgebaseerde RL op te lossen.

Reinforcement Learning met Gymnasium in Python

Markov-eigenschap

  • Toekomstige toestand hangt alleen af van de huidige toestand en actie

Afbeelding met een schaakbord en pijlen voor mogelijke zetten.

Reinforcement Learning met Gymnasium in Python

Frozen Lake als MDP

  • Agent moet de goal halen zonder in gaten te vallen

Afbeelding van de Frozen Lake-omgeving.

Reinforcement Learning met Gymnasium in Python

Frozen Lake als MDP - toestanden

  • Posities die de agent kan innemen

Afbeelding met drie posities van de agent in de Frozen Lake-omgeving.

Reinforcement Learning met Gymnasium in Python

Frozen Lake als MDP - terminale toestanden

  • Leiden tot het einde van een episode

Afbeelding met de terminale toestanden in de Frozen Lake-omgeving.

Reinforcement Learning met Gymnasium in Python

Frozen Lake als MDP - acties

  • Omhoog, omlaag, links, rechts

Afbeelding met de acties in Frozen Lake en hun labels: 0-links, 1-omlaag, 2-rechts, 3-omhoog.

Reinforcement Learning met Gymnasium in Python

Frozen Lake als MDP - transities

  • Acties leiden niet altijd tot de verwachte uitkomst

Afbeelding met de agent linksboven in het rooster die naar rechts wil bewegen.

Reinforcement Learning met Gymnasium in Python

Frozen Lake als MDP - transities

  • Acties leiden niet altijd tot de verwachte uitkomst

Afbeelding die laat zien dat de agent naar rechts kan bewegen.

Reinforcement Learning met Gymnasium in Python

Frozen Lake als MDP - transities

  • Acties leiden niet altijd tot de verwachte uitkomst

Afbeelding die laat zien dat de agent ook omlaag kan bewegen.

Reinforcement Learning met Gymnasium in Python

Frozen Lake als MDP - transities

  • Acties leiden niet altijd tot de verwachte uitkomst

Afbeelding die laat zien dat de agent ook kan blijven staan.

Reinforcement Learning met Gymnasium in Python

Frozen Lake als MDP - transities

  • Acties leiden niet altijd tot de verwachte uitkomst

Afbeelding die laat zien dat als de agent rechts wil, er kansen zijn om rechts, omlaag te gaan of te blijven staan.

  • Transitiekansen: kans op een volgende toestand gegeven een toestand en actie
Reinforcement Learning met Gymnasium in Python

Frozen Lake als MDP - beloningen

  • Beloning alleen in de doelsituatie

Afbeelding met de agent in de doeltoestand.

Reinforcement Learning met Gymnasium in Python

Gymnasium-toestanden en -acties

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

Gymnasium-beloningen en transities

env.unwrapped.P: dictionary met toestand-actieparen als sleutels

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

Gymnasium-beloningen en transities - voorbeeld

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

Afbeelding met actienummers: 0-links, 1-omlaag, 2-rechts, 3-omhoog.

Afbeelding met de agent in toestand 6; toestanden genummerd van linksboven naar rechtsonder, regel voor regel.

Reinforcement Learning met Gymnasium in Python

Laten we oefenen!

Reinforcement Learning met Gymnasium in Python

Preparing Video For Download...