Advantage Actor-Critic – A2C

1.4.4 – Metodos Actor-Critic
1.4.4.1 – Arquiteturas Basicas
1.4.4.1.2 – Advantage Actor-Critic – A2C
LEGENDA
Principal
Ramo
Metodo
Problemas
Modelo
Arquitetura

O que é o advantage actor-critic (a2c)

O A2C é uma evolução do método Actor-Critic tradicional. Ele introduz o conceito de “vantagem” (advantage) para melhorar o aprendizado. Primeiramente, a vantagem mede o quanto uma ação é melhor que a média. Ela é calculada como o TD Error tradicional. Diferentemente do TD Error simples, a vantagem é usada diretamente. Por exemplo, uma ação com vantagem positiva é reforçada. Uma ação com vantagem negativa é desencorajada. Este método reduz ainda mais a variância dos gradientes. Consequentemente, o aprendizado torna-se mais estável. O A2C é amplamente usado em problemas complexos. Uma característica importante é o uso de paralelismo. Vários ambientes são executados simultaneamente. Primeiramente, cada ambiente coleta experiências independentemente. Depois, as experiências são reunidas para atualizar a rede. Este processo é chamado de “sincronizado” ou “síncrono”. Por isso, o nome é Advantage Actor-Critic (A2C). O paralelismo reduz a correlação entre as amostras. Também acelera significativamente o treinamento. Contudo, a versão básica pode rodar com um único ambiente. O código exemplo usará um ambiente para simplificar.

Arquitetura do modelo a2c

A arquitetura A2C possui duas redes neurais principais. O ator (policy network) mapeia estados para distribuições de ações. O crítico (value network) mapeia estados para valores. Primeiramente, o ator produz probabilidades usando softmax. Em segundo lugar, o crítico produz um único valor escalar. Ambas as redes podem compartilhar camadas iniciais. Isso reduz o número total de parâmetros. Contudo, para iniciantes, redes separadas são mais claras. A entrada das redes são as observações do ambiente. A saída do ator é o número de ações possíveis. A vantagem (advantage) é calculada de duas formas principais. A primeira usa o TD Error: \(A(s,a) = r + \gamma V(s’) – V(s)\). A segunda usa o retorno descontado menos o valor do estado. Ambas as formas são equivalentes em expectativa. A função de perda do ator é ponderada pela vantagem: \(L_{actor} = -\log \pi_\theta(a_t|s_t) A(s_t,a_t)\). O crítico é atualizado para minimizar o erro quadrático. O erro quadrático é \(L_{critic} = (r + \gamma V(s’) – V(s))^2\). A entropia da política pode ser adicionada como regularizador. Isso incentiva a exploração e evita convergência prematura.

Hiperparâmetros e fórmulas matemáticas

A taxa de aprendizado do ator (alpha) é um hiperparâmetro chave. Valores típicos variam entre 0.0001 e 0.001. A taxa de aprendizado do crítico (beta) pode ser diferente. Geralmente, beta é igual ou ligeiramente maior que alpha. O fator de desconto (gamma) prioriza recompensas futuras. Gamma é tipicamente 0.99 para problemas contínuos. O coeficiente de entropia (entropy_coef) incentiva exploração. Valores típicos variam entre 0.01 e 0.001. O número de passos por atualização (n_steps) é importante. Valores entre 5 e 20 são comuns na prática. A função de perda total do A2C é a soma de três termos: \(L_{total} = L_{actor} + c_1 L_{critic} – c_2 H(\pi)\). O termo de entropia é definido como: \(H(\pi) = -\sum_a \pi_\theta(a|s) \log \pi_\theta(a|s)\). O gradiente do ator com vantagem é: \(\nabla_\theta J(\theta) = \mathbb{E}[\nabla_\theta \log \pi_\theta(a|s) A(s,a)]\). O gradiente do crítico minimiza o erro quadrático: \(\nabla_\omega L = -2(r + \gamma V(s’) – V(s)) \nabla_\omega V(s)\). A vantagem também pode ser calculada como: \(A(s,a) = \sum_{k=0}^{n-1} \gamma^k r_{t+k} + \gamma^n V(s_{t+n}) – V(s_t)\). Esta é a vantagem de n-passos (n-step advantage). Ela balanceia viés e variância do estimador. O A2C clássico usa vantagem de 1-passo (TD Error). Estas fórmulas são implementadas no código exemplo.

Enunciado do exemplo clássico: cartpole

Você deve equilibrar um poste sobre um carrinho móvel. O ambiente se chama CartPole-v1 na biblioteca Gymnasium. O carrinho pode mover-se para esquerda ou direita. O objetivo é manter o poste na posição vertical. Cada passo sem queda gera uma recompensa de +1. O episódio termina quando o poste cai mais de 15 graus. Seu agente A2C deve aprender a política ótima. Use a vantagem (advantage) para guiar o aprendizado. A entropia deve ser adicionada para incentivar exploração. Treine o agente por 500 episódios no Google Colab. Primeiramente, implemente o ator com saída softmax. A entrada do ator são as 4 observações do ambiente. A saída são 2 ações (esquerda ou direita). Em segundo lugar, implemente o crítico com saída linear. A entrada do crítico também são as 4 observações. A saída é o valor esperado do estado. Depois, calcule a vantagem usando o TD Error. Adicione a entropia à função de perda do ator. Ao final, exiba gráficos das recompensas e da vantagem. O código abaixo resolve completamente este enunciado. O código implementa o Advantage Actor-Critic (A2C) completo. A vantagem (advantage) é calculada usando o TD Error. Primeiramente, o ator escolhe ações baseado na política atual. O crítico avalia o valor do estado para calcular a vantagem. Depois, o ator é atualizado para maximizar a vantagem. A entropia é adicionada para incentivar exploração. O crítico é atualizado para minimizar o erro quadrático. Este processo reduz a variância e estabiliza o aprendizado. Os gráficos mostram a evolução da vantagem durante o treino. Parabéns! Você implementou um algoritmo A2C funcional.

Deixe um comentário