Aprendizado por diferença temporal (TD Learning)

bebê aprendendo a andar
1.4.2 – Metodos Baseados em Valor
1.4.2.3 – Temporal Difference – TD
1.4.2.3.1 – SARSA – On-policy
1.4.2.3.2 – Q-Learning – Off-policy
1.4.2.3.3 – Double Q-Learning
LEGENDA
Principal
Ramo
Metodo
Problemas
Modelo
Arquitetura

A diferença temporal (TD) combina ideias de Monte Carlo e programação dinâmica. Primeiramente, ela aprende diretamente da experiência como Monte Carlo. Em segundo lugar, ela usa bootstrap como programação dinâmica. Por conseguinte, o TD não precisa de modelo do ambiente. Além disso, ele atualiza os valores antes do fim do episódio. Isso é uma grande vantagem sobre Monte Carlo.

Características do método TD

O TD(0) é a versão mais simples do algoritmo. Ele atualiza o valor após cada passo. A fórmula é \( V(s) \leftarrow V(s) + \alpha [r + \gamma V(s’) – V(s)] \). O termo entre colchetes é chamado erro TD. Ele é calculado imediatamente após a transição. Diferente de Monte Carlo, não esperamos o episódio terminar. Portanto, o TD pode aprender em tarefas contínuas (não episódicas). Essa é uma característica poderosa para problemas reais.

A arquitetura armazena V(s) ou Q(s,a) em uma tabela. Para cada transição (s, a, r, s’), atualizamos o valor. O hiperparâmetro α é a taxa de aprendizado. Valores típicos são 0.1 ou 0.01. O fator de desconto γ é outro hiperparâmetro crítico. A política pode ser ε-greedy ou gulosa. O TD é mais eficiente que Monte Carlo. Ele tem menor variância e converge mais rápido. Contudo, ele pode ter viés devido ao bootstrap.

Fórmulas matemáticas fundamentais

A equação de Bellman para V é \( V^\pi(s) = \mathbb{E}_\pi [r + \gamma V^\pi(s’) | s] \). O TD usa uma amostra dessa expectativa. O erro TD é \( \delta_t = r_{t+1} + \gamma V(s_{t+1}) – V(s_t) \). A atualização incremental é \( V(s_t) \leftarrow V(s_t) + \alpha \delta_t \). Para ação-valor, temos Q-learning: \( Q(s,a) \leftarrow Q(s,a) + \alpha [r + \gamma \max_{a’} Q(s’,a’) – Q(s,a)] \). O SARSA é similar, mas usa a ação real escolhida.

O TD é um método livre de modelo (model-free). Ele não precisa da probabilidade de transição. A convergência é garantida se todos os pares forem visitados. A taxa de aprendizado α deve decair ao longo do tempo. Condições padrão são \( \sum \alpha_t = \infty \) e \(\) \sum \alpha_t^2 < \infty [/latex]. Na prática, usamos α constante para problemas não-estacionários.

Exemplo clássico: labirinto com recompensa ao final

Imagine um labirinto 4×4 com um único objetivo. O agente começa no canto superior esquerdo. Ele recebe recompensa 0 em cada passo. Apenas no objetivo a recompensa é +10. O ambiente é determinístico. O objetivo é aprender o valor de cada estado. O código abaixo implementa TD(0) para resolver o labirinto. Ele compara com Monte Carlo para mostrar eficiência.

Aprendizado por reforço: função de valor e ação-valor

bebê aprendendo a andar
1.4 – Por Reforco
1.4.1 – Fundamentos Por Reforco
1.4.1.4 – Funcao de Valor e Acao-Valor
LEGENDA
Principal
Ramo
Metodo
Problemas
Modelo
Arquitetura

A função de valor estima o quão bom é um estado. Ela prevê o retorno futuro esperado a partir dali. Por outro lado, a função ação-valor Q(s,a) avalia um par estado-ação. Assim, o agente pode comparar diferentes escolhas. Essas funções são fundamentais para planejamento e aprendizado.

Definição formal de V(s) e Q(s,a)

A função valor V(s) é definida como \( V^\pi(s) = \mathbb{E}_\pi \left[ G_t \mid S_t = s \right] \). Ela depende da política π seguida pelo agente. Já a função ação-valor é \( Q^\pi(s,a) = \mathbb{E}_\pi \left[ G_t \mid S_t = s, A_t = a \right] \). A diferença entre elas é o momento da ação. Primeiro, V(s) assume que a política já foi definida. Segundo, Q(s,a) permite testar ações específicas. Consequentemente, Q é mais flexível para aprendizado.

Ambas as funções obedecem à equação de Bellman. Para V(s), temos \( V^\pi(s) = \sum_a \pi(a|s) \sum_{s’,r} p(s’,r|s,a) [r + \gamma V^\pi(s’)] \). Para Q(s,a), a equação é \( Q^\pi(s,a) = \sum_{s’,r} p(s’,r|s,a) [r + \gamma \sum_{a’} \pi(a’|s’) Q^\pi(s’,a’)] \). Essas equações relacionam valor presente e futuro. Portanto, elas permitem calcular V e Q recursivamente.

Arquiteturas e hiperparâmetros comuns

Uma tabela armazena V(s) ou Q(s,a) para espaços discretos pequenos. Porém, em problemas grandes, usamos aproximadores. Redes neurais profundas são a escolha mais comum. A arquitetura típica inclui camadas convolucionais (para imagens) ou densas (para vetores). A saída da rede pode ser um único valor V(s). Alternativamente, a rede pode ter múltiplos neurônios de saída, um para cada Q(s,a).

Os hiperparâmetros críticos são a taxa de aprendizado α, o fator de desconto γ, e a taxa de exploração ε. Além disso, o tamanho do replay buffer é importante (ex: 10000 transições). O batch size (ex: 32) afeta a estabilidade. A frequência de atualização da rede alvo (ex: a cada 100 passos) também é usada. Esses parâmetros são ajustados empiricamente.

Exemplo clássico: FrozenLake com Q-learning

Imagine um lago congelado dividido em uma grade 4×4. O objetivo do aventureiro é chegar ao bloco de gelo seguro (posição (3,3) – canto inferior direito). Porém, existem 4 buracos (gelo fino) espalhados pelo lago. Se o aventureiro cair em um buraco, ele morre e o episódio termina com recompensa 0.

Regras do ambiente:

Gelo seguro (caminho normal): 12 posições onde o aventureiro pode andar. Cada passo dá recompensa 0.

Buracos (perigo): 4 posições onde o gelo quebra. Cair neles dá recompensa 0 e encerra o jogo.

Objetivo (gelo seguro especial): 1 posição (canto inferior direito). Chegar lá dá recompensa +1 e encerra o jogo com vitória.

Estocasticidade: O gelo é escorregadio. Quando o aventureiro tenta mover-se em uma direção, ele pode escorregar para os lados (probabilidade 1/3 para cada direção adjacente). Isso torna o aprendizado desafiador. Mapa Visual:

 

O código treina uma tabela Q no FrozenLake. O agente aprende por tentativa e erro. A função valor V(s) é derivada de Q(s,a). O primeiro gráfico mostra a melhora das recompensas. O segundo gráfico exibe o valor de cada estado. Regiões mais claras são mais valiosas. O agente aprende a evitar buracos (valor baixo) e ir para o objetivo (valor alto). Este exemplo ilustra perfeitamente funções de valor e ação-valor.