Procesy decyzyjne Markowa

Uczenie przez wzmacnianie z Gymnasium w Pythonie

Fouad Trad

Machine Learning Engineer

MDP

  • Matematyczny model środowisk RL

Obraz przedstawiający złożone środowisko (inteligentne miasto) i składniki do wyodrębnienia: stany, akcje, nagrody i prawdopodobieństwa przejść.

Uczenie przez wzmacnianie z Gymnasium w Pythonie

MDP

  • Matematyczny model środowisk RL

Diagram pokazujący, jak ze złożonego środowiska wyodrębniamy składniki MDP (stany, akcje, nagrody i prawdopodobieństwa przejść) w celu rozwiązania środowiska metodami RL opartymi na modelu.

Uczenie przez wzmacnianie z Gymnasium w Pythonie

Własność Markowa

  • Przyszły stan zależy wyłącznie od bieżącego stanu i akcji

Obraz przedstawiający szachownicę z zaznaczonymi możliwymi ruchami.

Uczenie przez wzmacnianie z Gymnasium w Pythonie

Frozen Lake jako MDP

  • Agent musi dotrzeć do celu bez wpadnięcia w dziury

Obraz przedstawiający środowisko Frozen Lake.

Uczenie przez wzmacnianie z Gymnasium w Pythonie

Frozen Lake jako MDP – stany

  • Pozycje, które agent może zajmować

Obraz przedstawiający trzy różne pozycje agenta w środowisku Frozen Lake.

Uczenie przez wzmacnianie z Gymnasium w Pythonie

Frozen Lake jako MDP – stany terminalne

  • Prowadzą do zakończenia epizodu

Obraz przedstawiający stany terminalne w środowisku Frozen Lake.

Uczenie przez wzmacnianie z Gymnasium w Pythonie

Frozen Lake jako MDP – akcje

  • Góra, dół, lewo, prawo

Obraz przedstawiający akcje w Frozen Lake z etykietami: 0-lewo, 1-dół, 2-prawo, 3-góra.

Uczenie przez wzmacnianie z Gymnasium w Pythonie

Frozen Lake jako MDP – przejścia

  • Akcje nie zawsze prowadzą do oczekiwanych wyników

Obraz przedstawiający agenta w lewym górnym rogu siatki Frozen Lake próbującego poruszyć się w prawo.

Uczenie przez wzmacnianie z Gymnasium w Pythonie

Frozen Lake jako MDP – przejścia

  • Akcje nie zawsze prowadzą do oczekiwanych wyników

Obraz pokazujący, że agent może poruszyć się w prawo.

Uczenie przez wzmacnianie z Gymnasium w Pythonie

Frozen Lake jako MDP – przejścia

  • Akcje nie zawsze prowadzą do oczekiwanych wyników

Obraz pokazujący, że agent może również poruszyć się w dół.

Uczenie przez wzmacnianie z Gymnasium w Pythonie

Frozen Lake jako MDP – przejścia

  • Akcje nie zawsze prowadzą do oczekiwanych wyników

Obraz pokazujący, że agent może pozostać w tym samym miejscu.

Uczenie przez wzmacnianie z Gymnasium w Pythonie

Frozen Lake jako MDP – przejścia

  • Akcje nie zawsze prowadzą do oczekiwanych wyników

Obraz pokazujący, że gdy agent decyduje się poruszyć w prawo, istnieją prawdopodobieństwa przejścia w prawo, w dół lub pozostania w miejscu.

  • Prawdopodobieństwa przejść: szansa osiągnięcia stanu dla danego stanu i akcji
Uczenie przez wzmacnianie z Gymnasium w Pythonie

Frozen Lake jako MDP – nagrody

  • Nagroda przyznawana tylko w stanie docelowym

Obraz przedstawiający agenta w stanie docelowym.

Uczenie przez wzmacnianie z Gymnasium w Pythonie

Stany i akcje w 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
Uczenie przez wzmacnianie z Gymnasium w Pythonie

Nagrody i przejścia w Gymnasium

env.unwrapped.P: słownik, którego kluczami są pary stan-akcja

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.
]
Uczenie przez wzmacnianie z Gymnasium w Pythonie

Nagrody i przejścia w Gymnasium – przykład

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

Obraz przedstawiający numery akcji: 0-lewo, 1-dół, 2-prawo, 3-góra.

Obraz przedstawiający agenta w stanie numer 6, gdzie stany są numerowane od lewego górnego do prawego dolnego rogu, wiersz po wierszu.

Uczenie przez wzmacnianie z Gymnasium w Pythonie

Czas na ćwiczenia!

Uczenie przez wzmacnianie z Gymnasium w Pythonie

Preparing Video For Download...