Марковські процеси прийняття рішень

Reinforcement Learning з Gymnasium у Python

Fouad Trad

Machine Learning Engineer

MDP

  • Математична модель середовищ RL

Зображення складного середовища (розумне місто) та компонентів, які треба з нього виділити: стани, дії, винагороди й імовірності переходів.

Reinforcement Learning з Gymnasium у Python

MDP

  • Математична модель середовищ RL

Схема: зі складного середовища виділяємо компоненти MDP (стани, дії, винагороди та ймовірності переходів), щоб розв'язати його методами RL на основі моделей.

Reinforcement Learning з Gymnasium у Python

Властивість Маркова

  • Майбутній стан залежить лише від поточного стану та дії

Зображення шахівниці зі стрілками для можливих ходів.

Reinforcement Learning з Gymnasium у Python

Frozen Lake як MDP

  • Агент має дістатися цілі й не впасти в діри

Зображення середовища Frozen Lake.

Reinforcement Learning з Gymnasium у Python

Frozen Lake як MDP — стани

  • Позиції, які може займати агент

Зображення трьох різних позицій агента в середовищі Frozen Lake.

Reinforcement Learning з Gymnasium у Python

Frozen Lake як MDP — термінальні стани

  • Призводять до завершення епізоду

Зображення термінальних станів у середовищі Frozen Lake.

Reinforcement Learning з Gymnasium у Python

Frozen Lake як MDP — дії

  • Вгору, вниз, ліворуч, праворуч

Зображення дій у Frozen Lake з підписами: 0-left, 1-down, 2-right, 3-up.

Reinforcement Learning з Gymnasium у Python

Frozen Lake як MDP — переходи

  • Дії не завжди ведуть до очікуваних наслідків

Зображення: агент у верхньому лівому куті ґратки Frozen Lake намагається рухатись праворуч.

Reinforcement Learning з Gymnasium у Python

Frozen Lake як MDP — переходи

  • Дії не завжди ведуть до очікуваних наслідків

Зображення, що агент може рухатись праворуч.

Reinforcement Learning з Gymnasium у Python

Frozen Lake як MDP — переходи

  • Дії не завжди ведуть до очікуваних наслідків

Зображення, що агент також може рухатись вниз.

Reinforcement Learning з Gymnasium у Python

Frozen Lake як MDP — переходи

  • Дії не завжди ведуть до очікуваних наслідків

Зображення, що агент може також залишатися на місці.

Reinforcement Learning з Gymnasium у Python

Frozen Lake як MDP — переходи

  • Дії не завжди ведуть до очікуваних наслідків

Зображення: коли агент вирішує рухатись праворуч, існують імовірності піти праворуч, вниз або залишитися на місці.

  • Імовірності переходів: імовірність потрапити у стан за заданого стану та дії
Reinforcement Learning з Gymnasium у Python

Frozen Lake як MDP — винагороди

  • Винагорода нараховується лише в цільовому стані

Зображення агента в цільовому стані.

Reinforcement Learning з Gymnasium у Python

Стани й дії в 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 з Gymnasium у Python

Винагороди й переходи в Gymnasium

env.unwrapped.P: словник, де ключі — пари стан-дія

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 з Gymnasium у Python

Винагороди й переходи в Gymnasium — приклад

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

Зображення номерів дій: 0-left, 1-down, 2-right, 3-up.

Зображення: агент у стані № 6; стани нумеруються зверху ліворуч донизу праворуч, по рядках.

Reinforcement Learning з Gymnasium у Python

Давайте потренуємось!

Reinforcement Learning з Gymnasium у Python

Preparing Video For Download...