Модуль I·Статья II·~3 мин чтения
Обучение с подкреплением
Современные методы машинного обучения
Превратить статью в подкаст
Выберите голоса, формат и длину — AI запишет аудио
Обучение с подкреплением (RL)
Обучение с подкреплением — парадигма, в которой агент учится действовать в среде, получая сигналы награды за свои решения. В отличие от supervised learning, правильных ответов нет: агент должен сам открыть оптимальную стратегию через взаимодействие. Именно RL позволил компьютеру победить чемпиона мира по игре Го (AlphaGo, 2016), освоить видеоигры Atari и управлять промышленными роботами.
Марковский процесс принятия решений (MDP)
Формальная основа RL — MDP: (S, A, P, R, γ). Расшифровка:
- S — пространство состояний (state space): возможные ситуации, в которых может оказаться агент
- A — пространство действий (action space): что агент может сделать
- P(s'|s, a) — вероятность перехода из состояния s в s' при действии a
- R(s, a, s') — немедленная награда при переходе
- γ ∈ [0, 1) — коэффициент дисконтирования будущих наград (γ = 0.99: будущие награды почти так же важны, как текущие)
Цель агента: найти политику π(a|s) (вероятность действия a в состоянии s), максимизирующую дисконтированную сумму наград: max E[Σₜ γᵗrₜ].
Функция ценности состояния: V^π(s) = E_π[Σₜ γᵗrₜ | s₀ = s] — ожидаемая сумма наград при начале в s и следовании политике π.
Q-функция (action-value function): Q^π(s,a) = E_π[Σₜ γᵗrₜ | s₀=s, a₀=a] — ценность действия a в состоянии s. Зная Q*, оптимальная политика тривиальна: π*(s) = argmax_a Q*(s,a).
Уравнения Беллмана: V^π(s) = Σₐ π(a|s)[R(s,a) + γΣ_{s'} P(s'|s,a) V^π(s')]. Система уравнений, связывающая ценность состояния с ценностями соседних состояний.
Q-learning и DQN
Q-learning (Watkins, 1989) — обучение без модели среды (model-free). TD-обновление (Temporal Difference):
Q(s, a) ← Q(s, a) + α[r + γ max_{a'} Q(s', a') − Q(s, a)]
Здесь: α — скорость обучения, r — полученная награда, s' — новое состояние, [r + γ max Q(s',a') − Q(s,a)] — ошибка TD (насколько прогноз не совпал с реальностью). Q-learning сходится к Q* при условии достаточного исследования.
DQN — Deep Q-Network (Mnih et al., DeepMind, 2015): Q(s,a;θ) — нейронная сеть с параметрами θ. Два ключевых трюка стабилизации:
-
Experience replay: агент сохраняет переходы (s, a, r, s') в буфер размера N. Обучаем на случайных мини-батчах из буфера → разрываем корреляцию последовательных переходов, стабилизируем обучение.
-
Target network: отдельная сеть с «замороженными» параметрами θ⁻ для вычисления целевых значений y = r + γ max_a' Q(s',a';θ⁻). Параметры θ⁻ обновляются редко → стабильные цели обучения.
DQN с сырыми пикселями Atari превзошёл уровень человека в 29 из 49 игр.
Policy Gradient методы
REINFORCE (Williams, 1992): Обновление θ ← θ + α Σₜ ∇θ log π_θ(aₜ|sₜ) Gₜ, где Gₜ = Σ{k≥t} γᵏ⁻ᵗ rₖ — дисконтированная сумма наград с момента t. Логика: хорошие действия (высокий G) делаем вероятнее, плохие — менее вероятными.
Проблема: высокая дисперсия оценки градиента. Решение: baseline — вычитаем V(sₜ), делаем «преимущество» Aₜ = Gₜ − V(sₜ). Actor-Critic: актёр обновляет π_θ, критик оценивает V_φ и обновляется через MSE.
PPO (Proximal Policy Optimization, Schulman et al., 2017):
L_CLIP(θ) = E[min(rₜ(θ) Aₜ, clip(rₜ(θ), 1−ε, 1+ε) Aₜ)]
Здесь rₜ(θ) = π_θ(aₜ|sₜ)/π_{θ_old}(aₜ|sₜ) — отношение вероятностей новой и старой политики. Клиппирование не даёт слишком большим обновлениям дестабилизировать обучение. PPO надёжен, широко используется. RLHF для ChatGPT использует PPO.
Численный пример: Grid World
Сетка 3×3, агент стартует в (0,0), цель — (2,2). Награда +10 за достижение цели, −1 за каждый шаг. γ = 0.9. После обучения Q-learning оптимальная политика: всегда идти вниз или вправо (путь длиной 4 шага). V((0,0)) = 10·0.9⁴ − 4·1 ≈ 6.56 − 4 ≈ 2.56 — ожидаемая ценность стартовой позиции.
Применения
Управление роботами (Boston Dynamics), оптимизация охлаждения дата-центров Google (−40% энергопотребления), биржевой трейдинг, оптимизация рекламных ставок, управление энергосистемами, игры (AlphaGo, AlphaZero, OpenAI Five для Dota 2).
Задание: Реализуйте Q-learning для CartPole (балансирование шеста). Состояние: 4 переменные (положение тележки, угол шеста, скорости). Дискретизируйте каждую на 6 корзин. Q-таблица: 6⁴×2. Обучайте 5000 эпизодов. Постройте кривую средней награды за эпизод (скользящее среднее 100 эпизодов). Реализуйте ε-greedy (ε убывает с 1 до 0.01). Сравните с DQN на той же задаче.
§ Акт · что дальше