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

Обучение с подкреплением с Gymnasium на Python

Fouad Trad

Machine Learning Engineer

МПР

  • Математически моделирует среды ОО

Изображение сложной среды (умный город) и компонентов, которые из неё извлекаются: состояния, действия, награды и вероятности переходов.

Обучение с подкреплением с Gymnasium на Python

МПР

  • Математически моделирует среды ОО

Схема, показывающая, как из сложной среды извлекаются компоненты МПР (состояния, действия, награды и вероятности переходов) для решения задачи методами модельного ОО.

Обучение с подкреплением с Gymnasium на Python

Свойство Маркова

  • Будущее состояние зависит только от текущего состояния и действия

Изображение шахматной доски со стрелками возможных ходов.

Обучение с подкреплением с Gymnasium на Python

Замёрзшее озеро как МПР

  • Агент должен достичь цели, не провалившись в лунки

Изображение среды «Замёрзшее озеро».

Обучение с подкреплением с Gymnasium на Python

Замёрзшее озеро как МПР — состояния

  • Позиции, которые может занимать агент

Изображение трёх различных позиций агента в среде «Замёрзшее озеро».

Обучение с подкреплением с Gymnasium на Python

Замёрзшее озеро как МПР — терминальные состояния

  • Приводят к завершению эпизода

Изображение терминальных состояний в среде «Замёрзшее озеро».

Обучение с подкреплением с Gymnasium на Python

Замёрзшее озеро как МПР — действия

  • Вверх, вниз, влево, вправо

Изображение действий в «Замёрзшем озере» с метками: 0 — влево, 1 — вниз, 2 — вправо, 3 — вверх.

Обучение с подкреплением с Gymnasium на Python

Замёрзшее озеро как МПР — переходы

  • Действия не всегда приводят к ожидаемому результату

Изображение агента в левом верхнем углу сетки «Замёрзшего озера», намеревающегося двигаться вправо.

Обучение с подкреплением с Gymnasium на Python

Замёрзшее озеро как МПР — переходы

  • Действия не всегда приводят к ожидаемому результату

Изображение, показывающее, что агент может двигаться вправо.

Обучение с подкреплением с Gymnasium на Python

Замёрзшее озеро как МПР — переходы

  • Действия не всегда приводят к ожидаемому результату

Изображение, показывающее, что агент также может двигаться вниз.

Обучение с подкреплением с Gymnasium на Python

Замёрзшее озеро как МПР — переходы

  • Действия не всегда приводят к ожидаемому результату

Изображение, показывающее, что агент может остаться на месте.

Обучение с подкреплением с Gymnasium на Python

Замёрзшее озеро как МПР — переходы

  • Действия не всегда приводят к ожидаемому результату

Изображение, показывающее вероятности перехода агента вправо, вниз или оставания на месте при выборе действия «вправо».

  • Вероятности переходов: вероятность попасть в состояние при заданном состоянии и действии
Обучение с подкреплением с Gymnasium на Python

Замёрзшее озеро как МПР — награды

  • Награда выдаётся только в целевом состоянии

Изображение агента в целевом состоянии.

Обучение с подкреплением с 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
Обучение с подкреплением с 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.
]
Обучение с подкреплением с 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 — влево, 1 — вниз, 2 — вправо, 3 — вверх.

Изображение агента в состоянии номер 6, где состояния пронумерованы слева направо и сверху вниз.

Обучение с подкреплением с Gymnasium на Python

Давайте потренируемся!

Обучение с подкреплением с Gymnasium на Python

Preparing Video For Download...