Hindsight Experience Replay: как учить агента на провалах
В разреженных наградах агент может миллионы шагов не получать ни одного положительного сигнала. HER переписывает цель постфактум и превращает неудачные эпизоды в обучающие примеры.

Классическая проблема обучения с подкреплением звучит так: робот-манипулятор должен положить кубик в точку с координатами (x, y, z). Награда бинарная — либо кубик оказался в цели (+1), либо нет (0). Пока агент случайно не попадёт в нужную точку хотя бы раз, градиент обучения нулевой: сеть не понимает, что делать лучше, потому что все её попытки одинаково плохи. Для трёхмерного пространства вероятность случайного попадания настолько мала, что стандартный DQN или DDPG не сдвинется с места за разумное время.
Hindsight Experience Replay (HER) — приём, предложенный командой OpenAI в 2017 году, который решает эту проблему без изменения функции награды. Идея грубо переформулируется одной фразой: если ты промахнулся, притворись, что целился именно туда, куда попал.
Откуда берётся проблема разреженной награды
Задачи RL делятся на плотные и разреженные по награде. В плотной среде агент получает сигнал почти на каждом шаге: «стал ближе к цели — плюс», «дальше — минус». Такой сигнал легко превратить в градиент. Проблема в том, что ручной подбор плотной награды (reward shaping) — это отдельная инженерная головная боль. Плохо спроектированная плотная награда учит агента эксплуатировать её лазейки, а не решать задачу.
Разреженная награда честнее: +1 за успех, 0 за всё остальное. Но она почти не даёт сигнала. Агент делает тысячи попыток, все проваливаются, буфер опыта забит нулями, и учиться не на чем.
Человек, промахнувшись мимо корзины, не считает бросок бесполезным. Он отмечает: «вот так мяч летит, если бросить под этим углом». HER делает то же самое — извлекает знание из промаха, переопределяя, что считалось целью.
Как работает HER
HER применим к задачам с целями (goal-conditioned RL), где политика получает на вход не только состояние s, но и цель g, а награда зависит от того, достигнута ли цель. Ключевая деталь: цель описывается в том же пространстве, что и состояние, — например, координаты объекта.
Стандартный replay buffer хранит переходы вида (s, a, r, s', g). HER, сохраняя эпизод, добавляет в буфер его копии с подменёнными целями. Вместо изначальной цели g подставляется одно из состояний, которого агент реально достиг в этом же эпизоде — назовём его g'. Относительно новой цели g' тот же самый переход часто оказывается успешным, и в буфере появляется положительный сигнал.
Схематично псевдокод обработки одного эпизода:
for t in range(T):
store(s_t, a_t, r_t, s_{t+1}, g) # реальная цель
# HER: добавляем переходы с подменёнными целями
for t in range(T):
for g_prime in sample_goals(episode, strategy):
r_prime = reward(s_{t+1}, g_prime) # часто +1
store(s_t, a_t, r_prime, s_{t+1}, g_prime)Функция reward вычисляется заново — она не хранится, а пересчитывается на лету, потому что для новой цели старое значение награды неверно. Это возможно только если у вас есть доступ к самой функции награды как к коду, а не как к чёрному ящику среды.
Стратегии выбора подменённой цели
Главный параметр HER — как выбирать g' из эпизода. Авторы сравнили несколько стратегий.
| Стратегия | Что берётся в качестве новой цели | Замечание |
|---|---|---|
| final | Последнее состояние эпизода | Простейшая, одна цель на эпизод |
| future | Случайное состояние, достигнутое позже текущего шага | Даёт лучшие результаты в оригинальной работе |
| episode | Случайное состояние из того же эпизода | Может брать «прошлые» состояния |
| random | Случайное состояние из всего буфера | Слабее остальных |
Стратегия future с несколькими подменёнными целями на переход (параметр k, обычно 4–8) показала себя лучше всего. Логика: если брать цель из будущего того же эпизода, агент учится не абстрактной задаче, а связной последовательности «из этого состояния такими действиями я прихожу вон туда».
С чем HER комбинируется
HER — не самостоятельный алгоритм, а надстройка над off-policy методами, которые умеют учиться на данных из replay buffer. Он совместим с DQN, DDPG, TD3, SAC. С on-policy методами вроде PPO он напрямую не работает: те не хранят старый опыт и не могут переиспользовать переписанные переходы.
- DDPG + HER — исходная связка из работы OpenAI, испытанная на задачах манипуляции роботом-рукой.
- SAC + HER — популярный современный выбор, SAC устойчивее к гиперпараметрам.
- TD3 + HER — когда нужна борьба с переоценкой Q-функции.
Где HER не поможет
HER не универсальная таблетка. Он требует, чтобы задача была goal-conditioned и чтобы цель выражалась через состояния. Для сред, где «цель» — это, скажем, максимизировать счёт в игре без явного целевого состояния, приём напрямую неприменим.
Второе ограничение — подменённые цели создают смещение распределения. Агент много тренируется на «лёгких» целях, до которых случайно дошёл, и меньше — на настоящих, сложных. Если реальные цели систематически труднее достижимых состояний, обучение может застрять на простом.
Третье: HER требует пересчёта награды для произвольной пары (состояние, цель). Если функция награды недоступна как код или дорога в вычислении, приём теряет практичность.
Практические детали, которые ломают запуск
- Награда должна пересчитываться, а не браться из буфера. Частая ошибка новичка — сохранить старое
rвместе с новой целью. - Пространство целей и пространство состояний должны сопоставляться явной функцией (часто это просто извлечение подмножества координат из вектора состояния).
- Нормализация входов важнее обычного: политика получает и состояние, и цель, разброс значений большой.
- Число подменённых целей
kбалансирует долю HER-переходов и настоящих. Слишком большоеkзаглушает реальные цели.
HER остаётся базовым приёмом в тулките RL-инженера, работающего с роботикой и разреженными наградами. Он не требует ручного шейпинга награды, не меняет саму среду и добавляется поверх уже работающего off-policy агента буквально одной функцией пересэмплинга. Цена — необходимость доступа к функции награды и аккуратность с распределением целей.
Prompt-инженер: Идеальные запросы для Midjourney, ChatGPT и других моделей.
Спросить за 15 ₽Источники: Andrychowicz et al., Hindsight Experience Replay (arXiv:1707.01495)
Частые вопросы
Чем HER отличается от reward shaping?
Можно ли применить HER с PPO или другим on-policy алгоритмом?
Какую стратегию выбора цели брать по умолчанию?
Обязательно ли пересчитывать награду для подменённой цели?
Что делать, если HER не улучшает обучение?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.