A3C – asynchronous advantage actor-critic

bebê aprendendo a andar
1.4.4 – Metodos Actor-Critic
1.4.4.1 – Arquiteturas Basicas
1.4.4.1.3 – Asynchronous Advantage Actor-Critic – A3C
LEGENDA
Principal
Ramo
Metodo
Problemas
Modelo
Arquitetura

O que é o a3c (asynchronous advantage actor-critic)

O A3C é um algoritmo revolucionário criado pelo DeepMind. Ele combina aprendizado assíncrono com vantagem (advantage). Primeiramente, múltiplos agentes são executados em paralelo. Cada agente tem sua própria cópia do ambiente. Em segundo lugar, eles atuam de forma independente e assíncrona. Periodicamente, cada agente atualiza uma rede global compartilhada. Este paralelismo quebra a correlação entre as amostras. Consequentemente, o aprendizado torna-se mais estável. O A3C não necessita de Experience Replay. Isso reduz o uso de memória e acelera o treinamento.

Uma grande vantagem é a escalabilidade do método. Quanto mais núcleos de CPU, mais rápido é o aprendizado. Primeiramente, cada agente coleta experiências localmente. Depois, os gradientes são calculados de forma independente. Finalmente, eles são aplicados à rede global de forma assíncrona. Este processo é chamado de “atualização assíncrona”. Por isso, o nome é Asynchronous Advantage Actor-Critic. O paralelismo também serve como regularizador natural. Assim, o algoritmo é mais robusto que versões síncronas. O A3C foi usado para jogar jogos da Atari profissionalmente.

Arquitetura do modelo a3c

A arquitetura A3C possui uma rede global compartilhada. Além dela, existem N redes locais (workers). Cada worker tem sua própria cópia do ambiente. Primeiramente, cada worker executa um episódio localmente. Depois de N passos, o worker calcula os gradientes. Os gradientes são enviados para a rede global. A rede global é atualizada de forma assíncrona. Em seguida, o worker sincroniza seus pesos com a global. Este processo se repete continuamente. O número típico de workers é entre 4 e 16.

Cada worker possui duas redes: ator e crítico. O ator mapeia estados para distribuições de ações. O crítico mapeia estados para valores esperados. Primeiramente, o ator usa softmax para ações discretas. Para ações contínuas, usa-se média e variância. O crítico usa uma saída linear para o valor. As redes compartilham camadas iniciais para eficiência. Contudo, para simplificação, redes separadas são usadas. A vantagem (advantage) é calculada com n-passos. Isso balanceia viés e variância do estimador.

Hiperparâmetros e fórmulas matemáticas

A taxa de aprendizado global (alpha) é um hiperparâmetro crucial. Valores típicos variam entre 0.0001 e 0.001. O número de workers (N) afeta a velocidade de treinamento. Valores comuns são 4, 8 ou 16 workers. O número de passos por atualização (t_max) é importante. Valores entre 5 e 20 são usados na prática. O fator de desconto (gamma) prioriza recompensas futuras. Gamma é tipicamente 0.99 para problemas contínuos. O coeficiente de entropia (beta) incentiva exploração. Valores típicos variam entre 0.01 e 0.001.

Advantage Actor-Critic – A2C

bebê aprendendo a andar
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.