GAE (Generalized Advantage Estimation): точный контроль баланса между смещением и дисперсией
Введение
Во многих алгоритмах RL с policy gradient (например, PPO, A2C) необходимо оценивать преимущество действия — насколько оно оказалось лучше или хуже ожиданий.
Однако оценка advantage — задача нетривиальная:
- можно получить низкую дисперсию, но сильное смещение,
- или иметь непредвзятый результат, но с огромным шумом.
GAE был предложен Schulman et al. в 2016 году как способ найти оптимальный баланс между этими двумя крайностями, обеспечив более стабильное и эффективное обучение.
1. Напомним: что такое advantage
Advantage показывает, насколько конкретное действие в состоянии s оказалось лучше, чем ожидалось.
At = Q(st, at) - V(st)
Но в практике мы не знаем точно ни Q, ни V. Обычно используют приближённую формулу через n-step возврат:
At = rt + γ rt+1 + … + γn-1 rt+n-1 + γn V(st+n) - V(st)
- Если взять n = 1, получим очень шумную оценку.
- Если взять n = T, будет смещение при ошибках в V.
GAE вводит взвешенное суммирование этих n-step оценок с контролируемым сглаживанием.
2. Суть GAE: экспоненциальное сглаживание дельт TD
Вместо фиксированного шага, GAE рассчитывает advantage как экспоненциально затухающую сумму TD-ошибок (δ):
δt = rt + γ V(st+1) - V(st)
И далее:
ÂtGAE(γ, λ) = δt + γ λ δt+1 + (γ λ)2 δt+2 + …
Параметр λ ∈ [0, 1] управляет весом будущих шагов:
- λ = 0: только текущая TD-ошибка (минимальная дисперсия, максимум смещения),
- λ = 1: полный T-step возврат (минимум смещения, максимум дисперсии),
- Значения от 0.9 до 0.97 — оптимальный компромисс на практике.
3. Почему GAE важен
GAE даёт:
- более стабильные градиенты,
- меньше шумов в обучении политики,
- лучшую сходимость на сложных задачах.
В PPO, например, использование GAE — де-факто стандарт. Без него наблюдается:
- плохая устойчивость в задачах с delayed rewards,
- высокая чувствительность к параметрам обучения.
4. Интуитивно: как понимать GAE
Представь, что агент получил награду r0, r1, r2, …, и хочет понять: было ли действие в момент t хорошим?
Оценка TD-ошибок — это "маленькие сигналы", как сильно ожидание не совпало с реальностью. GAE говорит:
"Не смотри только на ближайшую ошибку, но и учти будущие ошибки, но с убывающим весом".
Именно это и делает GAE — интегрирует информацию о будущем, но не даёт ей взорвать градиенты.
5. Реализация на практике (словами)
Пусть у нас есть:
- массив наград r,
- массив значений V,
- параметры γ, λ.
Тогда алгоритм:
- Идём назад по эпизоду.
- Для каждого t, считаем: δt = rt + γ Vt+1 - Vt
- GAE обновляется рекурсивно: At = δt + γ λ At+1
- Результат — сглаженный вектор advantage A, который пойдёт в PPO loss.
6. Параметры и их влияние
| Параметр | Значение | Эффект |
|---|---|---|
| γ | 0.99 (обычно) | насколько важны будущие награды |
| λ | 0.95 – 0.97 | баланс между шумом и смещением |
| V(s) | нейросеть | должна быть достаточно точной для TD |
Низкое λ → быстрый, но шумный градиент.
Высокое λ → устойчиво, но медленно.
Заключение
GAE — это фундаментальный компонент современных RL-алгоритмов, позволяющий:
- оценивать качество действий более точно и стабильно,
- контролировать баланс между долгосрочным учётом и устойчивостью,
- ускорить обучение и уменьшить переобучение на шумных эпизодах.
Хотя математически прост, GAE оказывает глубокое влияние на поведение агента, особенно в задачах с отложенными наградами, стохастикой или длинными эпизодами.