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

Введение в RL: агент и среда

9 марта 2016, Сеул, 5-я партия. AlphaGo делает ход 37. Все эксперты: «это ошибка новичка». Ли Седоль уходит из зала на 15 минут. AlphaGo побеждает. Ход 37 - позиция, которую ни один человек не делал за 2500 лет игры в Го. RL-агент нашёл стратегию за пределами человеческого понимания. ChatGPT обучен через RLHF - тот же класс алгоритмов. Беллман написал уравнение оптимальности в 1957 году. Ход 37 - практическое следствие.

  • **AlphaGo/AlphaZero** - победа над чемпионами мира в го, шахматах и сёги без единого записанного правила (ход 37 стал символом выхода RL за пределы человеческого понимания)
  • **ChatGPT (RLHF)** - языковые модели обучаются через Reinforcement Learning from Human Feedback: агент получает награду от людей-оценщиков и учится давать полезные ответы
  • **Google Data Centers (DeepMind)** - RL-агент снизил энергопотребление охлаждения на 40%, экономя десятки миллионов долларов в год
  • **Tesla Autopilot** - политика управления автомобилем, обученная на 100 петабайтах видео с 5 миллионов машин, обновляется через RL-подобные методы
  • **Торговые алгоритмы HFT** - агенты, принимающие тысячи решений в секунду на основе состояния биржевого стакана

От закона эффекта до AlphaGo

Эдвард Торндайк сформулировал закон эффекта в 1911 году: действия, за которыми следует удовлетворение, повторяются, а действия с неприятным исходом - нет. Обучение методом проб и ошибок, психологический корень RL. В 1957 году Ричард Беллман ввёл динамическое программирование и марковский процесс принятия решений, дав области её математическое ядро. Артур Сэмюэл в 1959 году построил в IBM самообучающуюся программу игры в шашки, которая улучшалась, играя сама с собой, и придумал термин «machine learning». Ричард Саттон и Эндрю Барто объединили эти линии: temporal-difference learning в 1988 году и учебник «Reinforcement Learning: An Introduction» (1998, 2nd ed. 2018), до сих пор главный справочник.

Предварительные знания

  • Базовая теория вероятностей: случайные величины и математическое ожидание
  • Уверенное чтение Python (циклы, классы, NumPy)
  • Общее представление о парадигмах машинного обучения
  • Основы ML
  • Введение в вероятности

Агент: кто принимает решения?

9 марта 2016. Сеул. 5-я партия. AlphaGo делает ход 37. Комментаторы замолкают. Эксперты говорят: «это ошибка новичка». Ли Седоль встаёт, уходит из зала на 15 минут - ему нужно время чтобы осознать. AlphaGo побеждает. Ход 37 - позиция, которую **ни один человек не делал за 2500 лет игры в Го**. RL-агент нашёл стратегию за пределами человеческого понимания. Никто не объяснял ему правила. Никто не показывал примеры ходов. Агент сам.

**Агент (agent)** - сущность, которая наблюдает за окружением, принимает решения (действия) и получает обратную связь (награду). Робот, программа, торговый алгоритм, RLHF-тренер языковой модели - что угодно, что умеет действовать и учиться.

Чем RL отличается от других парадигм machine learning?

ПарадигмаДанныеОбратная связьПример
Supervised LearningПары (вход, ответ)Правильный ответ сразуКлассификация изображений
Unsupervised LearningТолько входные данныеНет обратной связиКластеризация клиентов
Reinforcement LearningОпыт взаимодействияНаграда с задержкойРобот учится ходить

**Ключевое отличие RL:** агент не знает правильный ответ заранее. Он сам обнаруживает, какие действия ведут к награде, экспериментируя с окружением. Именно так работает RLHF в ChatGPT - тот же класс алгоритмов, что AlphaGo.

Центральная дилемма RL - **exploration vs exploitation**. Нашли ресторан с неплохой едой. Продолжать ходить туда (exploitation - используем известное) или попробовать новый ресторан, рискуя разочароваться (exploration - исследуем неизвестное)? Агент постоянно балансирует между этими двумя стратегиями. Tesla Autopilot решает эту дилемму на каждом перекрёстке.

**epsilon = 0.1** означает: в 10% случаев агент исследует случайное действие, в 90% - выбирает лучшее из известных. Это **epsilon-greedy** стратегия. DeepMind использовала именно её в DQN, который научился играть в Atari лучше человека.

Что отличает Reinforcement Learning от Supervised Learning?

Среда: мир агента

**Среда (environment)** - всё, с чем агент взаимодействует. Для AlphaGo - доска и правила Го. Для Boston Dynamics робота - физический мир с гравитацией и препятствиями. Для торгового алгоритма HFT - биржевой стакан в реальном времени. Среда принимает действие агента и возвращает два сигнала: **новое состояние** и **награду**.

Цикл RL: агент наблюдает **состояние** (state) → выбирает **действие** (action) → среда возвращает **новое состояние** и **награду** (reward) → повторяем. Последовательность от начала до конца называется **эпизод** (episode).

На практике для экспериментов с RL используют библиотеку **Gymnasium** (ранее OpenAI Gym). Она предоставляет десятки готовых сред - от CartPole до Atari. Именно на CartPole проверяют новые алгоритмы перед тем как запустить их на реальных задачах.

Полный цикл одного эпизода - от `reset()` до `terminated == True`:

**terminated** означает, что эпизод закончился по правилам среды (шест упал). **truncated** - эпизод прерван по таймауту (достигли максимума шагов). Различие важно для корректного обучения.

Что возвращает метод env.step(action) в Gymnasium?

Награда: сигнал обучения

**Reward (награда)** - единственный сигнал, по которому агент понимает, хорошо ли он действует. Число: положительное (хорошо), отрицательное (плохо), ноль (нейтрально). Вся мудрость RL сводится к одному: **максимизируй суммарную награду**. DeepMind снизил энергопотребление охлаждения дата-центров Google на 40% - агент просто максимизировал одно число: эффективность охлаждения.

Но есть подвох. AlphaGo делает ход 37 на 37-м ходу из 211. Итог: +1 за победу, -1 за поражение, 0 за каждый промежуточный ход. Какой из 37 ходов привёл к победе? Все? Только последний? Это называется **credit assignment problem** - задача приписывания заслуг. Ход 37 стал победным потому что алгоритм научился решать эту задачу.

**Sparse rewards** (редкие награды) - сигнал только в конце эпизода (шахматы, го). **Dense rewards** (частые награды) - сигнал на каждом шаге (CartPole: +1 за каждый шаг). С dense rewards учиться проще, но их не всегда легко спроектировать.

Ещё одна ключевая идея: **рубль сегодня ценнее рубля завтра**. Награда через 100 шагов менее ценна, чем награда сейчас - за 100 шагов много может пойти не так. Вводят **discount factor** (коэффициент дисконтирования) - gamma от 0 до 1.

gammaПоведение агентаАналогия
0.0Жадный: учитывает только немедленную наградуПотратить всё сейчас
0.5Краткосрочный: горизонт 2-3 шагаПланировать на неделю
0.99Дальновидный: учитывает далёкое будущееПенсионные накопления
1.0Бесконечный горизонт (может расходиться!)Бессмертный инвестор

**Reward shaping** - искусственное добавление промежуточных наград - мощный, но опасный инструмент. Неудачный reward shaping приводит к лазейкам: робот, получающий +1 за каждый шаг «ближе к цели», может научиться ходить кругами возле цели, не достигая её. Такие баги встречаются в реальных production-системах.

На практике **gamma = 0.99** - самое популярное значение. Награда через 100 шагов стоит 0.99^100 ≈ 0.37 от текущей. Через 500 шагов - почти ноль.

При gamma = 0.9, награда +10, полученная через 2 шага, эквивалентна текущей награде:

Политика: стратегия агента

**Политика (policy)** - правило, по которому агент выбирает действие в каждом состоянии. Обозначается **π**. Таблица «в состоянии X делай Y», нейронная сеть с миллиардами параметров, или простое правило «всегда иди направо» - всё это политики. AlphaZero - политика в виде нейросети на 40 миллионов параметров. Bellman написал уравнение оптимальности в 1957 году - и оно по сей день лежит в основе каждого RL-алгоритма.

Формально: **π(a|s)** - вероятность выбрать действие **a**, находясь в состоянии **s**. Политика бывает двух типов:

ТипОпределениеПример
Детерминистическаяπ(s) = a (одно конкретное действие)В состоянии «шест наклоняется вправо» → всегда двигай тележку вправо
Стохастическаяπ(a|s) = P(a|s) (распределение вероятностей)60% - вправо, 40% - влево (для исследования)

**Оптимальная политика π*** - политика, максимизирующая ожидаемый cumulative discounted reward из любого состояния. Цель RL - найти π* или приблизиться к ней. AlphaGo нашла политику лучше чем любой человек за 2500 лет.

Epsilon-greedy - самый простой способ решить дилемму exploration vs exploitation. Большую часть времени агент использует лучшее известное действие, но с вероятностью epsilon пробует что-то случайное. Со временем epsilon уменьшают: агент исследовал достаточно.

**Распространённая ловушка:** если epsilon уменьшается слишком быстро, агент может застрять на плохой стратегии, найденной первой. Если слишком медленно - тратит время на бесполезные случайные действия.

Цель RL-агента - максимизировать мгновенную (immediate) награду на каждом шаге

Цель - максимизировать cumulative discounted reward (сумму дисконтированных будущих наград). Иногда выгоднее получить маленькую награду сейчас, чтобы получить большую позже.

Жадная стратегия «бери максимум прямо сейчас» проваливается в большинстве задач. В Го жертва камнями (отрицательная немедленная награда) может привести к победе через 50 ходов (огромная будущая награда). Именно так AlphaGo нашла ход 37 - он был «плохим» с точки зрения жадной стратегии. Discount factor gamma определяет, насколько далеко в будущее «смотрит» агент.

Что такое оптимальная политика π*?

Ключевые идеи

  • **Агент** наблюдает состояние, выбирает действие, получает награду - и так по циклу. Это отличает RL от supervised (нет готовых ответов) и unsupervised (есть обратная связь) learning
  • **Среда** определяет правила игры: состояния, действия, переходы. Gymnasium даёт стандартный API: reset() → step(action) → (state, reward, terminated, truncated, info)
  • **Награда** - единственный обучающий сигнал. Discount factor gamma балансирует краткосрочные и долгосрочные цели. AlphaGo жертвовала камни сейчас ради победы через 100 ходов
  • **Политика π** - стратегия агента. Цель RL - найти оптимальную политику π*, максимизирующую cumulative discounted reward. Беллман 1957 → Ход 37 2016 → RLHF ChatGPT 2022

Связанные темы

Введение в RL закладывает фундамент для всей дальнейшей теории:

  • Марковские процессы (MDP) — Формализация понятий среды, состояний и переходов в математическую модель
  • Bellman Equations — Математический аппарат для вычисления ценности состояний и оптимальной политики
  • Neural Networks (ML) — Нейросети используются как аппроксиматоры политики и value function в Deep RL

Вопросы для размышления

  • Почему exploration важен даже для агента, который уже нашёл «неплохую» стратегию? В каких ситуациях прекращение исследования может быть катастрофическим?
  • Как задать функцию награды для робота-пылесоса? Какие побочные эффекты может вызвать неудачный reward shaping?
  • В чём фундаментальная проблема credit assignment в шахматах - и почему dense rewards не всегда решают её?

Связанные уроки

  • rl-02 — MDP: формальная математика среды и policy
  • ml-01-intro — Основы ML как контекст для RL
  • st-01-feedback-loops — Кибернетика и RL: один и тот же принцип
  • prob-01-intro — Вероятности для стохастических политик
  • alg-21-dp — Dynamic programming решает уравнения Беллмана в RL
  • ml-48-rl-intro — Глубокое погружение в алгоритмы RL: Q-Learning, PPO
Введение в RL: агент и среда

0

1

Войти