Актёр-критик

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
Строка 1: Строка 1:
-
{{well|Статья написана с использованием LLM '''GLM-5-Turbo''' и проверена участником [[Участник:Arina Pakalova|Arina Pakalova]] (MSD)}}
+
{{well|Статья написана с использованием LLM '''GLM-5-Turbo''' и проверена участником [[Участник:Arina Pakalova|Arina Pakalova]] 12:13, 17 июля 2026 (MSD)}}
== Концепция разделения ==
== Концепция разделения ==

Версия 19:15, 18 июля 2026

Статья написана с использованием LLM GLM-5-Turbo и проверена участником Arina Pakalova 12:13, 17 июля 2026 (MSD)


Содержание

Концепция разделения

В системном дизайне агентов обучения с подкреплением (RL) монолитные подходы быстро сталкиваются с инженерными ограничениями. Чистые методы на основе политики (policy-based) напрямую оптимизируют градиент, но страдают от высокой дисперсии оценок: для стабилизации требуется огромное количество траекторий, что критично в условиях реального времени (например, при оценке маневра обгона на трассе). Чистые методы на основе функции ценности (value-based, такие как DQN) эффективны в снижении дисперсии за счет временных различий, но неприменимы в непрерывных пространствах действий (управление углом поворота руля, тяговым усилием).

Архитектура Актёр-Критик (Actor-Critic) решает эту проблему через декомпозицию[1]. Мы выделяем две структуры с четкими зонами ответственности:

  • Актёр (Actor): отвечает за генерацию действия a_t в состоянии s_t согласно политике \pi_\theta(a|s). Его задача — исследование пространства действий и непосредственное управление.
  • Критик (Critic): отвечает за оценку функции ценности V_\phi(s) или функции преимущества A_\phi(s, a). Его задача — сигнализировать Актёру о качестве выбранного действия без необходимости дожидаться окончания эпизода.

Такое разделение позволяет использовать оценки Критика с низкой дисперсией для стабилизации градиента Актёра, изначально подверженного высокой дисперсии.

Архитектура и потоки данных

Взаимодействие компонентов реализуется через единый вычислительный граф. На каждом шаге t среда передает состояние s_t. Актёр семплирует действие a_t \sim \pi_\theta(\cdot|s_t) и выполняет его. Среда возвращает награду r_t и новое состояние s_{t+1}.

Критик вычисляет TD-ошибку (Temporal Difference error) — скалярный сигнал рассогласования между текущей оценкой и целевым значением: \delta_t = r_t + \gamma V_\phi(s_{t+1}) - V_\phi(s_t) где \gamma — коэффициент дисконтирования.

TD-ошибка \delta_t является ключевым потоком данных между модулями:

  1. Обновление Критика: минимизируется среднеквадратичная ошибка предсказания: \mathcal{L}(\phi) = \delta_t^2.
  2. Обновление Актёра: \delta_t используется в качестве базовой оценки (baseline) в градиенте политики, снижая её дисперсию[1]:

\nabla_\theta J(\theta) \approx \mathbb{E}[\nabla_\theta \log \pi_\theta(a_t|s_t) \delta_t]

Инженерный компромисс (trade-off): Выбор между раздельными нейросетями (separate networks) и сетями с общей основой (shared backbone). В бортовых вычислителях беспилотного транспорта аппаратные ограничения вынуждают использовать общую базу (например, ResNet-ядро для обработки лидарных данных) с двумя раздельными выходами. Это экономит память и вычисления на инференсе, но создает проблему интерференции градиентов (gradient interference): сигналы обновления для Актёра и Критика могут противоречить друг другу, дестабилизируя обучение общего признакового пространства.

Проблема масштабирования и стабильности

При переходе от симуляции к сложным средам возникает проблема параллелизма сбора данных и стабилизации весов. Это порождает два основных архитектурных паттерна: A2C (Advantage Actor-Critic) и A3C (Asynchronous Actor-Critic).

  • A3C (Асинхронный): Запускает множество копий среды в отдельных потоках (workers). Каждый поток копирует глобальные веса, собирает траекторию, считает локальные градиенты и асинхронно обновляет глобальную сеть[1].
    Проблема: В задачах непрерывного управления (например, удержание в полосе при высокой скорости) асинхронные обновления приводят к использованию устаревших (stale) весов для вычисления TD-ошибки. Это вызывает осцилляции политики и риск резких выбросов в управляющем сигнале.
  • A2C (Синхронный): Убирает асинхронность. Несколько потоков собирают данные параллельно, но обновление глобальной сети происходит строго синхронно по завершении батча всеми потоками.
    Инженерное решение: На практике A2C вытеснил A3C. Синхронизация гарантирует, что градиент вычисляется по актуальным весам, что критически важно для сходимости. Кроме того, в современных стеках RL (например, при обучении на GPU) векторизованные среды A2C используют аппаратное ускорение эффективнее, чем межпоточные блокировки A3C, изначально заточенные под CPU.

Дополнительное снижение дисперсии в обоих подходах достигается переходом от V(s) к функции преимущества A(s, a), например, через GAE (Generalized Advantage Estimation), что позволяет находить баланс между смещением (bias) и дисперсией (variance) оценки.

См. также

Примечания

Литература

  • Konda V., Tsitsiklis J. Actor-critic algorithms // Advances in neural information processing systems. — 1999. — Т. 12.
  • Sutton R. S. et al. Policy gradient methods for reinforcement learning with function approximation // Advances in neural information processing systems. — 1999. — Т. 12.
  • Mnih V. et al. Asynchronous methods for deep reinforcement learning // International conference on machine learning. — PMLR, 2016.
Личные инструменты