Experience Replay: Как тасовка прошлого спасает от амнезии
Если вы восемь часов подряд будете отрабатывать разминирование бомбы только в одном узком коридоре, вы станете абсолютным королем этой конкретной точки.
Но как только соперник выйдет на вас с противоположного фланга карты, вы растеряетесь так, словно запустили игру пять минут назад.
Среди спортсменов это называют зацикливанием. В машинном обучении у этого феномена есть строгое имя: катастрофическое забывание.
Когда первые глубокие нейросети пробовали обучать прямо в процессе непрерывной игры, они упирались в одну и ту же стену: соседние кадры игры практически идентичны. Кадр под номером 101 на 99% повторяет кадр 100. Если модель непрерывно перенастраивает свои веса по тому, что происходит на экране прямо в данную секунду, она попадает в ловушку автокорреляции. Нейросеть блестяще учится уклоняться влево, потому что последние полминуты она только и делала, что жала стрелку влево. Но при этом она напрочь стирает все навыки точной стрельбы, наработанные за предыдущие полчаса.
В классическом машинном обучении данные для обучения должны быть независимыми и одинаково распределенными (принцип i.i.d.).
Живой геймплей — полная противоположность независимости. Это жесткая временная цепочка, где каждая секунда намертво привязана к предыдущей.
Реальность
Чтобы разорвать этот порочный круг цифровой амнезии, инженеры применили механизм Experience Replay (буфер воспроизведения опыта).
Вместо того чтобы сразу реагировать на происходящее и тут же выбрасывать момент из памяти, агент записывает каждый свой шаг в специальное хранилище — Replay Buffer. Каждая запись содержит четыре параметра: состояние, в котором находился агент, выбранное действие, полученную награду и новое состояние, где он оказался (s, a, r, s').
Когда наступает момент тренировки нейросети, система не смотрит на последние пять секунд матча.
Вместо этого алгоритм запускает руку в архив опыта, словно крупье, тасующий колоду карт, и вытягивает совершенно случайную выборку воспоминаний из разных игр. Одно воспоминание — это удачный клатч десятиминутной давности. Второе — глупая ошибка вчерашнего утра. Третье — спокойное начало раунда недельной давности.
Почему это важно
Перемешивание времени, словно колоды карт, решает сразу две ключевые проблемы:
Во-первых, оно разрушает временную корреляцию. Поскольку нейросеть учится на разрозненных эпизодах из совершенно разных ситуаций, данные снова становятся независимыми, и веса модели стабилизируются без резких перекосов.
Во-вторых, буфер выжимает максимум пользы из редких событий. В играх гениальный маневр может случиться один раз за десять тысяч попыток. Если модель обучается только на лету, она быстро забудет этот редкий успех. Но сохранив удачный раунд в буфере, система сможет пересматривать и заново усваивать этот урок десятки раз.
В чем подвох аналогии?
Буфер воспроизведения — это внеполитичный метод (off-policy). Записи в архиве были сделаны старыми, куда более неуклюжими версиями агента. Если стратегия игрока уже ушла далеко вперед, тренировка на устаревших ошибках может тормозить развитие. Кроме того, буфер на миллион игровых шагов требует гигабайты оперативной памяти, а равномерная случайная выборка тратит драгоценное время на банальные неинформативные отрезки — из-за чего позже пришлось изобретать приоритизированный буфер (Prioritized Experience Replay), который чаще подсовывает модели самые поучительные моменты.
Главная мысль
Чтобы обрести стабильное мастерство, нельзя зацикливаться на последней ошибке; нужно тасовать весь архив прошлого опыта, чтобы сиюминутные неудачи не искажали общую картину.
Специалисты по ИИ называют это: Буфер воспроизведения опыта (Experience Replay / Replay Buffer) / Внеполитическое обучение (Off-Policy Learning)
Предложенный Лином в 1992 году и ставший основой DQN (Mnih et al., 2013), буфер воспроизведения сохраняет кортежи переходов (s_t, a_t, r_t, s_{t+1}) в кольцевом буфере памяти. Равномерная выборка мини-батчей разрушает временную автокорреляцию между последовательными шагами и приближает выборку к независимому распределению (i.i.d.). Так как опыт генерируется историческими политиками поведения, буфер требует использования офф-полиси алгоритмов (например, Q-learning).
💬 Замечали ли вы за собой, как одна свежая неудача на работе заставляет сомневаться во всем проекте, пока вы не заставите себя оглянуться на результаты всего прошедшего года?
Часть 7 из 15 | #ReinforcementLearningForHumans
#ai_edu На основе лекций Стэнфорда и индустрии