Métodos Baseados em Política

Banco Imobiliário
1.4 – Por Reforco
1.4.3 – Metodos Baseados em Politica
1.4.3.1 – Metodos de Gradiente de Politica
LEGENDA
Principal
Ramo
Metodo
Problemas
Modelo
Arquitetura

O que é um método baseado em política?

Em aprendizado por reforço, métodos baseados em política otimizam diretamente a estratégia do agente. Essa estratégia é chamada de política \(\pi(a|s)\). Ela mapeia cada estado para uma distribuição de probabilidade sobre ações. Diferentemente dos métodos baseados em valor, nenhum Q-valor é estimado. Por conseguinte, a política é aprendida sem um passo intermediário de valor. Isso é especialmente útil para ações contínuas ou ambientes estocásticos. Primeiramente, a política pode ser representada por uma rede neural. Então, ajustamos seus parâmetros \(\theta\) para maximizar a recompensa esperada. Essa abordagem é chamada de Policy Gradient (PG). Além disso, ela lida naturalmente com problemas de exploração. A política estocástica sempre tem alguma chance de explorar ações diferentes. Consequentemente, métodos baseados em política são mais robustos em muitos cenários.

Características e arquitetura dos modelos

Nesses modelos, a arquitetura principal é uma rede neural que recebe o estado. Ela produz as probabilidades de cada ação (softmax) ou parâmetros de uma distribuição gaussiana. Por exemplo, para ações discretas, a saída é um vetor de logits. A função softmax converte esses logits em probabilidades. Já para ações contínuas, a rede gera média e variância. Uma amostra da distribuição normal é usada para escolher a ação. Os hiperparâmetros comuns incluem a taxa de aprendizado (\(\alpha\)), fator de desconto (\(\gamma\)), e a entropia regularizadora. A entropia encoraja exploração ao penalizar políticas muito determinísticas. Frequentemente, usa-se o algoritmo REINFORCE ou o Actor-Critic. O REINFORCE é um método de gradiente de política simples. Porém, ele sofre com alta variância nas estimativas. Uma solução é adicionar um baseline (valor do estado). Isso é feito naturalmente no Actor-Critic. No Actor-Critic, duas redes são usadas: o ator (política) e o crítico (valor). O crítico estima \(V(s)\) para reduzir a variância. Então, o gradiente da política é calculado com a vantagem \(A(s,a)\). Essa arquitetura é frequentemente empregada em problemas complexos. Portanto, métodos baseados em política são muito flexíveis.

Fórmulas matemáticas fundamentais

O objetivo é maximizar a recompensa esperada \(J(\theta)\). A política é parametrizada por \(\theta\). O gradiente da política é dado pelo teorema do gradiente da política: \[ \nabla_\theta J(\theta) = \mathbb{E}_{\pi_\theta} \left[ \nabla_\theta \log \pi_\theta(a|s) \cdot Q^{\pi_\theta}(s,a) \right] \] Para reduzir variância, substituímos \(Q\) pela vantagem \(A(s,a)\). A vantagem é definida como \(A(s,a) = Q(s,a) – V(s)\). No REINFORCE com baseline, a atualização é: \[ \theta \leftarrow \theta + \alpha \cdot \nabla_\theta \log \pi_\theta(a|s) \cdot (G_t – V(s)) \] Aqui, \(G_t\) é o retorno acumulado a partir do tempo \(t\). O crítico é treinado para minimizar o erro quadrático médio com \(G_t\). A perda do crítico é \(\mathcal{L}_V = (G_t – V(s))^2\). Já a perda do ator é \(-\log \pi_\theta(a|s) \cdot (G_t – V(s))\). Adicionalmente, adiciona-se um termo de entropia: \(\mathcal{H} = -\sum \pi_\theta(a|s) \log \pi_\theta(a|s)\). Isso incentiva a exploração e evita convergência prematura.

Exemplo clássico: Lunar Lander com Policy Gradient

Enunciado: Um foguete deve pousar suavemente na plataforma de pouso. O ambiente LunarLander-v2 (gymnasium) tem 8 estados contínuos e 4 ações discretas. A recompensa é positiva por tocar a plataforma e negativa por combustível ou quedas. O episódio termina com pouso bem-sucedido (recompensa +100) ou acidente (-100). Você deve implementar um agente baseado em política (Actor-Critic) que aprenda a pousar. Treine por 1000 episódios e mostre a evolução da recompensa média. Gere também um gráfico da perda do crítico e da entropia da política. O código implementa um agente Actor-Critic para o Lunar Lander. A política (ator) é aprendida diretamente, sem estimar Q-valores. A vantagem é calculada usando o crítico como baseline. Isso reduz a variância e acelera o aprendizado. Três gráficos são gerados: recompensa, perdas e entropia. Métodos baseados em política são ideais para este problema. Eles convergem para soluções robustas de pouso. Portanto, este exemplo ilustra perfeitamente o conceito.

Dueling DQN

bebê aprendendo a andar
1.4.2 – Metodos Baseados em Valor
1.4.2.4 – Aproximacao de Funcoes
1.4.2.4.4 – Dueling DQN
LEGENDA
Principal
Ramo
Metodo
Problemas
Modelo
Arquitetura

O que é o problema baseado em valor?

Em aprendizado por reforço, métodos baseados em valor estimam a “bondade” de cada estado ou ação. Frequentemente, isso é feito por uma função chamada Q-valor. Então, o agente escolhe a ação com maior valor estimado. Contudo, estados reais são complexos e contínuos. Por isso, usamos aproximação de funções com redes neurais. A arquitetura Dueling DQN é uma evolução desse raciocínio.

Primeiramente, uma rede neural comum mapeia estado-ação diretamente. Em contraste, a Dueling DQN separa essa estimativa em duas partes. Isso permite aprendizado mais estável e eficiente. Ademais, ela foca no valor do estado e na vantagem de cada ação. Essa divisão é especialmente útil quando ações são irrelevantes em alguns estados. Consequentemente, o agente aprende mais rápido.

Características e arquitetura do modelo

A arquitetura Dueling DQN possui duas streams (caminhos) após camadas convolucionais ou densas. Um caminho estima o valor do estado \( V(s) \). O outro caminho estima a vantagem \( A(s,a) \) para cada ação. Finalmente, esses valores são combinados para gerar \( Q(s,a) \). A combinação é feita pela seguinte fórmula:

\[ Q(s,a) = V(s) + \left( A(s,a) – \frac{1}{|\mathcal{A}|} \sum_{a’} A(s,a’) \right) \]

O termo de subtração da média das vantagens garante identificabilidade. Sem isso, \( V \) e \( A \) poderiam variar arbitrariamente. A vantagem média zero foca o aprendizado no valor real do estado. Isso é uma diferença crucial em relação ao DQN padrão. Hiperparâmetros comuns incluem taxa de aprendizado (ex: 0.0001), fator de desconto (\( \gamma \approx 0.99 \)), e tamanho do buffer replay (ex: 50000). A rede é treinada minimizando o erro quadrático médio entre Q atual e Q alvo.

A equação de atualização usa a seguinte perda:

\[ \mathcal{L} = \mathbb{E}\left[ \left( r + \gamma \max_{a’} Q_{\text{target}}(s’,a’) – Q(s,a) \right)^2 \right] \]

Aqui, \( r \) é a recompensa imediata, e \( s’ \) o próximo estado. Um segundo conjunto de pesos (target network) é atualizado suavemente. Assim, o treinamento se torna mais estável. É importante notar que a Dueling DQN compartilha a memória replay do DQN. Todavia, sua arquitetura dupla reduz a superestimação do Q-valor.

Hiperparâmetros e fórmulas matemáticas

Os principais hiperparâmetros são: learning rate (\( \alpha \)), batch size (32–128), e epsilon-greedy decay. O epsilon inicial geralmente é 1.0 e final 0.01. A cada passo, o agente escolhe ação aleatória com probabilidade \( \epsilon \). Do contrário, escolhe \( a = \arg\max_a Q(s,a) \). O fator de desconto \( \gamma \) pondera recompensas futuras. Para exploração eficiente, usa-se também soft target updates (\( \tau \approx 0.001 \)).

Vamos formalizar a vantagem média centralizada novamente:

\[ A_{\text{centralizada}}(s,a) = A(s,a) – \frac{1}{|\mathcal{A}|}\sum_{a’}A(s,a’) \]

Então a saída final da Dueling DQN é:

\[ Q(s,a) = V(s) + A_{\text{centralizada}}(s,a) \]

Essa forma garante que o valor médio das vantagens seja zero. A função de perda é minimizada via gradiente descendente estocástico. Em muitos ambientes, a Dueling DQN alcança pontuações mais altas que a DQN padrão. Exemplos clássicos incluem o jogo Pong e o ambiente CartPole.

Exemplo clássico: CartPole com Dueling DQN

Enunciado: Um carrinho (agente) deve equilibrar um poste na vertical por 500 passos. A cada passo, ele pode empurrar o carrinho para esquerda ou direita. A recompensa é +1 por cada passo que o poste permanece em pé. O episódio termina se o poste cair (ângulo > ±12°) ou o carrinho sair dos limites. Você deve implementar um agente Dueling DQN que aprenda a equilibrar o poste. Use a biblioteca gymnasium (antigo gym). Treine por 500 episódios e mostre a evolução da recompensa média. Ao final, gere um gráfico da recompensa por episódio e da perda durante o treino.

O código acima treina o agente usando Dueling DQN. Primeiramente, a rede é definida com duas streams separadas. Depois, o agente interage com o ambiente CartPole. A memória replay guarda as últimas transições. Finalmente, dois gráficos mostram o progresso do aprendizado. Este exemplo pode ser executado diretamente no Google Colab. Aproximação de funções é utilizada para lidar com estados contínuos. Resultados melhores são obtidos com ajuste fino dos hiperparâmetros. Portanto, a arquitetura dupla é uma escolha poderosa para muitos problemas.