Актёр-критик
Материал из MachineLearning.
| Строка 3: | Строка 3: | ||
== Концепция разделения == | == Концепция разделения == | ||
| - | В системном дизайне агентов [[Обучение с подкреплением|обучения с подкреплением]] (RL) монолитные подходы быстро | + | В системном дизайне агентов [[Обучение с подкреплением|обучения с подкреплением]] (RL) монолитные подходы быстро сталкиваются с инженерными ограничениями. Чистые [[Policy Gradient|методы на основе политики]] (policy-based) напрямую оптимизируют градиент, но страдают от высокой [[Дисперсия|дисперсии]] оценок: для стабилизации требуется огромное количество траекторий, что критично в условиях реального времени (например, при оценке маневра обгона на трассе). Чистые [[Value-based методы|методы на основе функции ценности]] (value-based, такие как DQN) эффективны в снижении дисперсии за счет [[Временные различия|временных различий]], но неприменимы в непрерывных пространствах действий (управление углом поворота руля, тяговым усилием). |
| - | Архитектура Актёр-Критик (Actor-Critic) решает эту проблему через декомпозицию. Мы выделяем две структуры с четкими зонами ответственности: | + | Архитектура Актёр-Критик (Actor-Critic) решает эту проблему через декомпозицию<ref>Konda V., Tsitsiklis J. Actor-critic algorithms //Advances in neural information processing systems. – 1999. – Т. 12.</ref>. Мы выделяем две структуры с четкими зонами ответственности: |
| - | * '''Актёр (Actor):''' отвечает за генерацию действия <tex>a_t</tex> в состоянии <tex>s_t</tex> согласно политике <tex>\pi_\theta(a|s)</tex>. Его задача — исследование пространства действий и управление. | + | * '''Актёр (Actor):''' отвечает за генерацию действия <tex>a_t</tex> в состоянии <tex>s_t</tex> согласно политике <tex>\pi_\theta(a|s)</tex>. Его задача — исследование пространства действий и непосредственное управление. |
| - | * '''Критик ( | + | * '''Критик (Critic):''' отвечает за оценку функции ценности <tex>V_\phi(s)</tex> или функции преимущества <tex>A_\phi(s, a)</tex>. Его задача — сигнализировать Актёру о качестве выбранного действия без необходимости дожидаться окончания эпизода. |
| - | Такое разделение позволяет использовать | + | Такое разделение позволяет использовать оценки Критика с низкой дисперсией для стабилизации градиента Актёра, изначально подверженного высокой дисперсии. |
== Архитектура и потоки данных == | == Архитектура и потоки данных == | ||
| Строка 15: | Строка 15: | ||
Взаимодействие компонентов реализуется через единый вычислительный граф. На каждом шаге <tex>t</tex> среда передает состояние <tex>s_t</tex>. Актёр семплирует действие <tex>a_t \sim \pi_\theta(\cdot|s_t)</tex> и выполняет его. Среда возвращает награду <tex>r_t</tex> и новое состояние <tex>s_{t+1}</tex>. | Взаимодействие компонентов реализуется через единый вычислительный граф. На каждом шаге <tex>t</tex> среда передает состояние <tex>s_t</tex>. Актёр семплирует действие <tex>a_t \sim \pi_\theta(\cdot|s_t)</tex> и выполняет его. Среда возвращает награду <tex>r_t</tex> и новое состояние <tex>s_{t+1}</tex>. | ||
| - | Критик вычисляет [[TD-ошибка|TD-ошибку]] (Temporal Difference error) — скалярный сигнал рассогласования между | + | Критик вычисляет [[TD-ошибка|TD-ошибку]] (Temporal Difference error) — скалярный сигнал рассогласования между текущей оценкой и целевым значением: |
<tex>\delta_t = r_t + \gamma V_\phi(s_{t+1}) - V_\phi(s_t)</tex> | <tex>\delta_t = r_t + \gamma V_\phi(s_{t+1}) - V_\phi(s_t)</tex> | ||
где <tex>\gamma</tex> — коэффициент дисконтирования. | где <tex>\gamma</tex> — коэффициент дисконтирования. | ||
TD-ошибка <tex>\delta_t</tex> является ключевым потоком данных между модулями: | TD-ошибка <tex>\delta_t</tex> является ключевым потоком данных между модулями: | ||
| - | + | # '''Обновление Критика:''' минимизируется среднеквадратичная ошибка предсказания: <tex>\mathcal{L}(\phi) = \delta_t^2</tex>. | |
| - | + | # '''Обновление Актёра:''' <tex>\delta_t</tex> используется в качестве базовой оценки (baseline) в градиенте политики, снижая её дисперсию<ref>Sutton R. S. et al. Policy gradient methods for reinforcement learning with function approximation //Advances in neural information processing systems. – 1999. – Т. 12.</ref>: | |
<tex>\nabla_\theta J(\theta) \approx \mathbb{E}[\nabla_\theta \log \pi_\theta(a_t|s_t) \delta_t]</tex> | <tex>\nabla_\theta J(\theta) \approx \mathbb{E}[\nabla_\theta \log \pi_\theta(a_t|s_t) \delta_t]</tex> | ||
| - | ''' | + | '''Инженерный компромисс (trade-off):''' Выбор между раздельными нейросетями (separate networks) и сетями с общей основой (shared backbone). В бортовых вычислителях беспилотного транспорта аппаратные ограничения вынуждают использовать общую базу (например, ResNet-ядро для обработки лидарных данных) с двумя раздельными выходами. Это экономит память и вычисления на инференсе, но создает проблему интерференции градиентов (gradient interference): сигналы обновления для Актёра и Критика могут противоречить друг другу, дестабилизируя обучение общего признакового пространства. |
== Проблема масштабирования и стабильности == | == Проблема масштабирования и стабильности == | ||
| Строка 30: | Строка 30: | ||
При переходе от симуляции к сложным средам возникает проблема параллелизма сбора данных и стабилизации весов. Это порождает два основных архитектурных паттерна: [[A2C]] (Advantage Actor-Critic) и [[A3C]] (Asynchronous Actor-Critic). | При переходе от симуляции к сложным средам возникает проблема параллелизма сбора данных и стабилизации весов. Это порождает два основных архитектурных паттерна: [[A2C]] (Advantage Actor-Critic) и [[A3C]] (Asynchronous Actor-Critic). | ||
| - | * '''A3C (Асинхронный):''' Запускает множество копий среды в отдельных потоках (workers). Каждый | + | * '''A3C (Асинхронный):''' Запускает множество копий среды в отдельных потоках (workers). Каждый поток копирует глобальные веса, собирает траекторию, считает локальные градиенты и асинхронно обновляет глобальную сеть<ref>Mnih V. et al. Asynchronous methods for deep reinforcement learning //International conference on machine learning. – PmLR, 2016.</ref>. <br />'''Проблема:''' В задачах непрерывного управления (например, удержание в полосе при высокой скорости) асинхронные обновления приводят к использованию устаревших (stale) весов для вычисления TD-ошибки. Это вызывает осцилляции политики и риск резких выбросов в управляющем сигнале. |
| - | + | * '''A2C (Синхронный):''' Убирает асинхронность. Несколько потоков собирают данные параллельно, но обновление глобальной сети происходит строго синхронно по завершении батча всеми потоками. <br />'''Инженерное решение:''' На практике A2C вытеснил A3C. Синхронизация гарантирует, что градиент вычисляется по актуальным весам, что критически важно для сходимости. Кроме того, в современных стеках RL (например, при обучении на GPU) векторизованные среды A2C используют аппаратное ускорение эффективнее, чем межпоточные блокировки A3C, изначально заточенные под CPU. | |
| - | * '''A2C (Синхронный):''' Убирает асинхронность. Несколько | + | |
| - | + | ||
| - | Дополнительное снижение дисперсии в обоих подходах достигается переходом от <tex>V(s)</tex> к [[Преимущество (Advantage)|функции преимущества]] <tex>A(s, a)</tex>, например, через GAE (Generalized Advantage Estimation), что позволяет | + | Дополнительное снижение дисперсии в обоих подходах достигается переходом от <tex>V(s)</tex> к [[Преимущество (Advantage)|функции преимущества]] <tex>A(s, a)</tex>, например, через GAE (Generalized Advantage Estimation), что позволяет находить баланс между смещением (bias) и дисперсией (variance) оценки. |
| - | |||
| - | |||
| - | |||
| - | |||
== См. также == | == См. также == | ||
* [[Обучение с подкреплением]] | * [[Обучение с подкреплением]] | ||
| Строка 47: | Строка 41: | ||
* [[Policy gradient]] | * [[Policy gradient]] | ||
* [[Компромисс обучение-применение]] | * [[Компромисс обучение-применение]] | ||
| + | |||
| + | == Примечания == | ||
| + | {{примечания}} | ||
| + | |||
| + | == Литература == | ||
| + | * {{статья | автор = 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 }} | ||
Версия 19:13, 18 июля 2026
| | Статья написана с использованием LLM GLM-5-Turbo и проверена участником Arina Pakalova (MSD) |
Содержание |
Концепция разделения
В системном дизайне агентов обучения с подкреплением (RL) монолитные подходы быстро сталкиваются с инженерными ограничениями. Чистые методы на основе политики (policy-based) напрямую оптимизируют градиент, но страдают от высокой дисперсии оценок: для стабилизации требуется огромное количество траекторий, что критично в условиях реального времени (например, при оценке маневра обгона на трассе). Чистые методы на основе функции ценности (value-based, такие как DQN) эффективны в снижении дисперсии за счет временных различий, но неприменимы в непрерывных пространствах действий (управление углом поворота руля, тяговым усилием).
Архитектура Актёр-Критик (Actor-Critic) решает эту проблему через декомпозицию[1]. Мы выделяем две структуры с четкими зонами ответственности:
- Актёр (Actor): отвечает за генерацию действия
в состоянии
согласно политике
. Его задача — исследование пространства действий и непосредственное управление.
- Критик (Critic): отвечает за оценку функции ценности
или функции преимущества
. Его задача — сигнализировать Актёру о качестве выбранного действия без необходимости дожидаться окончания эпизода.
Такое разделение позволяет использовать оценки Критика с низкой дисперсией для стабилизации градиента Актёра, изначально подверженного высокой дисперсии.
Архитектура и потоки данных
Взаимодействие компонентов реализуется через единый вычислительный граф. На каждом шаге среда передает состояние
. Актёр семплирует действие
и выполняет его. Среда возвращает награду
и новое состояние
.
Критик вычисляет TD-ошибку (Temporal Difference error) — скалярный сигнал рассогласования между текущей оценкой и целевым значением:
где
— коэффициент дисконтирования.
TD-ошибка является ключевым потоком данных между модулями:
- Обновление Критика: минимизируется среднеквадратичная ошибка предсказания:
.
- Обновление Актёра:
используется в качестве базовой оценки (baseline) в градиенте политики, снижая её дисперсию[1]:
Инженерный компромисс (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.
Дополнительное снижение дисперсии в обоих подходах достигается переходом от к функции преимущества
, например, через 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.

