Markov-beslutsprocesser

Reinforcement Learning med Gymnasium i Python

Fouad Trad

Machine Learning Engineer

MDP

  • Modellerar RL-miljöer matematiskt

Bild som visar en komplex miljö (smart stad) och de komponenter vi ska extrahera: tillstånd, handlingar, belöningar och övergångssannolikheter.

Reinforcement Learning med Gymnasium i Python

MDP

  • Modellerar RL-miljöer matematiskt

Diagram som visar hur vi från en komplex miljö extraherar MDP-komponenter (tillstånd, handlingar, belöningar och övergångssannolikheter) för att lösa miljön med modellbaserade RL-tekniker.

Reinforcement Learning med Gymnasium i Python

Markov-egenskapen

  • Nästa tillstånd beror enbart på nuvarande tillstånd och handling

Bild som visar ett schackbräde med pilar för möjliga drag.

Reinforcement Learning med Gymnasium i Python

Frozen Lake som MDP

  • Agenten måste nå målet utan att falla i hålen

Bild som visar Frozen Lake-miljön.

Reinforcement Learning med Gymnasium i Python

Frozen Lake som MDP – tillstånd

  • Positioner som agenten kan befinna sig i

Bild som visar tre olika positioner för agenten i Frozen Lake-miljön.

Reinforcement Learning med Gymnasium i Python

Frozen Lake som MDP – terminala tillstånd

  • Leder till att episoden avslutas

Bild som visar de terminala tillstånden i Frozen Lake-miljön.

Reinforcement Learning med Gymnasium i Python

Frozen Lake som MDP – handlingar

  • Upp, ner, vänster, höger

Bild som visar handlingarna i Frozen Lake med tillhörande etiketter: 0-vänster, 1-ner, 2-höger och 3-upp.

Reinforcement Learning med Gymnasium i Python

Frozen Lake som MDP – övergångar

  • Handlingar leder inte alltid till förväntat resultat

Bild som visar agenten i övre vänstra hörnet av Frozen Lake-nätet med avsikt att röra sig åt höger.

Reinforcement Learning med Gymnasium i Python

Frozen Lake som MDP – övergångar

  • Handlingar leder inte alltid till förväntat resultat

Bild som visar att agenten kan röra sig åt höger.

Reinforcement Learning med Gymnasium i Python

Frozen Lake som MDP – övergångar

  • Handlingar leder inte alltid till förväntat resultat

Bild som visar att agenten också kan röra sig nedåt.

Reinforcement Learning med Gymnasium i Python

Frozen Lake som MDP – övergångar

  • Handlingar leder inte alltid till förväntat resultat

Bild som visar att agenten också kan stanna kvar på samma plats.

Reinforcement Learning med Gymnasium i Python

Frozen Lake som MDP – övergångar

  • Handlingar leder inte alltid till förväntat resultat

Bild som visar att när agenten väljer att röra sig åt höger finns det sannolikheter för att den rör sig höger, nedåt eller stannar kvar.

  • Övergångssannolikheter: sannolikheten att nå ett tillstånd givet ett tillstånd och en handling
Reinforcement Learning med Gymnasium i Python

Frozen Lake som MDP – belöningar

  • Belöning ges bara i måltillståndet

Bild som visar agenten i måltillståndet.

Reinforcement Learning med Gymnasium i Python

Tillstånd och handlingar i 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
Reinforcement Learning med Gymnasium i Python

Belöningar och övergångar i Gymnasium

env.unwrapped.P: ordbok där nycklarna är tillstånds-handlingspar

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 med Gymnasium i Python

Belöningar och övergångar i Gymnasium – exempel

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

Bild som visar handlingsnummer: 0-vänster, 1-ner, 2-höger, 3-upp.

Bild som visar agenten i tillstånd nummer 6, där tillstånden är numrerade från övre vänster till nedre höger, rad för rad.

Reinforcement Learning med Gymnasium i Python

Nu kör vi en övning!

Reinforcement Learning med Gymnasium i Python

Preparing Video For Download...