Actor-Critic com TD Error

1.4.4 – Metodos Actor-Critic
1.4.4.1 – Arquiteturas Basicas
1.4.4.1.1 – Actor-Critic com TD Error
LEGENDA
Principal
Ramo
Metodo
Problemas
Modelo
Arquitetura

O que é o método actor-critic

O Actor-Critic é um método de aprendizado por reforço híbrido. Ele combina duas abordagens: baseada em valor e baseada em política. Primeiramente, o “ator” (actor) decide qual ação deve ser tomada. Em segundo lugar, o “crítico” (critic) avalia se a ação foi boa. O ator é uma rede que aprende a política diretamente. O crítico é uma rede que aprende o valor do estado. Esta arquitetura resolve problemas de alta variância dos gradientes. Por exemplo, um robô pode aprender a andar mais rápido. O ator escolhe os movimentos, e o crítico dá notas. Assim, o aprendizado torna-se mais estável e eficiente.

Uma grande vantagem é o aprendizado a cada passo (online). Diferentemente do REINFORCE, não é necessário esperar o episódio terminar. Primeiramente, o erro temporal (TD Error) é calculado instantaneamente. Este erro mede a diferença entre a recompensa esperada e a real. Depois, o erro é usado para atualizar tanto o ator quanto o crítico. Consequentemente, o algoritmo aprende muito mais rápido. O TD Error é uma das ideias mais importantes do reforço. Ele reduz a variância e melhora a estabilidade. Este método é amplamente usado em problemas complexos. Por exemplo, em jogos, robótica e finanças.

Arquitetura básica do actor-critic

A arquitetura possui duas redes neurais principais. O ator (policy network) mapeia estados para ações. A saída do ator é uma distribuição de probabilidade (softmax). O crítico (value network) mapeia estados para valores. A saída do crítico é um único número (o valor do estado). Primeiramente, o ator escolhe uma ação baseada no estado atual. Depois, o ambiente retorna a recompensa e o próximo estado. O crítico avalia o valor do estado anterior e do novo estado. Com essas informações, o TD Error é calculado. Finalmente, ambas as redes são atualizadas simultaneamente.

O ator é atualizado na direção que maximiza a vantagem. A vantagem é calculada usando o TD Error. O crítico é atualizado para minimizar o erro de predição. Duas redes separadas são usadas para estabilidade. Contudo, elas podem compartilhar camadas iniciais. Isso reduz o número total de parâmetros. O algoritmo aprende a cada transição (estado, ação, recompensa). Não é necessário armazenar episódios completos. Esta é a principal diferença para o REINFORCE. O Actor-Critic é considerado o estado da arte atual.

Hiperparâmetros e fórmulas matemáticas

A taxa de aprendizado do ator (alpha) é um hiperparâmetro crucial. 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 número de neurônios nas redes afeta a capacidade. Valores entre 64 e 256 são comuns na prática. A função de ativação ReLU é usada nas camadas escondidas. A inicialização dos pesos deve ser pequena e aleatória.

O TD Error é calculado pela seguinte fórmula: \(\delta_t = r_{t+1} + \gamma V(s_{t+1}) – V(s_t)\). O gradiente do ator é ponderado pelo TD Error: \(\nabla_\theta J(\theta) = \mathbb{E}[\nabla_\theta \log \pi_\theta(a_t|s_t) \delta_t]\). A atualização do ator segue a regra: \(\theta \leftarrow \theta + \alpha \nabla_\theta \log \pi_\theta(a_t|s_t) \delta_t\). O crítico é atualizado para minimizar o erro quadrático: \(L_{critic} = \delta_t^2 = (r_{t+1} + \gamma V(s_{t+1}) – V(s_t))^2\). O gradiente do crítico é: \(\nabla_\omega L = -2\delta_t \nabla_\omega V(s_t)\). Estas fórmulas são a base do algoritmo Actor-Critic. O TD Error substitui o retorno bruto usado no REINFORCE. Isso reduz drasticamente a variância do gradiente. O aprendizado torna-se mais rápido e estável.

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 Actor-Critic deve aprender a política ótima. Uma rede neural ator escolherá as ações. Uma rede neural crítico avaliará cada estado. O TD Error guiará o aprendizado de ambas as redes.

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 é um único valor (o valor esperado do estado). Depois, execute um loop de treinamento por 600 episódios. A cada passo, calcule o TD Error e atualize as redes. Ao final, exiba gráficos das recompensas e do erro. O código abaixo resolve completamente este enunciado.

O código implementa o Actor-Critic com TD Error completo. O ator escolhe ações, e o crítico avalia os estados. Primeiramente, o TD Error é calculado a cada passo. Depois, o ator é atualizado usando este erro como vantagem. O crítico é atualizado para minimizar o erro quadrático. Este processo acontece online, sem esperar o episódio terminar. Consequentemente, o aprendizado é muito mais rápido. O agente aprende a equilibrar o poste em poucos episódios. O gráfico do TD Error mostra a convergência do aprendizado. Parabéns! Você implementou um algoritmo Actor-Critic completo.

Deixe um comentário