Experience Replay: a memória que torna o DQN estável

1.4.2 – Metodos Baseados em Valor
1.4.2.4 – Aproximacao de Funcoes
1.4.2.4.2 – DQN com Experience Replay
LEGENDA
Principal
Ramo
Metodo
Problemas
Modelo
Arquitetura

O Experience Replay é um componente essencial do DQN. Primeiramente, ele armazena transições (s, a, r, s’) em um buffer. Em segundo lugar, ele amostra mini-batches aleatórios para treinar a rede. Por conseguinte, as correlações temporais entre experiências são quebradas. Isso estabiliza o aprendizado significativamente. Sem replay, o DQN diverge facilmente.

Características do Experience Replay

O buffer de replay é uma fila circular de tamanho fixo. Transições antigas são descartadas quando o buffer enche. Cada transição é usada múltiplas vezes em diferentes épocas. Isso aumenta a eficiência amostral do algoritmo. Além disso, o replay permite aprendizado offline. O agente pode revisitar experiências passadas. Consequentemente, o DQN aprende de forma mais robusta e estável.

A amostragem uniforme é a abordagem mais simples. Contudo, versões avançadas usam priorização. Experiências com maior erro TD são amostradas com mais frequência. Isso acelera o aprendizado em problemas esparsos. O buffer é armazenado em RAM ou memória GPU. O tamanho típico é 1 milhão de transições para jogos Atari. Para problemas simples, 10.000 a 100.000 transições são suficientes.

Hiperparâmetros e fórmulas matemáticas

Os hiperparâmetros do replay buffer incluem tamanho máximo e batch size. Tamanhos típicos são 10.000 a 1.000.000. O batch size usual é 32, 64 ou 128. A perda é calculada como \( L(θ) = \frac{1}{|B|} \sum_{(s,a,r,s’) \in B} (r + \gamma \max_{a’} Q(s’,a’;θ^-) – Q(s,a;θ))^2 \). Aqui B é o mini-batch amostrado. O gradiente descendente é aplicado após cada amostragem.

A taxa de aprendizado α é tipicamente 0.00025 para Adam. O fator de desconto γ é 0.99. A rede alvo é atualizada a cada C passos (ex: 1000). Ou usamos soft update com τ=0.001. O buffer é inicializado vazio. Durante os primeiros passos, apenas coletamos experiências. Depois, começamos o treinamento com replay. Essa é a fase de warmup.

Exemplo clássico: CartPole com análise do replay

Considere o ambiente CartPole com estado contínuo. O DQN com Experience Replay é treinado por 500 episódios. O buffer armazena as últimas 10.000 transições. O código abaixo mostra o impacto do replay. Ele visualiza o tamanho do buffer e a frequência de uso das experiências. Gráficos mostram como o replay melhora a estabilidade e convergência.

Deixe um comentário