Aprendizado por diferença temporal (TD Learning)

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.

Deixe um comentário