Стратегии исследования в глубоком обучении с подкреплением

Представьте агента, который учится играть в видеоигру с нуля. Он не знает правил, не знает, что приносит очки, и не знает, куда вообще идти. Единственное, что у него есть — это возможность действовать и получать обратную связь от среды. Перед ним встаёт фундаментальный вопрос: пробовать новое или делать то, что уже работало раньше?

Эта дилемма — exploration vs exploitation — является краеугольным камнем обучения с подкреплением. Противостояние эксплуатации и исследования — одна из ключевых тем в Reinforcement Learning. И чем сложнее среда, тем острее стоит этот вопрос. В этой статье мы разберём, какие стратегии исследования существуют в глубоком RL, как они работают под капотом, и когда какую применять.


Почему исследование — это сложно

Хорошее исследование становится особенно трудным, когда среда редко предоставляет награды в качестве обратной связи. «Hard-exploration» проблема — это исследование в среде с очень редкой или даже обманчивой наградой. Это сложно, потому что случайное исследование в таких сценариях редко позволяет обнаружить успешные состояния или получить значимую обратную связь.

Во многих реальных задачах результаты определённого события видны только после значительного числа других событий. Такие задачи называются задачами с разреженной наградой (sparse reward), поскольку вознаграждение редко и не имеет чёткой связи с предыдущими действиями. Разреженные награды широко встречаются в реальном мире — например, при поисково-спасательных операциях награда выдаётся только при нахождении объекта, а при доставке — только при её завершении.

⚠ Проблема разреженных наград
Техники исследования критически важны при решении задач с разреженными наградами. В таких задачах вознаграждение редко, а значит, агент редко находит его при случайных действиях. В подобном сценарии обучение RL с трудом устанавливает связь между наградами и действиями, поэтому нужны более изощрённые методы исследования.

Глубокое обучение с подкреплением (DRL) добилось значительных успехов в широком спектре областей, включая игровой ИИ, автономные транспортные средства и робототехнику. Однако агентам DRL требуются миллионы взаимодействий даже для относительно простых задач, что сдерживает широкое применение в реальных индустриальных сценариях.


Классические стратегии: ε-greedy и UCB

ε-Greedy (Эпсилон-жадный)

Самый базовый метод исследования — ε-greedy: с вероятностью 1−ε агент выбирает действие жадно (эксплуатация), в остальных случаях делает случайный выбор (исследование). Несмотря на популярность и простоту, ε-greedy неэффективен в сложных задачах с большим пространством состояний-действий.

Канонический алгоритм ε-greedy выбирает случайное действие с вероятностью ε, иначе — жадное действие, максимизирующее ожидаемую награду. Несмотря на гарантию сходимости, ε-greedy не способен учитывать информацию о неопределённости модели.

На практике часто применяется декрементируемый ε (epsilon decay): агент начинает с высокого значения ε (много исследования) и постепенно снижает его по мере обучения.

import numpy as np

class EpsilonGreedyAgent:
    def __init__(self, n_actions, epsilon=1.0, epsilon_min=0.01, decay=0.995):
        self.n_actions = n_actions
        self.epsilon = epsilon
        self.epsilon_min = epsilon_min
        self.decay = decay
        self.q_values = np.zeros(n_actions)

    def select_action(self):
        if np.random.rand() < self.epsilon:
            return np.random.randint(self.n_actions)  # Исследование
        return np.argmax(self.q_values)               # Эксплуатация

    def decay_epsilon(self):
        self.epsilon = max(self.epsilon_min, self.epsilon * self.decay)

Upper Confidence Bound (UCB)

UCB — классический метод исследования, изначально разработанный для задач Multi-Armed Bandits. В отличие от неэффективного случайного исследования (например, ε-greedy), методы семейства UCB измеряют потенциал каждого действия через верхнюю доверительную границу ожидаемой награды.

UCB был введён для учёта неопределённости оценок. Интуиция проста: если действие уже выбиралось много раз, вы достаточно уверены в его последствиях.

UCB и аналогичные методы естественным образом снижают вероятность выбора исследовательских действий и со временем становятся более уверенными в оптимальной политике — и поэтому по своей природе более эффективны, чем ε-greedy.

ℹ Ограничение UCB в Deep RL
Агенты DRL действуют в средах с непрерывными или высокоразмерными пространствами состояний-действий (например, Montezuma’s Revenge, StarCraft II). Такие пространства делают алгоритмы на основе подсчёта (как UCB) неприменимыми в исходной формулировке.

Boltzmann (Softmax) Exploration

Другой метод — исследование Больцмана (Softmax): агент выбирает действия из распределения Больцмана по Q-значениям. Формально вероятность выбора действия a равна: p(a) = exp(Q(s,a)/τ) / Σ exp(Q(s,aᵢ)/τ), где температурный параметр τ контролирует степень случайности. Недостаток — метод нельзя напрямую применить к непрерывным пространствам состояний-действий.


Энтропийная регуляризация и шум в пространстве параметров

Entropy Regularization

Энтропийная регуляризация широко используется для стимулирования исследования в алгоритмах RL со стохастическими политиками: энтропия политики H(π(a|s)) добавляется к целевой функции как регуляризатор, побуждая политику принимать разнообразные действия.

Добавление энтропийного члена H(π(a|s)) в функцию потерь поощряет политику выбирать разнообразные действия. Этот приём используется в алгоритмах Soft Actor-Critic (SAC) и A3C.

Noise-based Exploration

Шумовое исследование предполагает добавление шума в пространство наблюдений, действий или даже параметров. Метод NoisyNet (Fortunato et al., 2017) добавляет параметрический шум прямо в веса нейронной сети, что позволяет агенту исследовать среду более последовательно, чем при случайном выборе действий.

«Noise-based exploration allows agents to learn when and where to explore rather than exploring uniformly at random.» — ключевая идея NoisyNet


Curiosity-Driven Exploration: агент, которому интересно

Классические методы хорошо работают в простых задачах, но пасуют перед сложными средами с разреженными наградами. Здесь на сцену выходит любопытство как движущая сила исследования.

Intrinsic Curiosity Module (ICM)

Curiosity-based методы обучают агентов взаимодействовать со средой так, чтобы испытывать результаты, не совпадающие с предсказаниями агента. Таким образом, curiosity-driven исследование обычно подразумевает обучение агента наращивать знания о среде (например, о её динамике).

Intrinsic Curiosity Module (ICM) обучает совместное пространство эмбеддингов с помощью потерь инверсной и прямой динамики и стал первым методом на основе любопытства, успешно применённым в глубоком RL.

Агент, оснащённый моделью мира, получает текущее состояние среды и пытается предсказать следующее. Ошибка предсказания и является внутренней наградой. По мере улучшения модели мира внутренние награды снижаются, поскольку растут знания агента о среде. Это и называется curiosity-driven exploration.

Если прямая модель не может точно предсказать следующее состояние, агент «любопытствует» и назначает себе внутреннюю награду — как бы говоря: «Я этого не ожидал! Давайте исследуем дальше.» ICM — это своеобразный «мозг» любопытства агента, постоянно вычисляющий ошибки предсказания и использующий их как топливо для исследования.

Random Network Distillation (RND)

Random Network Distillation (RND) — техника, разработанная для обеспечения внутренней curiosity-награды агентам RL и улучшения их способностей к исследованию в сложных средах.

RND использует случайно инициализированную нейронную сеть для измерения новизны. Идея заключается в том, что агент сравнивает новые состояния с тем, что видел раньше. Если новое состояние кардинально отличается от привычного, агент «любопытствует» и назначает себе внутреннюю награду.

RND особенно полезен в средах с огромным пространством состояний, таких как масштабные задачи исследования в сложных играх или мирах с открытым миром. Назначая внутренние награды за новые состояния, он гарантирует, что агенты сохраняют любопытство даже при дефиците внешних наград.

import torch
import torch.nn as nn

class RNDModel(nn.Module):
    """Упрощённая иллюстрация RND"""
    def __init__(self, input_dim, output_dim):
        super().__init__()
        # Фиксированная целевая сеть (не обучается)
        self.target = nn.Sequential(
            nn.Linear(input_dim, 64), nn.ReLU(),
            nn.Linear(64, output_dim)
        )
        # Предсказывающая сеть (обучается)
        self.predictor = nn.Sequential(
            nn.Linear(input_dim, 64), nn.ReLU(),
            nn.Linear(64, output_dim)
        )
        # Заморозим параметры target
        for p in self.target.parameters():
            p.requires_grad = False

    def intrinsic_reward(self, obs):
        with torch.no_grad():
            target_feat = self.target(obs)
        pred_feat = self.predictor(obs)
        # Ошибка предсказания = внутренняя награда
        return ((target_feat - pred_feat) ** 2).mean(dim=-1)
💡 Когда применять RND
RND хорошо работает в играх типа Montezuma’s Revenge с крайне разреженными наградами. Он менее подвержен проблеме «шумного телевизора» (noisy-TV problem), чем ICM, поскольку случайная целевая сеть не реагирует на нерелевантный шум среды.

Проблема «шумного телевизора»

Однако методы на основе curiosity постоянно оказываются неэффективными, когда в среде присутствует неустранимый шум. Классический мысленный эксперимент: если поставить агента перед телевизором со случайным статическим шумом, его ICM-модель никогда не сможет предсказать следующий кадр — и будет бесконечно «любопытствовать» перед экраном, игнорируя реальные задачи.

Для решения этой проблемы был предложен метод RIDE, который использует разницу между двумя последовательными эмбеддингами состояний как внутреннюю награду и побуждает агента выбирать действия, приводящие к значительным изменениям состояния.


Count-based методы и псевдоподсчёт

Count-Based Exploration — более прямолинейный подход: агент получает награду за посещение новых состояний на основе счётчика, сколько раз состояние было посещено. Чем реже посещалось состояние, тем выше награда. Метод прост, но хорошо работает в дискретных средах.

Одна из интуитивных формулировок curiosity — count-based методы, где менее посещённые состояния обладают большей новизной для исследования. Но они не масштабируются на большие или непрерывные пространства состояний.

Для преодоления этого ограничения исследователи предложили псевдоподсчёт (pseudo-count) — приближённый аналог подсчёта, основанный на плотностных моделях нейронных сетей.

📝 Пример: Montezuma's Revenge
Montezuma’s Revenge — конкретный пример задачи hard-exploration. В этой игре агент должен пройти множество комнат, прежде чем получит хоть какую-то награду. Стандартный ε-greedy практически никогда не справляется с ней, тогда как curiosity-driven методы (ICM, RND) показывают значительно лучшие результаты.

Сравнение стратегий исследования

МетодТипСложность реализацииSparse RewardsМасштабируемостьЛучше всего подходит для
ε-GreedyСлучайный⭐ Минимальная❌ Слабо✅ ВысокаяПростые среды, DQN
ε-Greedy с decayСлучайный⭐⭐ Низкая⚠️ Средне✅ ВысокаяБазовые задачи Deep RL
UCBНа основе подсчёта⭐⭐ Низкая⚠️ Средне❌ ОграниченаTabular RL, бандиты
Entropy Reg.Политика⭐⭐ Низкая⚠️ Средне✅ ВысокаяSAC, A3C, policy gradient
NoisyNetШум параметров⭐⭐⭐ Средняя⚠️ Средне✅ ВысокаяDQN на Atari
ICMIntrinsic / Curiosity⭐⭐⭐ Средняя✅ Хорошо✅ ВысокаяРазреженные награды
RNDIntrinsic / Novelty⭐⭐⭐ Средняя✅ Отлично✅ ВысокаяHard-exploration задачи
Count-basedПодсчёт⭐⭐ Низкая✅ Хорошо❌ Только дискретныеДискретные среды

Современные подходы и направления исследований

Современные обзоры категоризируют методы исследования по ключевым вкладам: вознаграждение за новые состояния, вознаграждение за разнообразное поведение, goal-based методы, вероятностные методы, методы на основе имитации, безопасное исследование и случайные методы.

Goal-conditioned исследование

Агент ставит себе подцели и исследует пространство состояний, стремясь достичь их. Этот подход хорошо работает в иерархических задачах и роботизированных манипуляциях.

Эволюционные стратегии и разнообразие политик

В эволюционных стратегиях используется разнообразная популяция политик, а не одна политика. Эволюционные стратегии способны находить решения, не предусмотренные разработчиками, поскольку ищут как структуру нейронной сети, так и разнообразие. Однако они страдают от низкой эффективности по числу выборок, что делает обучение вычислительно затратным или медленным.

Meta-learning curiosity алгоритмов

Алгоритмы curiosity, такие как Random Network Distillation (RND), разработаны вручную и способны хорошо работать в разных средах. Однако в 2020 году Alet et al. предложили уникальный подход к открытию новых алгоритмов curiosity — через мета-обучение. В результате были открыты два новых интерпретируемых алгоритма: Fast Action Space Transition (FAST) и Cycle-Consistency Intrinsic Motivation (CCIM).


graph TD
    A[Агент взаимодействует со средой] --> B{Получена награда?}
    B -- Да --> C[Обновление политики / эксплуатация]
    B -- Нет --> D[Вычисление внутренней награды]
    D --> E{Метод исследования}
    E --> F[ε-Greedy: случайное действие]
    E --> G[UCB: наименее изученное действие]
    E --> H[ICM/RND: состояние-новинка]
    E --> I[Entropy Reg.: максимизация разнообразия]
    F & G & H & I --> J[Исследование новых состояний]
    J --> A
    C --> A


Заключение: как выбрать стратегию

Большинство успешных RL-приложений используют ε-greedy, поскольку он надёжен и хорошо изучен. Баланс между исследованием и эксплуатацией фундаментален для RL и для принятия решений в целом. Агенту необходимо балансировать между испытанием нового и использованием уже известного, и идеального решения не существует.

Практические рекомендации:

  • Простые задачи / дискретные среды → ε-Greedy с decay, UCB
  • Policy gradient алгоритмы (SAC, PPO) → Entropy Regularization
  • Atari-игры с плотными наградами → NoisyNet, ε-Greedy
  • Разреженные награды, сложные игры → ICM, RND
  • Исследование и безопасность → Goal-conditioned + Safe exploration
💡 Практический совет
Для sample-efficient обучения попробуйте UCB в bandit-задачах или адаптируйте его к своей задаче: более умное исследование окупается при ограниченных данных. Для глубокого RL начните с ε-greedy, а затем постепенно вводите intrinsic rewards, если агент застрял.

Исследование в Deep RL — это не просто технический приём, а отражение фундаментального когнитивного принципа: чтобы научиться чему-то по-настоящему ценному, иногда нужно рискнуть и пойти туда, куда ещё не ходил. Правильный баланс между любопытством и осторожностью определяет, станет ли ваш агент чемпионом или застрянет в локальном оптимуме.