Q-Learning: aprendizado off-policy por diferença temporal

bebê aprendendo a andar

Q-Learning é um dos algoritmos mais importantes do aprendizado por reforço. Primeiramente, ele é um método off-policy. Isso significa que ele aprende com uma política diferente da que age. Em segundo lugar, ele usa diferença temporal (TD) para atualizações. Por conseguinte, o Q-Learning pode aprender a política ótima enquanto explora. Esta é sua grande vantagem sobre métodos on-policy como o SARSA.

Características da arquitetura Q-Learning

O Q-Learning atualiza a função Q(s,a) usando o máximo sobre ações futuras. A fórmula é \( Q(s,a) \leftarrow Q(s,a) + \alpha [r + \gamma \max_{a’} Q(s’,a’) – Q(s,a)] \). Diferente do SARSA, ele não usa a ação real do próximo passo. Ele assume que a melhor ação será tomada. Portanto, o Q-Learning é mais otimista. Ele busca a política ótima mesmo durante a exploração.

A arquitetura armazena Q(s,a) em uma tabela ou rede neural. A política de comportamento (behavior) é tipicamente ε-greedy. A política alvo (target) é gulosa (maximização). Essa separação é a essência do off-policy learning. O agente pode aprender com experiências passadas. Ele também pode aprender com demonstrações humanas. Consequentemente, o Q-Learning é muito flexível e poderoso.

Hiperparâmetros e fórmulas matemáticas

Os hiperparâmetros incluem α (taxa aprendizado), γ (desconto) e ε (exploração). Valores típicos são α=0.1, γ=0.95, ε=0.1. O algoritmo converge se todos os pares forem visitados. A condição é \( \sum \alpha_t = \infty \) e \(\) \sum \alpha_t^2 < \infty [/latex]. O erro TD do Q-Learning é [latex] \delta = r + \gamma \max_{a'} Q(s',a') - Q(s,a) [/latex]. Este erro é usado para atualizar a Q-table.

Uma variante importante é o Double Q-Learning. Ele resolve o problema de superestimação. Dois estimadores Q são mantidos independentemente. A atualização usa o mínimo entre eles. Outra variante é o Q-Learning com decaying epsilon. A exploração diminui ao longo do tempo. Isso melhora a convergência para a política gulosa. O Q-Learning é a base do DQN (Deep Q-Network), que usa redes neurais profundas.

Exemplo clássico: labirinto com recompensas

Imagine um labirinto 4×4 com um tesouro escondido. O agente começa no canto superior esquerdo. Ele recebe recompensa -1 por passo. O tesouro dá +10 ao ser encontrado. Paredes bloqueiam certas células. O objetivo é maximizar a recompensa total. O Q-Learning encontra o caminho ótimo mesmo com exploração. O código abaixo implementa e visualiza o aprendizado.

SARSA

bebê aprendendo a andar

aprendendo com a própria política

SARSA é um algoritmo on-policy que aprende avaliando a política que está executando. Seu nome vem da sequência (S, A, R, S’, A’) usada nas atualizações. Primeiramente, o agente escolhe ação A’ para próximo estado usando a política atual. Além disso, atualiza Q(s,a) usando a recompensa e o valor da próxima ação. Por exemplo, aprende a política que está sendo seguida, incluindo exploração.

atualização passo a passo

O algoritmo atualiza após cada transição usando a próxima ação real. Primeiramente, observa (s, a, r, s’, a’) onde a’ é ação escolhida com política. Além disso, atualiza Q(s,a) = Q(s,a) + α [r + γ Q(s’,a’) – Q(s,a)]. Por exemplo, em um jogo, atualiza valores com base na próxima ação que realmente tomará. O valor Q(s’,a’) usa a ação que será executada.

exploração e comportamento

SARSA aprende a política que inclui exploração, não apenas a política ótima. Primeiramente, se usa ε-greedy, SARSA aprende valores considerando ações exploratórias. Além disso, converge para política ótima no limite quando exploração desaparece. Por exemplo, é mais conservador que Q-learning em ambientes com risco. É preferido quando segurança durante treinamento é importante.

aplicações e características

SARSA é robusto e estável em problemas onde exploração pode ser perigosa. Primeiramente, evita comportamentos muito otimistas durante o aprendizado. Além disso, converge sob condições mais brandas que Q-learning. Por exemplo, usado em robótica onde ações ruins podem ser prejudiciais. Para iniciantes, mostra como aprender avaliando a própria política. É um algoritmo fundamental para aprendizado on-policy.