Задача обучения с подкреплением
- О чём эта тема
- Третья парадигма машинного обучения: агент взаимодействует со средой, получает награды и вырабатывает стратегию, максимизирующую суммарное вознаграждение. Вводятся базовые понятия — агент, среда, наблюдение, действие, награда, политика, эпизод, возврат — и разбираются классические задачи-среды от многорукого бандита до шагающего робота. По конспекту преподавателя и лекции курса «RL: от бандитов до RLHF» (мехмат МГУ).
- Аннотация
- Конспект начинается с постановки задачи: цикл взаимодействия агента и среды, свойства сред (стохастичность, полнота описания, стационарность), терминальные состояния и эпизоды. Затем вводится политика — правило выбора действия — и объясняется, чем обучение с подкреплением отличается от обучения с учителем и без учителя: разметки оптимальных действий не существует, а данные зависят от поведения самого агента. Далее разбирается галерея классических сред — многорукий бандит, FrozenLake, CartPole, MountainCar, Pong, шагающий робот, рекомендательная система — с их наблюдениями, действиями и наградами. Вводятся возврат и дисконтирование, и на разобранном численном примере считаются ценности состояний и действий. Интерактивный тренажёр позволяет прожить цикл «состояние → действие → награда» вручную. Завершается конспект классификацией методов RL и первым запуском среды Gymnasium из кода.
- Пререквизиты
- Траектория «Нейросети»: конспект 1 (нейрон, функции активации, softmax), конспект 9 (обучение с учителем и без учителя — здесь появится третья парадигма). Python и основы теории вероятностей (условная вероятность, математическое ожидание).
- Мотивация
- Всплеск интереса к обучению с подкреплением начался, когда компания DeepMind применила глубокое обучение к компьютерным играм Atari и достигла уровня типичного игрока-человека (2013), а затем система AlphaGo победила чемпиона мира по игре в го (2016). Принципиальное отличие от всего, что было в траектории «Нейросети»: агент должен решить задачу, даже если человек сам не знает, как её решать, — никто не размечает «правильные ходы», есть только награда за результат.
1. Агент и среда
Во всей траектории «Нейросети» обучение выглядело одинаково: есть готовая выборка, сеть делает предсказание, функция ошибки сравнивает его с правильным ответом. Теперь представим компьютерную игру. «Правильных ответов» нет: есть экран, кнопки и счёт очков. Игрок жмёт кнопку — картинка меняется, очки прибавляются или нет; понять, какое нажатие было удачным, можно только по тому, как сложится игра дальше. Обучение из такого взаимодействия — вместо обучения по размеченной выборке — и есть предмет этой траектории.
Обучение с подкреплением (англ. Reinforcement Learning, RL) — набор методов, позволяющих агенту (интеллектуальной системе — «игроку») вырабатывать оптимальную стратегию при взаимодействии со средой (внешним миром — «игрой»). В каждый — обычно дискретный — момент времени \(t\) агент оказывает на среду воздействие — действие \(a_t\). В ответ он получает наблюдение \(o_{t+1}\), полностью или частично характеризующее новое состояние среды \(s_{t+1}\), и числовую оценку успешности — награду \(r_{t+1}\):
Взаимодействие разворачивается в траекторию — чередование наблюдений, действий и наград:
Задача агента — выбирать действия так, чтобы максимизировать накопленное вознаграждение \(R = r_1 + r_2 + \ldots\) за достаточно большой промежуток времени. Четвёрка «состояние — действие — награда — новое состояние» — базовая единица опыта в RL:
Среда может быть детерминированной или стохастической; со стационарными или меняющимися во времени свойствами; с полным или неполным описанием. Неполное описание означает, что наблюдение несёт не всю информацию о среде (есть «скрытые переменные»); при полном описании наблюдение эквивалентно состоянию: \(o_t = s_t\). В стохастической среде, даже стартовав из одного состояния и совершив одинаковые действия, можно получить различные траектории. В среде могут быть терминальные состояния, при достижении которых «игровой» эпизод оканчивается; обычно эпизоды ограничены и по числу шагов.
Награда устроена коварно: она часто не связана с последним действием напрямую — может запаздывать, приходить редко или только в самом конце эпизода (как в го). Награда может быть и всегда отрицательной: если каждый шаг стоит \(r = -1\), максимизация суммарного вознаграждения означает минимизацию времени до цели.
2. Политика и третья парадигма
Алгоритм, по которому агент выбирает действие, называется его политикой (англ. policy). Это может быть детерминированная функция \(a = \pi(s)\), но в общем случае политика — условная вероятность \(\pi(a\,|\,s)\) выбора действия \(a\) в состоянии \(s\): для изучения среды агент должен «экспериментировать», иначе он рискует застрять в далёкой от оптимума области. Детерминированную политику несложно сделать вероятностной: с вероятностью \(1-\varepsilon\) выбирать лучшее известное действие, а с вероятностью \(\varepsilon\) — случайное (подробно эта идея разбирается в конспекте 2). Если действия дискретны, политику можно аппроксимировать нейросетью с softmax-выходом (траектория «Нейросети», конспект 3) — по выходу на каждое действие.
Главное отличие от обучения с учителем: обучающих данных вида «состояние → правильное действие» не существует. Никто не знает оптимальных действий — агент должен найти их сам, по оценочной обратной связи. При этом данные, на которых агент учится, он же сам и порождает: изменилась политика — изменилась и выборка наблюдений. Сводка отличий парадигм из лекции курса:
| Парадигма | Тип данных | Цель | Основная трудность |
|---|---|---|---|
| обучение с учителем | пары (x, y) | минимизация ошибки предсказания | обобщение, шум разметки |
| обучение без учителя | объекты x без разметки | выявление структуры, представлений | выбор метрики качества |
| обучение имитацией | демонстрации эксперта | воспроизведение стратегии эксперта | накопление ошибок по траектории |
| обучение с подкреплением | траектории взаимодействия | максимизация ожидаемого возврата | разведка, отложенная награда, нестабильность |
Сравнение парадигм машинного обучения (по лекции курса «RL: от бандитов до RLHF»). Первые две строки — конспекты 1–8 и 9–12 траектории «Нейросети».
Методически RL труднее классического обучения по четырём причинам: отложенная награда (полезность действия проявляется спустя шаги), разведка против использования (нужно и исследовать новые действия, и применять найденные хорошие), зависимость данных от политики (неудачная ранняя стратегия закрывает полезные области пространства состояний) и коррелированность данных (последовательные наблюдения — не независимые примеры).
3. Галерея классических задач
Многорукий бандит. Есть набор игровых автоматов, у каждого — своё неизвестное распределение выигрышей. Наблюдений нет вовсе, действие — номер автомата, за ручку которого агент дёргает. Классическая задача о балансе разведки и использования — ей целиком посвящён конспект 2.
FrozenLake. Карта замёрзшего озера 4×4, часть ячеек — проруби. Гнома нужно провести из левого верхнего угла к подарку в правом нижнем. Лёд скользкий: с вероятностью 1/3 гном идёт туда, куда планирует, и с вероятностями по 1/3 — в перпендикулярные стороны. Всего 16 дискретных состояний (номер ячейки) и 4 действия; награда 1 — только за достижение цели. Среда с полным описанием, но сильно стохастичная и со скудной наградой:
CartPole. Стержень на шарнире прикреплён к тележке; задача — не дать ему упасть, толкая тележку вправо или влево. Наблюдение — четыре числа \((x, \dot x, \theta, \dot\theta)\): положение и скорость тележки, угол и угловая скорость стержня. За каждый шаг, пока стержень не упал, даётся \(r = +1\). Среда с полным описанием; если убрать из наблюдения скорости — описание станет неполным, и придётся учитывать два последовательных наблюдения:
Из конспекта преподавателя
MountainCar. Машинка в ложбине должна забраться на правый холм, но «мощности» не хватает — нужно раскачиваться. Каждый шаг стоит \(r = -1\), эпизод ограничен 200 шагами. Задача заметно коварнее CartPole: случайные действия почти никогда не приводят к цели, и в большой области пространства параметров суммарная награда одинакова (−200) — нет ориентиров, где искать оптимум. К тому же эффект неправильных действий «отложен» до конца эпизода.
Pong — классика Atari: наблюдение — изображение 210×160 пикселей, награды очень редкие (за пропущенный/забитый мяч). BipedalWalker — управление роботом: действие — четыре непрерывных числа (моменты в шарнирах ног), наблюдение — 24 числа. Рекомендательная система — пример RL в продакшене: наблюдение — признаки контента и клиента, действие — выбор показываемых элементов, награда — клик; среда неполная, стохастическая и нестационарная.
| Среда | Наблюдение | Действия | Награда |
|---|---|---|---|
| бандит | нет | дискретные (номер ручки) | случайный выигрыш |
| FrozenLake | номер ячейки (16) | 4 дискретных | 1 в конце |
| CartPole | 4 числа | 2 дискретных | +1 каждый шаг |
| MountainCar | 2 числа | 3 дискретных | −1 каждый шаг |
| Pong | изображение 210×160 | дискретные | редкая, ±1 |
| BipedalWalker | 24 числа | 4 непрерывных | за продвижение, −100 за падение |
Сводка сред; многие методы RL работают только с дискретными либо только с непрерывными действиями — это первый вопрос при выборе метода.
4. Возврат и дисконтирование
Суммарное будущее вознаграждение, начиная с момента \(t\), принято дисконтировать:
где \(\gamma \in [0, 1]\) — коэффициент дисконтирования, гиперпараметр обучения. При \(\gamma = 1\) возврат \(G_t\) — просто сумма будущих наград; при \(\gamma < 1\) ближайшие доходы важнее далёких, что отражает неопределённость будущего, а технически позволяет работать с бесконечными суммами (в задачах с конечным эпизодом сумма обрывается в терминальном состоянии). Так как и политика, и среда могут быть вероятностными, максимизируется среднее значение возврата:
где угловые скобки — среднее по траекториям при фиксированной политике \(\pi\).
Вы играете за агента (данные иллюстративные): 7 состояний, слева яма (награда −1, терминальная), справа цель (+1, терминальная), каждый обычный шаг стоит −0.04. Журнал — это траектория (1.1): четвёрки (s, a, r, s′). Дойдите до цели кратчайшим путём — R = 0.92; сходите сначала влево-вправо и сравните: каждый лишний шаг съедает и суммарный, и дисконтированный возврат. Прогоните несколько эпизодов и следите за средним R — это и есть оценка J вашей «политики» (1.3).
Как сравнивать действия числом? Разберём пример из конспекта преподавателя: детерминированная среда с семью состояниями, четыре из которых терминальные; в каждом состоянии два действия (\(a = 0\) — вверх, \(a = 1\) — вниз), награды подписаны на рёбрах:
Ценностью состояния назовём средний будущий возврат из него (при \(\gamma = 1\)). Для политики, выбирающей действия равновероятно, из \(s_0\) возможны четыре равновероятные траектории, и ценность стартового состояния
Аналогично для действий: \(Q(s_0, 0) = 4 + \frac{0+4}{2} = 6\), а \(Q(s_0, 1) = 2 + \frac{16-4}{2} = 8\) — действие «вниз» доходнее, хотя его немедленная награда меньше (2 против 4): выгода отложена. Оптимальная же политика детерминирована и даёт \(V^*(s_0) = 2 + 16 = 18\). Строгие определения функций ценности \(V\) и \(Q\) и уравнение Беллмана — предмет конспекта 3.
5. Классификация методов RL
Методов RL много, универсального нет: в зависимости от задачи метод может быть неэффективным или неприменимым (например, работать только с дискретными действиями). Сравнивают методы по трём критериям: скорость (за сколько эпизодов достигается заданный средний возврат), оптимальность (какой средний возврат достижим в пределе) и устойчивость (не «обваливается» ли результат в ходе обучения). Интегральный критерий — площадь под кривой среднего возврата как функции числа эпизодов.
Основные оси классификации:
- online / offline — учиться сразу на каждом новом переходе или накапливать данные (в том числе в обновляемом буфере памяти) и обучаться на накопленном;
- on-policy / off-policy — оценивать ту же политику, которой выбираются действия, или другую (например, жадную политику по данным, собранным ε-жадной);
- model-based / model-free — строить модель среды или обходиться без неё;
- что вычисляется: политика, ценности состояний или и то и другое (архитектура «актёр–критик»).
Карта методов (по диаграмме OpenAI из конспекта преподавателя). Почти все названия встретятся в конспектах 5–11.
Стоит помнить: RL имитирует обучение в реальном мире, поэтому метод, который учится очень долго, может оказаться бесполезным в продакшене, где применение и дообучение совпадают.
6. Первый запуск: Gymnasium
Gymnasium (развитие OpenAI Gym) — стандартная библиотека сред для RL: все задачи из раздела 3
доступны под единым интерфейсом. Среда создаётся по имени, эпизод начинается с
reset(), а каждый шаг — вызов step(action), возвращающий ровно те
величины, что на схеме из раздела 1:
import gymnasium as gym env = gym.make('CartPole-v1') print(env.observation_space) # Box(4,) — четыре вещественных числа print(env.action_space) # Discrete(2) — два действия: влево/вправо # один эпизод со случайной политикой obs, info = env.reset() total_reward, done = 0.0, False while not done: action = env.action_space.sample() # случайное действие obs, reward, terminated, truncated, info = env.step(action) total_reward += reward done = terminated or truncated # упал стержень / кончилось время print('возврат эпизода:', total_reward) # у случайной политики ~20-30 шагов
Пара флагов в step различает две причины конца эпизода: terminated —
достигнуто терминальное состояние среды (стержень упал), truncated — эпизод обрезан
по внешнему лимиту времени. Подробно устройство сред, обёртки и создание собственной среды —
в конспекте 6.
reset().
Возврат \(G\) определён в пределах одного эпизода; качество политики — средний
возврат по многим эпизодам, а не сумма всего подряд.
Контрольные вопросы
-
Нет обучающих данных вида «состояние → правильное действие»: никто не знает оптимальных действий, агент получает только оценочную обратную связь (награду). Кроме того, данные порождает сам агент: изменилась политика — изменилась и выборка наблюдений.
-
Политика — правило выбора действия: в общем случае условная вероятность π(a|s). Вероятностность нужна для разведки: детерминированный агент рискует застрять в неоптимальной области пространства состояний, так и не узнав о более «доходных» состояниях.
-
Наблюдение несёт не всю информацию о состоянии среды (есть скрытые переменные). Пример: CartPole без скоростей в наблюдении — по одному кадру не понять, куда движется стержень. Помогает учёт нескольких последовательных наблюдений.
-
γ задаёт вес будущих наград в возврате (1.2): при γ = 1 все награды равноценны (годится для конечных эпизодов), при γ < 1 ближайшие доходы важнее далёких — это отражает неопределённость будущего и делает бесконечные суммы конечными.
-
Качество действия определяется полным будущим возвратом, а не ближайшей наградой: Q(s₀, 0) = 6, а Q(s₀, 1) = 8, потому что за «вниз» следует переход с наградой 16. Это эффект отложенной награды — центральная трудность RL.
-
terminated — среда достигла терминального состояния (стержень упал, гном попал в прорубь): это часть задачи. truncated — эпизод обрезан внешним ограничением (лимит шагов): состояние не терминальное, просто кончилось время. Для методов обучения различие важно — по-разному учитывается будущий возврат.