COMRAD404 / GLOSSARY

Обучение с подкреплением (Reinforcement Learning, RL)

Reinforcement Learning

Обучение с подкреплением (RL) — это подход, где агент учится во взаимодействии со средой, получая вознаграждение и максимизируя суммарный результат. В статье: базовый цикл RL, state и observation, пример Gymnasium, ограничения и частые заблуждения.

TL;DR

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

Обучение с подкреплением (reinforcement learning, RL) — это подход, в котором агент взаимодействует со средой, получает сигнал вознаграждения и учится выбирать действия так, чтобы максимизировать накопленное вознаграждение, называемое return. В каноническом определении Sutton и Barto это обучение по взаимодействию: агент строит отображение из ситуаций в действия, ориентируясь на скалярный сигнал reward.

Английский термин: reinforcement learning. Сокращение: RL. Внутри темы постоянно встречаются термины agent (агент), environment (среда), state (состояние), observation (наблюдение), policy (политика), value function, Q-function и advantage function.

Простыми словами

Грубо говоря, RL можно представить как обучение на серии попыток. Агент что-то делает, среда отвечает новым наблюдением и числовым сигналом, а затем агент постепенно смещает поведение в сторону действий, которые чаще приводят к лучшему общему результату.

Важно, что среда не обязана объяснять агенту всю картину. В одних задачах агент видит полное состояние мира, а в других — только частичное наблюдение, и это нормальный случай для RL.

Как работает обучение с подкреплением

Базовый цикл в документации Spinning Up и в книге Sutton & Barto описывается одинаково: агент наблюдает ситуацию, выбирает действие, среда меняется и возвращает сигнал качества этого шага. Цель — не просто получить награду прямо сейчас, а максимизировать суммарное вознаграждение по траектории, то есть return.

Схема цикла RL

1) Среда находится в состоянии s_t
2) Агент получает observation o_t
3) Политика π(a|o_t или s_t) выбирает действие a_t
4) Среда выполняет переход
5) Среда возвращает:
   - новое observation
   - reward r_t
   - terminated
   - truncated
   - info
6) Агент обновляет policy и/или value estimates
7) Цикл повторяется до конца эпизода или усечения

Здесь полезно не путать state и observation. В терминологии Spinning Up состояние — это полное описание мира, а наблюдение может быть только его частью. Поэтому частично наблюдаемые задачи в RL — обычное явление, а не исключение.

Policy отображает состояние или наблюдение в действие. В глубоком RL, как отмечает Spinning Up, политики часто параметризуются и могут быть стохастическими: для одного и того же наблюдения агент выбирает действия по вероятностному правилу, а не по жёсткой таблице.

Value function оценивает ожидаемый return. Q-function оценивает ценность конкретного действия в конкретной ситуации, а advantage function показывает, насколько выбранное действие лучше базового ожидания. Эти величины связываются уравнениями Беллмана.

Редакционная оговорка: ниже приведены практические примеры и названия полей API по состоянию на 2026-08-16. Для Gymnasium, PettingZoo, Stable-Baselines3 и RLlib всегда сверяйте документацию с версией установленного пакета: у этих проектов есть версионируемые API и отдельные страницы релизов.

Где применяется

  • Одиночные среды и симуляторы. Gymnasium документирует стандартный интерфейс среды с reset() и step(), через который алгоритм многократно собирает опыт.
  • Практические эксперименты с готовыми реализациями. Stable-Baselines3 предоставляет надёжные реализации RL-алгоритмов на PyTorch, когда вы хотите проверить базовую постановку без реализации всего стека с нуля.
  • Распределённое обучение. RLlib описывает сущности Algorithm, AlgorithmConfig, EnvRunner и Learner, которые нужны для масштабирования сбора данных и обучения.
  • Мультиагентные сценарии. PettingZoo — библиотека для multi-agent reinforcement learning с AEC и parallel API, когда в среде действует не один агент, а несколько.

Если вы хотите развести базовые семейства методов, полезно отдельно посмотреть машинное обучение (ML), обучение с учителем, обучение без учителя, глубокое обучение (Deep Learning) и инструкционное обучение (Instruction Tuning).

Практический пример

Ниже — минимальный сценарий взаимодействия с одиночной средой через API Gymnasium. Он не обучает агента, а показывает сам цикл RL и важное разделение terminated и truncated, которое в API v0.26 заменило прежний флаг done.

import gymnasium as gym

env = gym.make("your_env_id")  # подставьте идентификатор совместимой среды
observation, info = env.reset(seed=42)

finished = False
while not finished:
    action = env.action_space.sample()  # здесь у обученного агента была бы policy
    observation, reward, terminated, truncated, info = env.step(action)

    # В реальном RL-цикле агент сохраняет переход
    # и обновляет policy / value estimates

    finished = terminated or truncated

env.close()

Что в этом примере важно на практике:

  1. reset(seed=42) инициализирует состояние среды и при необходимости задаёт сид.
  2. step() возвращает новое наблюдение, награду и два разных флага завершения.
  3. terminated означает терминальное состояние задачи, а truncated — внешнее усечение эпизода, например по лимиту шага.
  4. Алгоритм RL обычно накапливает такие переходы и меняет политику так, чтобы ожидаемый return рос.

Практический вывод: если вы переносите старый код на новые версии Gymnasium, нельзя механически ориентироваться только на done; нужно явно различать terminated и truncated.

Чем отличается от близких терминов

Термин Что означает Чем отличается от RL
Reward Числовой сигнал, который среда возвращает на шаге RL — это весь процесс обучения по взаимодействию; reward — только один элемент этого процесса.
Return Накопленное вознаграждение по траектории или эпизоду Агент обычно оптимизирует именно return, а не обязательно мгновенный reward на каждом шаге.
State и observation State — полное описание мира, observation — то, что агент реально видит RL не требует, чтобы агент всегда имел полный доступ к миру; частичная наблюдаемость — обычный случай.
Policy и value function Policy выбирает действие; value function оценивает ожидаемый return В RL можно учить выбор действия напрямую, оценку отдельно или оба компонента вместе.

Это различие не формальность. Большая часть путаницы вокруг RL появляется именно тогда, когда reward смешивают с return, а observation — со state.

Ограничения и заблуждения

  • Заблуждение: «RL максимизирует награду на каждом шаге». По базовому определению цель — максимизировать cumulative reward, то есть return. Действие, которое выглядит выгодным прямо сейчас, может ухудшать итоговую траекторию.
  • Заблуждение: «агент всегда видит полное состояние». Spinning Up отдельно различает state и observation; частично наблюдаемые задачи в RL распространены.
  • Заблуждение: «достаточно подключить библиотеку, и всё заработает одинаково». На практике семантика API зависит от версии. В Gymnasium важны terminated и truncated, а в распределённых системах вроде RLlib добавляется отдельная операционная сложность.
  • Ограничение: мультиагентный RL — отдельный слой сложности. PettingZoo вводит AEC и parallel API. По документации проекта Linux и macOS поддерживаются, а Windows не поддерживается официально.
  • Ограничение: готовые реализации не заменяют понимание терминов. Stable-Baselines3 даёт надёжные реализации, но сам проект полезен в первую очередь тем, кто уже понимает базовые сущности RL и следит за совместимостью Python и версии пакета.

Практический вердикт: если вам нужно быстро понять термин, держите в голове четыре опоры: агент, среда, политика и return. Если вы уже пишете код, следующая обязательная проверка — версии Gymnasium, PettingZoo, Stable-Baselines3 и RLlib, потому что детали API и совместимости меняются по релизам.

Связанные термины и инструменты

По состоянию на 2026-08-16 полезно учитывать текущие условия инструментов: в репозитории Stable-Baselines3 указан релиз v2.8.0 от 2026-04-01 и требование Python 3.10+; в release notes PettingZoo указан 1.26.1 от 2026-04-27, а версия 1.26.0 добавила поддержку Python 3.13 и 3.14; на странице релизов Ray указан 2.55.1 от 2026-04-22. Это ориентир для совместимости, но не замена проверке вашей локальной среды.

Источники

Вопросы и ответы

Что такое обучение с подкреплением простыми словами?

Это обучение через взаимодействие со средой. Агент делает действие, получает наблюдение и числовой сигнал вознаграждения, а затем меняет поведение так, чтобы суммарный результат, то есть return, становился лучше.

Чем reward отличается от return?

Reward — это сигнал на отдельном шаге. Return — накопленное вознаграждение по траектории или эпизоду. В базовом определении RL цель формулируется через максимизацию именно cumulative reward, то есть return.

Что означают terminated и truncated в Gymnasium?

Согласно документации Gymnasium, step() возвращает оба флага отдельно. terminated указывает на терминальное состояние задачи, а truncated — на внешнее усечение эпизода, например из-за лимита по шагам.

Можно ли начать практику RL со Stable-Baselines3?

Да, если вам нужна готовая PyTorch-реализация базовых алгоритмов. Но библиотека не отменяет необходимости понимать policy, value function, reward и return; по данным репозитория проект требует Python 3.10+.

Подходит ли PettingZoo для Windows?

По release notes проекта Linux и macOS поддерживаются, а Windows официально не поддерживается. Если вы планируете мультиагентные эксперименты, это ограничение лучше проверить до настройки окружения.

Источники

SOURCES

Вопросы и ответы

FAQ
Что такое обучение с подкреплением простыми словами?

Это обучение через взаимодействие со средой: агент делает действие, получает наблюдение и числовой сигнал вознаграждения, а затем меняет поведение так, чтобы суммарный результат, то есть return, становился лучше.

Чем reward отличается от return?

Reward — это сигнал на отдельном шаге. Return — накопленное вознаграждение по траектории или эпизоду. В базовом определении RL цель формулируется через максимизацию cumulative reward, то есть return.

Что означают terminated и truncated в Gymnasium?

Согласно документации Gymnasium, step() возвращает оба флага отдельно. terminated указывает на терминальное состояние задачи, а truncated — на внешнее усечение эпизода, например из-за лимита по шагам.

Можно ли начать практику RL со Stable-Baselines3?

Да, если вам нужна готовая PyTorch-реализация базовых алгоритмов. Но библиотека не отменяет необходимости понимать policy, value function, reward и return; по данным репозитория проект требует Python 3.10+.

Подходит ли PettingZoo для Windows?

По release notes проекта Linux и macOS поддерживаются, а Windows официально не поддерживается. Если вы планируете мультиагентные эксперименты, это ограничение лучше проверить до настройки окружения.

Читайте также

LINKS