0Pricing
Learn AI with Python · Урок

Методы Actor-Critic (A2C)

Функция преимущества, actor (политика) и critic (ценность), синхронная реализация A2C

«Методы Actor-Critic (A2C)» — бесплатный урок Learn AI with Python на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Learn AI with Python, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Learn AI with Python содержит 4 уроков всего.

Объединение политики и ценности

Методы актор-критик объединяют две идеи: actor — политику, выбирающую действия, — и critic — функцию ценности, оценивающую их. critic предоставляет обратную связь с меньшей дисперсией, чем необработанные возвраты, что стабилизирует обучение.

Actor

actor — это сеть политики. Она выдаёт логиты действий или вероятности для текущего состояния, как и в REINFORCE, и решает, что делать.

class ActorCritic(nn.Module):
    def __init__(self, obs_dim, n_actions):
        super().__init__()
        self.shared = nn.Sequential(nn.Linear(obs_dim, 128), nn.ReLU())
        self.actor = nn.Linear(128, n_actions)

Critic

critic оценивает ценность состояния V(s) — ожидаемый возврат из состояния s. Это головка с одним выходом, предсказывающая, насколько хороша текущая ситуация.

        self.critic = nn.Linear(128, 1)

    def forward(self, s):
        h = self.shared(s)
        return self.actor(h), self.critic(h)

Общая базовая сеть и две головки

Обычно actor и critic используют общие ранние слои, то есть базовую сеть, а затем разделяются на две головки. Совместное использование признаков эффективно и позволяет обеим задачам укреплять полезные представления.

Функция преимущества

Ключевая величина — преимущество A = r + gamma * V(s') - V(s). Она показывает, насколько действие оказалось лучше ожиданий critic. Положительное преимущество означает «лучше среднего», отрицательное — хуже.

advantage = reward + gamma * V_next - V_current

Почему преимущество лучше необработанного возврата

Использование преимущества вместо полного возврата G_t центрирует сигнал относительно оценки critic, значительно уменьшая дисперсию. Это главная причина, по которой метод actor-critic обучается стабильнее, чем REINFORCE.

Функция потерь actor

Обучение actor проходит как в REINFORCE, но вместо возврата используется преимущество: увеличивается вероятность действий с положительным преимуществом.

actor_loss = -(log_prob * advantage.detach()).mean()

Функция потерь critic

critic учится точно предсказывать возвраты. Его функция потерь — это квадратичная ошибка между предсказанием V(s) и наблюдаемой целевой величиной r + gamma * V(s').

target = reward + gamma * V_next.detach()
critic_loss = (V_current - target).pow(2).mean()

Общая функция потерь

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

loss = actor_loss + 0.5 * critic_loss - 0.01 * entropy
loss.backward()

Синхронный A2C

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

# N parallel envs step together each iteration
# gather all transitions, then one combined update

A2C и A3C

Асинхронный вариант A3C позволяет рабочим процессам обновляться независимо. A2C синхронизирует их, что проще, лучше подходит для GPU и обычно столь же эффективно, поэтому он так популярен.

Проверка знаний

Проверьте, насколько хорошо Вы понимаете метод actor-critic.

Итоги: Actor-Critic и A2C

Вы узнали, что actor выдаёт логиты политики, а critic оценивает V(s), часто используя общую базовую сеть с двумя головками. Преимущество r + gamma*V(s') - V(s) уменьшает дисперсию, а синхронный A2C использует параллельные рабочие процессы для стабильного и эффективного обучения.

Часто задаваемые вопросы

Урок «Методы Actor-Critic (A2C)» бесплатный?

Да — полный текст урока «Методы Actor-Critic (A2C)» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Learn AI with Python, подпишись на CoddyKit PRO. Курс Learn AI with Python содержит 4 уроков всего.

Чему я научусь в уроке «Методы Actor-Critic (A2C)»?

Функция преимущества, actor (политика) и critic (ценность), синхронная реализация A2C Ты практикуешь Learn AI with Python с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Learn AI with Python?

Предыдущий опыт не требуется. Learn AI with Python на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Методы Actor-Critic (A2C)»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Learn AI with Python?

Да. Каждый урок Learn AI with Python включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Методы градиента политики: REINFORCE
  2. Методы Actor-Critic (A2C)
  3. Проксимальная оптимизация политики (PPO)
  4. Пользовательские среды Gymnasium
← Назад к Learn AI with Python