Навигация по структуре RL

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

Fouad Trad

Machine Learning Engineer

Фреймворк RL

Изображение компонента «агент».

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

Фреймворк RL

Изображение компонентов «агент» и «среда».

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

Фреймворк RL

  • Агент: обучающийся, принимающий решения
  • Среда: задачи, которые нужно решить

Изображение всех компонентов RL: агент, среда, состояния, действия и награды.

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

Фреймворк RL

  • Агент: обучающийся, принимающий решения
  • Среда: задачи, которые нужно решить
  • Состояние: снимок среды в заданный момент

Изображение того, как среда передаёт состояния агенту.

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

Фреймворк RL

  • Агент: обучающийся, принимающий решения
  • Среда: задачи, которые нужно решить
  • Состояние: снимок среды в заданный момент
  • Действие: выбор агента в ответ на состояние

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

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

Фреймворк RL

  • Агент: обучающийся, принимающий решения
  • Среда: задачи, которые нужно решить
  • Состояние: снимок среды в заданный момент
  • Действие: выбор агента в ответ на состояние
  • Награда: обратная связь за действие агента

Изображение того, как агент реагирует на состояние среды, выполняя действие, и получает от среды награду за это действие.

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

Цикл взаимодействия RL

env = create_environment()
state = env.get_initial_state()

for i in range(n_iterations): action = choose_action(state)
state, reward = env.execute(action)
update_knowledge(state, action, reward)

Изображение того, как агент реагирует на состояние среды, выполняя действие, и получает от среды награду за это действие.

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

Эпизодические vs. непрерывные задачи

Эпизодические задачи
  • Задачи, разбитые на эпизоды
  • Эпизод имеет начало и конец
  • Пример: агент играет в шахматы

Изображение кота, играющего в шахматы.

Непрерывные задачи
  • Непрерывное взаимодействие
  • Нет отдельных эпизодов
  • Пример: управление светофорами

Изображение лягушки на велосипеде, ожидающей зелёного сигнала светофора.

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

Доход

  • Действия имеют долгосрочные последствия
  • Агент стремится максимизировать суммарную награду
  • Доход: сумма всех ожидаемых наград

Изображение того, что доход — это сумма отдельных наград r_1 через r_n.

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

Дисконтированный доход

  • Немедленные награды ценнее будущих
  • Дисконтированный доход: придаёт больший вес ближайшим наградам
  • Коэффициент дисконтирования ($\gamma$): уменьшает вес будущих наград

Изображение формулы дисконтированного дохода как суммы наград, каждая из которых умножается на коэффициент дисконтирования, возведённый в степень соответствующего временного шага.

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

Коэффициент дисконтирования

  • От нуля до единицы
  • Баланс между немедленными и долгосрочными наградами
    • Малое значение → приоритет немедленной выгоды
    • Большое значение → приоритет долгосрочных выгод

Изображение влияния крайних значений коэффициента дисконтирования: значение, равное нулю, учитывает только немедленную выгоду, а значение, равное единице, учитывает будущие выгоды без дисконтирования.

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

Числовой пример

import numpy as np
expected_rewards = np.array([1, 6, 3])

discount_factor = 0.9
discounts = np.array([discount_factor ** i for i in range(len(expected_rewards))])
print(f"Discounts: {discounts}")
Discounts: [1.   0.9  0.81]
discounted_return = np.sum(expected_rewards * discounts)
print(f"The discounted return is {discounted_return}")
The discounted return is 8.83
Обучение с подкреплением с Gymnasium на Python

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

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

Preparing Video For Download...