Métodos Ator-Crítico

Visão geral

Métodos ator-crítico (actor-critic) são uma família de algoritmos de aprendizado por reforço (reinforcement learning, RL) que combinam:

  • um ator (actor): uma política (policy) parametrizada (\pi_\theta(a \mid s)) (ou uma política determinística (deterministic policy) (\mu_\theta(s))) que escolhe ações, e
  • um crítico (critic): uma função de valor (value function) parametrizada (por exemplo, (V_\phi(s)) ou (Q_\phi(s,a))) que avalia quão bons são estados/ações.

Essa combinação é popular porque mescla os pontos fortes de:

  • métodos de gradiente de política (policy gradient) (otimizando diretamente a política, adequados para ações contínuas e políticas estocásticas), e
  • métodos baseados em valor (value-based) (sinais de aprendizado com menor variância via estimativa por bootstrapping (bootstrapping), como em Aprendizado Q (Q-learning)).

Algoritmos ator-crítico são amplamente usados em benchmarks de controle contínuo (por exemplo, MuJoCo), robótica, jogos e qualquer cenário em que sejam necessários aprendizado estável e aproximação de função escalável (frequentemente com Redes Neurais (Neural Networks)).

Conceitos relacionados são abordados em páginas mais especializadas como Gradientes de Política (Policy Gradients) e Otimização Proximal de Política (Proximal Policy Optimization, PPO).

Fundamentos teóricos

Configuração de RL (MDP)

A maioria dos métodos ator-crítico assume um Processo de Decisão de Markov (Markov Decision Process, MDP) com:

  • estados (s \in \mathcal{S})
  • ações (a \in \mathcal{A})
  • dinâmica de transição (p(s' \mid s,a))
  • recompensa (r(s,a))
  • desconto (\gamma \in [0,1))

O objetivo é aprender uma política que maximize o retorno descontado esperado: [ J(\theta) = \mathbb{E}{\pi\theta}\left[\sum_{t=0}^\infty \gamma^t r_t\right]. ]

Por que “ator + crítico”?

Gradientes de política puramente de Monte Carlo (por exemplo, REINFORCE) estimam gradientes usando retornos completos, o que pode ter alta variância. Métodos ator-crítico reduzem a variância usando um crítico como uma linha de base (baseline) aprendida e por meio de estimativa por bootstrapping (usando previsões de valor futuro em vez de esperar retornos completos).

Em resumo:

  • O ator aprende o que fazer.
  • O crítico aprende quão bom isso é (e fornece um sinal de aprendizado para o ator).

Gradiente de política com um crítico

O teorema do gradiente de política (policy gradient theorem) fornece: [ \nabla_\theta J(\theta) = \mathbb{E}{s,a \sim \pi\theta}\left[\nabla_\theta \log \pi_\theta(a\mid s), Q^{\pi_\theta}(s,a)\right]. ]

Na prática, substituímos (Q^{\pi}(s,a)) por um estimador com menor variância, tipicamente usando a vantagem (advantage): [ A^{\pi}(s,a) = Q^{\pi}(s,a) - V^{\pi}(s). ]

Isso resulta na atualização comum do ator: [ \nabla_\theta J(\theta) \approx \mathbb{E}\left[\nabla_\theta \log \pi_\theta(a\mid s), \hat{A}(s,a)\right]. ]

O crítico fornece (\hat{V}(s)) (ou (\hat{Q}(s,a))), permitindo que (\hat{A}) seja calculada com variância reduzida.

O crítico: funções de valor e bootstrapping

Escolhas comuns de crítico

Métodos ator-crítico normalmente usam um destes críticos:

  • Crítico de valor de estado (state-value critic): (V_\phi(s))
    Conveniente para métodos na política e para estimativa de vantagem.
  • Crítico de valor-ação (action-value critic): (Q_\phi(s,a))
    Comum em métodos fora da política (DDPG/TD3/SAC) e em controle contínuo.
  • Críticos duelos / gêmeos (dueling / twin critics): múltiplos críticos para reduzir o viés de superestimação (notavelmente TD3 e SAC).

Aprendizado por Diferença Temporal (TD)

Críticos são frequentemente treinados com alvos TD (TD targets):

  • Para um crítico de valor: [ y_t = r_t + \gamma V_\phi(s_{t+1}) ]
  • Para um crítico Q: [ y_t = r_t + \gamma Q_\phi(s_{t+1}, a_{t+1}) ] (ou uma ação de uma política-alvo, dependendo do algoritmo).

Então minimiza-se uma perda de regressão (regression loss): [ \mathcal{L}(\phi) = \mathbb{E}[(Q_\phi(s,a) - y)^2] \quad \text{ou} \quad \mathbb{E}[(V_\phi(s)-y)^2]. ]

O bootstrapping melhora a eficiência amostral (sample efficiency), mas pode introduzir viés e instabilidade quando combinado com aproximação de função (function approximation) — esta é uma razão central pela qual variantes modernas de ator-crítico incluem truques de estabilização (redes-alvo, críticos gêmeos, atualizações conservadoras, etc.).

O ator: políticas estocásticas vs determinísticas

Ator estocástico (típico para métodos na política e SAC)

Um ator estocástico modela (\pi_\theta(a \mid s)), frequentemente como uma Gaussiana (Gaussian) para ações contínuas:

  • (\mu_\theta(s)), (\sigma_\theta(s)) parametrizam a distribuição
  • ação amostrada como (a \sim \mathcal{N}(\mu_\theta(s), \sigma_\theta(s)))

Vantagens:

  • Exploração natural
  • Pode otimizar objetivos regularizados por entropia (entropy-regularized) (SAC)
  • Frequentemente mais robusto

Ator determinístico (DDPG/TD3)

Um ator determinístico produz uma ação direta: (a = \mu_\theta(s)).

O gradiente de política determinística (deterministic policy gradient) é: [ \nabla_\theta J(\theta) \approx \mathbb{E}\left[\nabla_\theta \mu_\theta(s), \nabla_a Q_\phi(s,a)\vert_{a=\mu_\theta(s)}\right]. ]

Políticas determinísticas podem ser muito eficientes em amostras, mas exigem ruído explícito de exploração durante a coleta de dados.

Estimativa de vantagem (ideia prática central)

Vantagem de um passo (erro TD)

Uma estimativa comum de vantagem é o erro TD (TD error): [ \delta_t = r_t + \gamma V(s_{t+1}) - V(s_t) ] e usar (\hat{A}_t = \delta_t).

Isso tem baixa variância, mas pode ter viés maior.

Retornos de múltiplos passos

Usar retornos de (n) passos reduz o viés: [ \hat{G}t^{(n)} = \sum{k=0}^{n-1} \gamma^k r_{t+k} + \gamma^n V(s_{t+n}) ] e então (\hat{A}_t = \hat{G}_t^{(n)} - V(s_t)).

Estimativa Generalizada de Vantagem (Generalized Advantage Estimation, GAE)

GAE faz uma troca suave entre viés/variância usando um parâmetro (\lambda): [ \hat{A}t^{\text{GAE}(\gamma,\lambda)} = \sum{l=0}^\infty (\gamma\lambda)^l \delta_{t+l}. ]

Na prática, (\lambda \in [0.9, 0.97]) é comum. GAE é amplamente usada em sistemas ator-crítico na política (incluindo métodos no estilo PPO).

Ator-crítico na política vs fora da política

Ator-crítico na política

Métodos na política (on-policy) aprendem a partir de trajetórias geradas pela política atual.

  • Prós:
    • Sinal de aprendizado conceitualmente mais simples
    • Frequentemente estáveis com as restrições adequadas
  • Contras:
    • Menos eficientes em amostras (os dados não podem ser reutilizados muito)

Exemplos: A2C, A3C, muitas implementações de PPO (veja Otimização Proximal de Política (Proximal Policy Optimization, PPO)).

Ator-crítico fora da política

Métodos fora da política (off-policy) aprendem a partir de dados gerados por políticas antigas ou por políticas de comportamento diferentes, tipicamente via um buffer de replay (replay buffer).

  • Prós:
    • Alta eficiência amostral (reutiliza os mesmos dados muitas vezes)
    • Forte desempenho em controle contínuo
  • Contras:
    • Mais componentes (replay, redes-alvo, mudança de distribuição)
    • Podem ser frágeis sem técnicas de estabilização

Exemplos: DDPG, TD3, SAC.

Correção fora da política (brevemente)

Em princípio, gradientes de política fora da política podem usar razões de amostragem por importância (importance sampling) (\frac{\pi(a|s)}{\mu(a|s)}), mas muitos algoritmos práticos de aprendizado por reforço profundo em vez disso dependem de derivações específicas (por exemplo, gradiente de política determinística) e heurísticas de estabilização (redes-alvo, críticos conservadores) em vez de correções explícitas completas.

Principais variantes

A2C e A3C (Advantage Actor-Critic)

Ideia central

A2C (Ator-Crítico com Vantagem (Advantage Actor-Critic)) usa:

  • um ator com política estocástica (\pi_\theta(a|s))
  • um crítico de valor (V_\phi(s))
  • uma estimativa de vantagem (frequentemente (n)-passos ou GAE)

A3C (A2C Assíncrono (Asynchronous A2C)) executa múltiplos workers de ambiente de forma assíncrona, o que:

  • descorrelaciona a experiência
  • estabiliza o aprendizado sem um buffer de replay (historicamente importante)

A2C é o primo síncrono e amigável a GPU do A3C.

Perda típica

Uma perda combinada comum é:

  • perda de política (maximizar a log-prob ponderada pela vantagem)
  • perda de valor (ajustar (V(s)) aos retornos)
  • bônus de entropia (entropy bonus) (incentivar exploração)

[ \mathcal{L} = \mathcal{L}\text{policy} + c_v \mathcal{L}\text{value} - c_e \mathcal{H}(\pi_\theta(\cdot|s)) ]

Esboço de pseudocódigo (estilo A2C)

repeat:
  collect T steps using current policy πθ
  compute advantages Ât (e.g., GAE) and value targets
  update critic by minimizing (Vφ(st) - targett)^2
  update actor by maximizing log πθ(at|st) * Ât + entropy_bonus
until done

Exemplo prático

Em CartPole, A2C aprende rapidamente porque:

  • o crítico reduz a variância das atualizações por gradiente de política
  • o bônus de entropia evita convergência prematura para uma escolha determinística subótima de ação

Em tarefas mais difíceis (Atari, controle contínuo), A2C/A3C podem funcionar, mas frequentemente são superados em eficiência amostral por métodos fora da política como SAC.

DDPG (Deep Deterministic Policy Gradient)

Ideia central

DDPG (Gradiente de Política Determinística Profunda (Deep Deterministic Policy Gradient)) adapta gradientes de política determinística a redes profundas:

  • ator: determinístico (\mu_\theta(s))
  • crítico: (Q_\phi(s,a))
  • usa um buffer de replay de experiência (experience replay buffer) e redes-alvo (target networks) para estabilizar o aprendizado TD

Componentes-chave

  • Buffer de replay: armazenar transições ((s,a,r,s',done)), amostrar mini-batches i.i.d.
  • Redes-alvo: cópias de movimento lento (\phi'), (\theta') usadas para alvos de bootstrapping: [ y = r + \gamma Q_{\phi'}(s', \mu_{\theta'}(s')) ]
  • Ruído de exploração (exploration noise): como a política é determinística, adicionar ruído durante a coleta de dados: [ a = \mu_\theta(s) + \epsilon ] Frequentemente ruído Gaussiano; ruído de Ornstein–Uhlenbeck (Ornstein–Uhlenbeck noise) foi popular nos primeiros trabalhos.

Onde se destaca / onde sofre

  • Funciona bem para ações contínuas
  • Pode ser sensível a hiperparâmetros e à superestimação da função Q; TD3 foi proposto em grande parte para resolver esses problemas.

TD3 (Twin Delayed DDPG)

TD3 (DDPG Gêmeo Atrasado (Twin Delayed DDPG)) melhora a estabilidade do DDPG com três ideias principais:

  1. Críticos gêmeos: aprender (Q_{\phi_1}) e (Q_{\phi_2}), e usar o mínimo para os alvos a fim de reduzir superestimação: [ y = r + \gamma \min_i Q_{\phi_i'}(s', \mu_{\theta'}(s') + \epsilon) ]
  2. Suavização da política-alvo (target policy smoothing): adicionar ruído truncado à ação-alvo para reduzir a exploração de erros da função Q.
  3. Atualizações de política atrasadas (delayed policy updates): atualizar o ator com menor frequência do que os críticos (por exemplo, ator a cada 2–3 passos do crítico), melhorando a estabilidade.

TD3 costuma ser um padrão forte para tarefas determinísticas de controle contínuo quando você quer bom desempenho sem o ajuste de entropia do SAC.

SAC (Soft Actor-Critic)

Ideia central: RL de entropia máxima

SAC (Ator-Crítico Suave (Soft Actor-Critic)) otimiza um objetivo de entropia máxima (maximum entropy): [ J(\pi) = \mathbb{E}\left[\sum_t \gamma^t \big(r_t + \alpha \mathcal{H}(\pi(\cdot|s_t))\big)\right] ] onde (\alpha) controla o trade-off recompensa–entropia.

Isso incentiva:

  • exploração persistente
  • robustez a ruído na recompensa / ótimos locais
  • políticas mais suaves em espaços de ação contínuos

Arquitetura e atualizações (visão geral)

SAC tipicamente usa:

  • um ator estocástico (\pi_\theta(a|s))
  • dois críticos Q (Q_{\phi_1}, Q_{\phi_2}) (como no TD3)
  • opcionalmente uma rede de valor em versões mais antigas (muitas implementações modernas a omitem)
  • um buffer de replay + redes-alvo

Um alvo comum usa a próxima ação amostrada pelo ator e inclui o termo de entropia: [ y = r + \gamma \left(\min_i Q_{\phi_i'}(s', a') - \alpha \log \pi_\theta(a'|s')\right), \quad a' \sim \pi_\theta(\cdot|s') ]

Ajuste automático de entropia

Um recurso prático amplamente usado é o ajuste automático de (\alpha) (automatic (\alpha) tuning), que ajusta (\alpha) para manter uma entropia-alvo (aproximadamente, um nível desejado de exploração). Isso reduz o volume de ajuste manual e é uma razão-chave para o SAC ser considerado um padrão robusto fora da política.

Exemplo prático

Em tarefas de locomoção do MuJoCo (HalfCheetah, Ant), o SAC frequentemente:

  • aprende mais rápido do que métodos na política devido ao replay
  • produz curvas de treinamento mais estáveis do que DDPG
  • compete fortemente com TD3, frequentemente superando-o quando a exploração é difícil

Considerações práticas e “armadilhas”

1) Escolhendo na política vs fora da política

Uma regra prática útil:

  • Escolha na política (A2C/ator-crítico no estilo PPO) quando:
  • Escolha fora da política (SAC/TD3/DDPG) quando:
    • a interação com o ambiente é cara (robótica, sistemas reais)
    • eficiência amostral importa muito
    • você consegue arcar com mais ajuste/complexidade

2) Estratégias de exploração

  • Políticas estocásticas: a exploração vem “de graça” via amostragem; bônus de entropia ajudam a evitar colapso.
  • Políticas determinísticas: você precisa injetar ruído:
    • Ruído Gaussiano: simples e comum
    • Ruído OU: temporalmente correlacionado; pode ajudar em controle físico, mas nem sempre é necessário

Exploração não é apenas ações aleatórias: em aprendizado por reforço profundo, a política pode parar de explorar se a entropia colapsar ou se o ruído for pequeno demais, causando platôs de aprendizado.

3) Normalização e escala da vantagem

Para ator-crítico na política, é comum:

  • normalizar vantagens dentro de um batch (média zero, variância unitária)
  • aplicar clipping de gradientes (clip gradients) (por exemplo, clipping pela norma global)

Isso pode melhorar drasticamente a estabilidade com pouca desvantagem.

4) Balanceando perdas (ator vs crítico)

Ator-crítico normalmente usa múltiplos termos de perda. Um escalonamento ruim pode causar:

  • crítico dominando (o ator não melhora)
  • ator mudando rápido demais (o crítico não consegue acompanhar)

Práticas comuns:

  • ajustar o coeficiente de perda de valor (c_v)
  • ajustar o coeficiente de entropia (c_e) (ou ajustar (\alpha) automaticamente no SAC)
  • usar otimizadores/taxas de aprendizado separados para ator e crítico

Tudo isso depende de otimização estável via Descida do Gradiente (Gradient Descent) e de implementação cuidadosa de Retropropagação (Backpropagation).

5) Detalhes do buffer de replay (fora da política)

Para DDPG/TD3/SAC:

  • use um buffer de replay suficientemente grande (frequentemente (10^5)–(10^6) transições)
  • considere uma fase de aquecimento (coletar ações aleatórias antes de treinar)
  • garanta o tratamento correto de transições terminais (done) nos alvos

Replay de experiência priorizado (prioritized experience replay) pode ajudar, mas nem sempre é necessário e adiciona complexidade.

6) Redes-alvo e taxa de atualização

Métodos fora da política frequentemente usam média de Polyak (Polyak averaging): [ \phi' \leftarrow \tau \phi + (1-\tau)\phi' ] Um (\tau) pequeno (por exemplo, 0.005) produz atualizações lentas que estabilizam alvos com bootstrapping.

7) Viés de superestimação e subestimação

  • Críticos Q únicos podem superestimar, levando a políticas otimistas demais (um problema conhecido no bootstrapping ao estilo Q-learning).
  • TD3/SAC mitigam isso com críticos gêmeos e alvos mínimos.

8) Espaços de ação contínuos vs discretos

  • Ator-crítico é especialmente natural para ações contínuas (controle de robôs).
  • Para ações discretas, ator-crítico também funciona bem (A2C/A3C/PPO) e frequentemente é mais simples do que métodos de valor-ação com espaços de ação grandes.

9) Observabilidade parcial

Em ambientes parcialmente observáveis, use políticas/críticos recorrentes (recurrent policies/critics) (por exemplo, LSTM/GRU) para que ator e crítico condicionem em um estado de memória (memory state) aprendido em vez de apenas na observação atual.

Um pequeno exemplo concreto: o que uma atualização “significa”

Suponha que um braço robótico receba recompensa maior quando sua garra se alinha com um objeto.

  • O crítico aprende: “No estado (s), o retorno futuro esperado é (V(s)).”
  • O ator toma uma ação (a) e obtém um resultado melhor do que o esperado:
    • Vantagem (\hat{A}(s,a) > 0)
    • A atualização da política aumenta (\log \pi(a|s)): o ator se torna mais provável de escolher ações similares em estados similares.
  • Se o resultado é pior do que o esperado ((\hat{A}<0)), o ator reduz a probabilidade daquela ação.

Essa é a intuição central: o crítico fornece uma “expectativa” aprendida, e o ator atualiza com base em como a realidade se compara a essa expectativa.

Aplicações

Métodos ator-crítico são comuns em:

  • Robótica e controle: locomoção, manipulação (SAC/TD3 particularmente fortes)
  • Jogos: treinamento em grande escala com atores paralelos (historicamente no estilo A3C; hoje mais comum no estilo PPO)
  • Pesquisa operacional (operations research): escalonamento, alocação de recursos (ator-crítico pode lidar com espaços de ação grandes ou contínuos)
  • Sistemas de recomendação e sistemas interativos: uso cuidadoso com considerações de avaliação fora da política

Resumo: quando cada variante é uma boa opção

  • A2C/A3C: ator-crítico na política mais simples; bom baseline com ambientes paralelos; menos eficiente em amostras.
  • DDPG: ator-crítico determinístico fora da política fundamental; pode funcionar bem, mas frequentemente é sensível.
  • TD3: estabilidade melhorada em relação ao DDPG; excelente baseline determinístico para controle contínuo.
  • SAC: ator-crítico estocástico fora da política com maximização de entropia; exploração robusta e forte desempenho; uma “escolha padrão” comum para ações contínuas.

Métodos ator-crítico permanecem centrais no RL moderno porque oferecem um compromisso prático: otimização direta de política guiada por um estimador de valor aprendido, entregando sinais de aprendizado com menor variância e estabilidade melhorada em comparação com gradientes de política puros — enquanto ainda escalam para problemas grandes e contínuos.