Spinning Up, часть 1: ключевые понятия RL
Язык обучения с подкреплением от OpenAI: агент и среда, состояния и действия, политики, траектории, отдача, функции ценности, уравнения Беллмана, преимущество и MDP.
Добро пожаловать в наше введение в обучение с подкреплением! Здесь мы хотим познакомить вас
- с языком и обозначениями, на которых говорят об этой области;
- с общим объяснением того, что делают алгоритмы RL (вопроса, как они это делают, мы в основном избегаем);
- с небольшой частью базовой математики, на которой стоят алгоритмы.
Если коротко, RL изучает агентов и то, как они учатся методом проб и ошибок. RL формализует идею о том, что награда или наказание за поведение делает это поведение в будущем более или менее вероятным.
Что умеет RL?
Заголовок раздела «Что умеет RL?»В последние годы методы RL добились самых разных успехов. Например, с их помощью компьютеры научились управлять роботами в симуляции (в оригинале здесь видео: сбитый с ног симулированный человечек поднимается)… и в реальном мире (в оригинале — видео на YouTube).
RL знаменит и тем, что с его помощью созданы прорывные ИИ для сложных стратегических игр, прежде всего го и Dota. Компьютеры научились играть в игры Atari по сырым пикселям, а симулированные роботы — следовать инструкциям человека.
Ключевые понятия и терминология
Заголовок раздела «Ключевые понятия и терминология»flowchart LR A["Агент"] -->|"действие a"| E["Среда"] E -->|"состояние / наблюдение s"| A E -->|"награда r"| A
Главные действующие лица RL — агентагентEN agentВ китайском встречается и «дайли» («посредник»), но в AI-контексте стандарт — «чжинэнти» (буквально «интеллектуальное тело»). и средасреда (в RL и для агентов)EN environmentТо, с чем взаимодействует агент — инструменты, песочница, симулятор пользователя — вместе с правилами выдачи награды.. Среда — это мир, в котором агент живёт и с которым взаимодействует. На каждом шаге взаимодействия агент видит (возможно, неполное) наблюдение состояния мира и решает, какое действие предпринять. Среда меняется, когда агент на неё действует, но может меняться и сама по себе.
Кроме того, агент получает от среды сигнал наградынаграда, вознаграждениеEN rewardЧисло, которым среда оценивает действие или весь ответ. У LLM обычно одна награда в конце ответа. — число, которое говорит, насколько хорошо или плохо текущее состояние мира. Цель агента — максимизировать накопленную награду, которая называется отдачейотдача (return)EN returnG_t = r_t + γ r_{t+1} + γ² r_{t+2} + … — дисконтированная сумма наград от шага t до конца эпизода. (return). Методы обучения с подкреплением — это способы, которыми агент может выучить поведение, ведущее к этой цели.
Чтобы говорить о том, что делает RL, конкретнее, нужно ввести дополнительную терминологию. Нам предстоит поговорить о
- состояниях и наблюдениях,
- пространствах действий,
- политиках,
- траекториях,
- разных определениях отдачи,
- задаче оптимизации в RL,
- и функциях ценности.
Состояния и наблюдения
Заголовок раздела «Состояния и наблюдения»Состояние — это полное описание состояния мира. Нет такой информации о мире, которая была бы скрыта от состояния. Наблюдение — частичное описание состояния, в котором часть информации может отсутствовать.
В глубоком RL состояния и наблюдения почти всегда представлены вещественным вектором, матрицей или тензором более высокого порядка. Например, зрительное наблюдение можно представить RGB-матрицей значений пикселей, а состояние робота — углами в суставах и скоростями.
Когда агент видит полное состояние среды, говорят, что среда полностью наблюдаема (fully observed). Когда агент видит только частичное наблюдение — среда частично наблюдаема (partially observed).
Пространства действий
Заголовок раздела «Пространства действий»Разные среды допускают разные виды действий. Множество всех допустимых действий в данной среде часто называют пространством действий (action space). В некоторых средах, например в Atari и го, дискретные пространства действий: агенту доступно лишь конечное число ходов. В других средах, например когда агент управляет роботом в физическом мире, пространства действий непрерывные. В непрерывных пространствах действия — вещественные векторы.
Это различие имеет довольно глубокие последствия для методов глубокого RL. Некоторые семейства алгоритмов можно напрямую применить только в одном из случаев, а для другого их пришлось бы существенно переделать.
Политики
Заголовок раздела «Политики»Политикаполитика (стратегия агента)EN policy — это правило, по которому агент решает, какие действия предпринять. Она может быть детерминированной, и тогда её обычно обозначают :
а может быть стохастической, и тогда её обычно обозначают :
Словами: детерминированная политика по состоянию сразу выдаёт действие . Стохастическая выдаёт распределение вероятностей над действиями, и действие из него сэмплируется (знак читается «выбрано из»; точка — место для действия).
Поскольку политика — по сути «мозг» агента, слово «политика» нередко подставляют вместо слова «агент» и говорят, например: «Политика пытается максимизировать награду».
В глубоком RL мы имеем дело с параметризованными политиками: их выходы — вычислимые функции, зависящие от набора параметров (например, весов и смещений нейросети), которые можно подстраивать каким-нибудь алгоритмом оптимизации, чтобы менять поведение.
Параметры такой политики часто обозначают или и пишут нижним индексом при символе политики, чтобы подчеркнуть связь:
Детерминированные политики
Заголовок раздела «Детерминированные политики»Пример: детерминированные политики. Вот фрагмент кода, который строит простую детерминированную политику для
непрерывного пространства действий на PyTorch с помощью пакета torch.nn:
pi_net = nn.Sequential( nn.Linear(obs_dim, 64), # вход: вектор наблюдения размера obs_dim nn.Tanh(), # нелинейность tanh nn.Linear(64, 64), # второй скрытый слой на 64 нейрона nn.Tanh(), nn.Linear(64, act_dim) # выход: вектор действия размера act_dim )Этот код строит многослойный перцептрон (MLP) с двумя скрытыми слоями по 64 нейрона и функциями активации .
Если obs — массив Numpy с батчем наблюдений, то pi_net можно использовать, чтобы получить батч действий:
obs_tensor = torch.as_tensor(obs, dtype=torch.float32) # массив Numpy → тензор PyTorchactions = pi_net(obs_tensor) # по одному действию на каждое наблюдениеСтохастические политики
Заголовок раздела «Стохастические политики»Два самых распространённых вида стохастических политик в глубоком RL — категориальные политики (categorical policies) и диагональные гауссовы политики (diagonal Gaussian policies).
Категориальные политики применяют в дискретных пространствах действий, а диагональные гауссовы — в непрерывных.
Для использования и обучения стохастических политик центральное значение имеют два вычисления:
- сэмплирование действий из политики,
- и вычисление логарифма правдоподобия (log-likelihood) конкретных действий, .
Ниже мы опишем, как делать это для категориальных и для диагональных гауссовых политик.
Траектории
Заголовок раздела «Траектории»ТраекториятраекторияEN trajectoryПолная запись эпизода агента — все мысли, вызовы инструментов и наблюдения. Единица данных для оценки и agentic RL. — последовательность состояний и действий в мире:
Самое первое состояние мира выбирается случайно из распределения начальных состояний (start-state distribution), которое иногда обозначают :
Переходы между состояниями (то, что происходит с миром между состоянием в момент , , и состоянием в момент , ) подчиняются законам природы среды и зависят только от последнего действия . Переходы могут быть детерминированными,
или стохастическими,
Действия выбирает агент в соответствии со своей политикой.
Награда и отдача
Заголовок раздела «Награда и отдача»Функция награды в обучении с подкреплением критически важна. Она зависит от текущего состояния мира, только что совершённого действия и следующего состояния мира:
хотя часто её упрощают до зависимости только от текущего состояния, , или от пары «состояние—действие», .
Цель агента — максимизировать некую накопленную награду по траектории, но это может означать разные вещи. Все эти случаи мы будем обозначать , и либо из контекста будет ясно, какой случай имеется в виду, либо это будет неважно (потому что для всех случаев подходят одни и те же уравнения).
Один вид отдачи — конечногоризонтная недисконтированная отдача (finite-horizon undiscounted return): просто сумма наград, полученных в фиксированном окне шагов:
Другой вид — бесконечногоризонтная дисконтированная отдача (infinite-horizon discounted return): сумма всех наград, когда-либо полученных агентом, но с дисконтом в зависимости от того, насколько далеко в будущем они получены. В это определение входит коэффициент дисконтированиякоэффициент дисконтированияEN discount factorγ от 0 до 1: во сколько раз награда через шаг «дешевле» награды сейчас. Горизонт планирования ≈ 1/(1−γ). :
Словами: награда через шагов умножается на . При награда через 10 шагов весит от награды «сейчас».
Но зачем вообще нужен коэффициент дисконтирования? Разве мы не хотим получить все награды? Хотим, но дисконт и интуитивно привлекателен, и математически удобен. Интуитивно: деньги сейчас лучше, чем деньги потом. Математически: бесконечная сумма наград может не сходиться к конечному значению, и с ней трудно работать в уравнениях. А с коэффициентом дисконтирования и при разумных условиях бесконечная сумма сходится.
Задача RL
Заголовок раздела «Задача RL»Какую бы меру отдачи мы ни выбрали (бесконечногоризонтную дисконтированную или конечногоризонтную недисконтированную) и какую бы политику ни выбрали, цель в RL — выбрать политику, которая максимизирует ожидаемую отдачу (expected return), когда агент действует по ней.
Чтобы говорить об ожидаемой отдаче, сначала нужно поговорить о распределениях вероятностей над траекториями.
Предположим, что и переходы среды, и политика стохастические. Тогда вероятность траектории из шагов равна:
Словами: вероятность всей траектории — произведение вероятности стартового состояния, вероятностей каждого выбранного политикой действия и вероятностей каждого перехода среды.
Ожидаемая отдача (для любой из мер), которую обозначают , тогда равна:
Словами: — средняя отдача по всем возможным траекториям, каждая взвешена своей вероятностью. Интеграл здесь — то же, что сумма для дискретного случая.
Тогда центральную задачу оптимизации в RL можно записать как
где — оптимальная политика.
Функции ценности
Заголовок раздела «Функции ценности»Часто полезно знать ценность (value) состояния или пары «состояние—действие». Под ценностью мы понимаем ожидаемую отдачу, если начать в этом состоянии или с этой пары и затем всегда действовать по определённой политике. Функции ценности так или иначе используются почти в каждом алгоритме RL.
Здесь стоит отметить четыре главные функции.
-
Функция ценности on-policy (on-policy value function) — ожидаемая отдача, если начать в состоянии и всегда действовать по политике :
-
Функция ценности действия on-policy (on-policy action-value function) — ожидаемая отдача, если начать в состоянии , совершить произвольное действие (которое могло и не прийти из политики), а затем всегда действовать по политике :
-
Оптимальная функция ценности (optimal value function) — ожидаемая отдача, если начать в состоянии и всегда действовать по оптимальной политике в среде:
-
Оптимальная функция ценности действия (optimal action-value function) — ожидаемая отдача, если начать в состоянии , совершить произвольное действие , а затем всегда действовать по оптимальной политике в среде:
Словами: вертикальная черта читается «при условии». отвечает на вопрос «сколько в среднем наберём из этого состояния», — «сколько наберём, если сейчас сделаем именно ». Звёздочка означает «при наилучшем поведении».
Оптимальная Q-функция и оптимальное действие
Заголовок раздела «Оптимальная Q-функция и оптимальное действие»Между оптимальной функцией ценности действия и действием, которое выбирает оптимальная политика, есть важная связь. По определению — ожидаемая отдача, если начать в состоянии , совершить (произвольное) действие , а затем всегда действовать по оптимальной политике.
Оптимальная политика в выберет то действие, которое максимизирует ожидаемую отдачу при старте из . Поэтому, если у нас есть , оптимальное действие можно получить напрямую:
Замечание: действий, максимизирующих , может быть несколько; тогда все они оптимальны, и оптимальная политика может случайно выбирать любое из них. Но всегда существует оптимальная политика, которая выбирает действие детерминированно.
Уравнения Беллмана
Заголовок раздела «Уравнения Беллмана»Все четыре функции ценности подчиняются особым уравнениям самосогласованности, которые называются уравнениями Беллманауравнение БеллманаEN Bellman equationЦенность состояния = средняя немедленная награда + γ · средняя ценность следующего состояния.. Основная идея уравнений Беллмана такова:
Ценность точки, где вы стоите, — это награда, которую вы ожидаете получить за то, что вы здесь, плюс ценность того места, куда вы попадёте дальше.
Уравнения Беллмана для функций ценности on-policy:
где — краткая запись : следующее состояние выбирается по правилам переходов среды; — краткая запись , а — краткая запись .
Уравнения Беллмана для оптимальных функций ценности:
Ключевое различие между уравнениями Беллмана для функций ценности on-policy и для оптимальных функций ценности — отсутствие или присутствие по действиям. Его появление отражает тот факт, что всякий раз, когда агент выбирает действие, для оптимального поведения ему нужно выбрать то, которое ведёт к наибольшей ценности.
Словами: в первой паре уравнений действие берётся «как обычно ходит политика» (усреднение по ), во второй — «лучшее из возможных» (). Пример: награда за шаг , , и из следующего состояния ценность . Тогда ценность текущего состояния — уравнение выполнено.
Функции преимущества
Заголовок раздела «Функции преимущества»Иногда в RL не нужно описывать, насколько хорошо действие в абсолютном смысле, а нужно лишь знать, насколько оно лучше других в среднем. Иначе говоря, мы хотим знать относительное преимуществопреимущество (advantage)EN advantageA = r − b или A(s, a) = Q(s, a) − V(s): насколько действие лучше среднего в этой ситуации. (advantage) этого действия. Это понятие уточняет функция преимущества.
Функция преимущества для политики описывает, насколько лучше совершить конкретное действие в состоянии , чем выбрать действие случайно по , при условии что дальше вы всегда действуете по . Математически функция преимущества определяется так:
Словами: если , а , то : действие на 2 лучше «обычного» поведения политики в этом состоянии. Отрицательное преимущество — действие хуже среднего.
(Необязательно) Формализм
Заголовок раздела «(Необязательно) Формализм»До сих пор мы обсуждали среду агента неформально, но если вы начнёте копаться в литературе, то, скорее всего, наткнётесь на стандартный математический формализм для этой постановки — марковские процессы принятия решений (Markov Decision Processes, MDPмарковский процесс принятия решений (MDP)EN Markov decision process (MDP)Пятёрка (S, A, P, R, γ): состояния, действия, вероятности переходов, награда и коэффициент дисконтирования.). MDP — это пятёрка , где
- — множество всех допустимых состояний,
- — множество всех допустимых действий,
- — функция награды, ,
- — функция вероятностей переходов; — вероятность перейти в состояние , если начать в состоянии и совершить действие ,
- — распределение начальных состояний.
Название «марковский процесс принятия решений» связано с тем, что система обладает марковским свойством: переходы зависят только от последнего состояния и действия и не зависят от предыдущей истории.
Словарик
Заголовок раздела «Словарик»| English | Русский (как в курсе) |
|---|---|
| agent, environment | агент, среда |
| state, observation | состояние, наблюдение |
| fully / partially observed | полностью / частично наблюдаемая (среда) |
| action space (discrete, continuous) | пространство действий (дискретное, непрерывное) |
| policy (deterministic, stochastic) | политика (детерминированная, стохастическая) |
| log-likelihood | логарифм правдоподобия |
| trajectory, episode, rollout | траектория, эпизод, роллаут |
| reward, return | награда, отдача |
| discount factor | коэффициент дисконтирования |
| expected return | ожидаемая отдача |
| value function, action-value function | функция ценности (состояния), функция ценности действия (Q-функция) |
| Bellman equation, Bellman backup | уравнение Беллмана, беллмановский бэкап |
| advantage function | функция преимущества |
| Markov Decision Process (MDP) | марковский процесс принятия решений |
Дальше: Часть 2 — виды алгоритмов RL.