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

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

(Различия между версиями)
Перейти к: навигация, поиск
 
(1 промежуточная версия не показана)
Строка 34: Строка 34:
Дополнительное снижение дисперсии в обоих подходах достигается переходом от <tex>V(s)</tex> к [[Преимущество (Advantage)|функции преимущества]] <tex>A(s, a)</tex>, например, через GAE (Generalized Advantage Estimation), что позволяет находить баланс между смещением (bias) и дисперсией (variance) оценки.
Дополнительное снижение дисперсии в обоих подходах достигается переходом от <tex>V(s)</tex> к [[Преимущество (Advantage)|функции преимущества]] <tex>A(s, a)</tex>, например, через GAE (Generalized Advantage Estimation), что позволяет находить баланс между смещением (bias) и дисперсией (variance) оценки.
 +
 +
== Пример из практики: управление беспилотным транспортом ==
 +
 +
* '''Вход''': облако точек от лидаров и камер.
 +
* '''Выход''': вектор непрерывных управляющих воздействий (угол поворота руля, продольное ускорение).
 +
 +
'''Фаза обучения''': На этапе обучения архитектура работает симметрично. Актёр генерирует кандидатные траектории, а Критик оценивает их по safety-score — вероятности безошибочного прохождения участка с учетом динамических препятствий. Ошибка временного сдвига (TD-error) направляет градиенты Актёра, штрафуя за опасные манёвры.
 +
 +
'''Фаза инференса''': Системный дизайн определяется фазой развертывания на борту. Вычислительные мощности автомобильного компьютера строго ограничены во времени (порядка 10 мс на цикл). Хранить в памяти и задействовать вычислительные блоки для половины весов нейросети (Критика), которая на инференсе не выполняет функций оценки, непозволительно.
 +
 +
Поэтому при развертывании происходит строгая асимметрия: Критик физически отсекается от графа вычислений, и в системе остается только Актёр.
 +
 +
'''Инженерное решение проблемы стабильности'''
 +
 +
Возникает задача обеспечения безопасности: как гарантировать, что Актёр продолжит избегать опасных состояний без контроля со стороны Критика? Решение закладывается на этапе проектирования сети. Используется кодировщик (encoder) для извлечения пространственных признаков. При этом к функции потерь Актёр добавляется вспомогательная ошибка реконструкции скрытого состояния Критика.
 +
 +
В результате на этапе обучения Критик принуждает кодировщик формировать латентное пространство, в котором четко разделены безопасные и опасные области. После удаления Критика на инференсе Актёр продолжает использовать этот «безопасный» срез признаков для принятия решений. Знания о безопасности навсегда имплементируются в структуру весов Актёра еще на этапе совместного обучения.
== См. также ==
== См. также ==

Текущая версия

Статья написана с использованием 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) оценки.

Пример из практики: управление беспилотным транспортом

  • Вход: облако точек от лидаров и камер.
  • Выход: вектор непрерывных управляющих воздействий (угол поворота руля, продольное ускорение).

Фаза обучения: На этапе обучения архитектура работает симметрично. Актёр генерирует кандидатные траектории, а Критик оценивает их по safety-score — вероятности безошибочного прохождения участка с учетом динамических препятствий. Ошибка временного сдвига (TD-error) направляет градиенты Актёра, штрафуя за опасные манёвры.

Фаза инференса: Системный дизайн определяется фазой развертывания на борту. Вычислительные мощности автомобильного компьютера строго ограничены во времени (порядка 10 мс на цикл). Хранить в памяти и задействовать вычислительные блоки для половины весов нейросети (Критика), которая на инференсе не выполняет функций оценки, непозволительно.

Поэтому при развертывании происходит строгая асимметрия: Критик физически отсекается от графа вычислений, и в системе остается только Актёр.

Инженерное решение проблемы стабильности

Возникает задача обеспечения безопасности: как гарантировать, что Актёр продолжит избегать опасных состояний без контроля со стороны Критика? Решение закладывается на этапе проектирования сети. Используется кодировщик (encoder) для извлечения пространственных признаков. При этом к функции потерь Актёр добавляется вспомогательная ошибка реконструкции скрытого состояния Критика.

В результате на этапе обучения Критик принуждает кодировщик формировать латентное пространство, в котором четко разделены безопасные и опасные области. После удаления Критика на инференсе Актёр продолжает использовать этот «безопасный» срез признаков для принятия решений. Знания о безопасности навсегда имплементируются в структуру весов Актёра еще на этапе совместного обучения.

См. также

Примечания

Литература

  • 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.
Личные инструменты