Q-learning

Visão geral

aprendizado Q (Q-learning) é um algoritmo fundamental em Aprendizado por Reforço para aprender como um agente deve agir em um ambiente para maximizar a recompensa de longo prazo. Ele é:

  • Sem modelo (model-free): não requer conhecer a dinâmica de transição do ambiente.
  • Diferença temporal (temporal-difference, TD): aprende a partir de alvos por bootstrapping (bootstrapped) que combinam recompensas imediatas com estimativas de valor futuro.
  • Fora da política (off-policy): pode aprender o valor de uma política ótima (gulosa (greedy)) enquanto segue uma política de comportamento (behavior policy) exploratória diferente.

O aprendizado Q aprende uma função valor-ação (action-value function) (também chamada de função Q (Q-function)), denotada (Q(s,a)), que estima o retorno esperado descontado ao executar a ação (a) no estado (s) e então se comportar de forma ótima a partir daí. Uma vez que (Q) é aprendida, a política (policy) é tipicamente a política gulosa: [ \pi(s) = \arg\max_a Q(s,a). ]

O aprendizado Q é especialmente influente porque se estende naturalmente de configurações tabulares (tabular) (pequenos espaços discretos de estados/ações) para abordagens modernas de aproximação de função (function approximation) como Redes Q Profundas (Deep Q-Networks, DQN), que conseguem lidar com entradas de alta dimensionalidade, como imagens.

Contexto: Processos de Decisão de Markov e Funções de Valor

O aprendizado Q geralmente é definido para um Processo de Decisão de Markov (Markov Decision Process, MDP) (ver Processos de Decisão de Markov), caracterizado por:

  • Estados (s \in \mathcal{S})
  • Ações (a \in \mathcal{A})
  • Dinâmica de transição (P(s' \mid s,a))
  • Função de recompensa (R(s,a,s')) (frequentemente escrita como (r))
  • Fator de desconto (discount factor) (\gamma \in [0,1))

O objetivo é maximizar o retorno esperado descontado: [ G_t = \sum_{k=0}^{\infty} \gamma^k r_{t+k+1}. ]

Funções valor-ação

A função valor-ação ótima (optimal action-value function) (Q^*(s,a)) é o máximo retorno esperado alcançável a partir de ((s,a)): [ Q^*(s,a) = \max_\pi \mathbb{E}_\pi \left[ G_t \mid s_t=s, a_t=a \right]. ]

Se você conhece (Q^*), agir de forma ótima é simples: escolher a ação com o maior valor em cada estado.

Equação de Otimalidade de Bellman

A ideia teórica central por trás do aprendizado Q é a equação de otimalidade de Bellman (Bellman optimality equation) para (Q^*): [ Q^*(s,a) = \mathbb{E}\left[r + \gamma \max_{a'} Q^*(s',a') \mid s,a\right]. ]

Ela diz: o valor ótimo de ((s,a)) é igual à recompensa imediata esperada mais o valor ótimo descontado do próximo estado (medido pela melhor próxima ação).

O aprendizado Q usa essa equação como um alvo de aprendizado mesmo quando o agente não conhece as probabilidades de transição.

A Atualização do Aprendizado Q (Controle TD)

Quando o agente vivencia uma transição ((s,a,r,s')), o aprendizado Q realiza a atualização:

[ Q(s,a) \leftarrow Q(s,a) + \alpha \left( r + \gamma \max_{a'} Q(s',a') - Q(s,a) \right), ]

onde:

  • (\alpha \in (0,1]) é a taxa de aprendizado (learning rate)
  • o termo entre parênteses é o erro de TD (TD error): [ \delta = r + \gamma \max_{a'} Q(s',a') - Q(s,a). ]

Por que o aprendizado Q é fora da política

Observe que a atualização usa (\max_{a'} Q(s',a')), que corresponde a agir de forma gulosa no próximo estado — mesmo que o agente tenha, na prática, escolhido ações exploratórias. Isso é a marca registrada do aprendizado fora da política: você pode se comportar de acordo com uma política de comportamento (para explorar) enquanto aprende sobre a política gulosa/ótima.

Em contraste, o algoritmo de controle TD na política (on-policy) SARSA usa o valor da próxima ação real (a') executada, em vez do máximo. Essa diferença importa para segurança e comportamento de exploração em alguns ambientes (por exemplo, “caminhada no penhasco (cliff walking)”).

Esboço do Algoritmo (Aprendizado Q Tabular)

Um loop típico de aprendizado Q tabular é:

Initialize Q(s,a) arbitrarily (often zeros)

For each episode:
  Initialize state s
  Repeat until terminal:
    Choose action a using an exploration policy derived from Q (e.g., ε-greedy)
    Take action a, observe reward r and next state s'
    Q(s,a) ← Q(s,a) + α [ r + γ max_a' Q(s',a') − Q(s,a) ]
    s ← s'

Embora a atualização seja simples, o desempenho depende fortemente de como você explora e de como define as taxas de aprendizado.

Estratégias de Exploração

Como o aprendizado Q é fora da política, você pode aprender valores gulosos enquanto se comporta de modo exploratório. A abordagem mais simples e mais comum é a exploração (\varepsilon)-gulosa ((\varepsilon)-greedy).

\(\varepsilon\)-gulosa

Com probabilidade (1-\varepsilon), escolha a ação gulosa; com probabilidade (\varepsilon), escolha uma ação aleatória:

[ a = \begin{cases} \arg\max_{a} Q(s,a) & \text{com prob. } 1-\varepsilon \ \text{ação aleatória} & \text{com prob. } \varepsilon \end{cases} ]

Práticas comuns:

  • Começar com (\varepsilon) mais alto (por exemplo, 1.0) e reduzir gradualmente (anneal) até um valor pequeno (por exemplo, 0.01–0.1).
  • Usar cronogramas dependentes do estado (state-dependent) ou dependentes do tempo (time-dependent) para incentivar uma exploração ampla no início.

Outras ideias de exploração (alto nível)

  • Exploração softmax/Boltzmann (Softmax/Boltzmann exploration): amostrar ações proporcionalmente a (\exp(Q(s,a)/\tau)), onde (\tau) é uma temperatura.
  • Otimismo diante da incerteza (optimism in the face of uncertainty): inicializar (Q) de forma otimista para incentivar o teste de ações.
  • Exploração no estilo Limite Superior de Confiança (Upper Confidence Bound, UCB): mais comum em bandits, mas conceitualmente relevante quando você consegue estimar incerteza.
  • Métodos regularizados por entropia (entropy-regularized methods): mais comuns em famílias baseadas em política como Gradientes de Política, mas representam uma filosofia diferente de exploração.

Convergência e Suposições (Caso Tabular)

No cenário tabular ((\mathcal{S}), (\mathcal{A}) finitos), o aprendizado Q tem garantias clássicas de convergência sob suposições que asseguram exploração suficiente e uma aproximação estocástica (stochastic approximation) estável.

Uma formulação comum é: o aprendizado Q converge para (Q^*) com probabilidade 1 se:

  1. Todos os pares estado–ação são visitados infinitas vezes, normalmente garantido por uma estratégia de exploração que nunca para completamente de explorar (ou segue um cronograma GLIE — ver abaixo).
  2. As taxas de aprendizado satisfazem as condições de Robbins–Monro (Robbins–Monro conditions) para cada ((s,a)): [ \sum_t \alpha_t(s,a) = \infty,\quad \sum_t \alpha_t^2(s,a) < \infty. ] (Intuição: os passos devem ser grandes o suficiente para continuar aprendendo, mas não tão grandes a ponto de o ruído impedir a convergência.)
  3. As recompensas são limitadas e o MDP é estacionário.

GLIE (Ganancioso no Limite com Exploração Infinita)

Uma condição suficiente padrão frequentemente discutida é GLIE (Greedy in the Limit with Infinite Exploration): o comportamento se torna guloso no limite, mas cada ((s,a)) continua sendo explorado infinitas vezes. Uma forma é uma política (\varepsilon_t)-gulosa em que (\varepsilon_t \to 0) lentamente, combinada com taxas de aprendizado adequadas.

Nota prática

Essas garantias valem para aprendizado tabular. Com aproximação de função — especialmente redes neurais — a convergência não é, em geral, garantida, e técnicas de estabilização se tornam cruciais (ver DQN abaixo).

Exemplo Prático: Intuição de Mundo em Grade ou Caminhada no Penhasco

Considere um pequeno mundo em grade (gridworld) em que:

  • Estados são células da grade.
  • Ações são cima/baixo/esquerda/direita.
  • A recompensa é (-1) por passo e (0) no objetivo.

O aprendizado Q inicialmente vagará aleatoriamente ((\varepsilon) alto), coletando recompensas negativas. Ao longo do tempo:

  • Ele aprende quais ações reduzem o número esperado de passos até o objetivo.
  • O termo (\max_{a'} Q(s',a')) propaga “boas notícias” para trás: uma vez que o objetivo é encontrado, estados próximos aprendem que uma ação leva mais perto do objetivo; então estados mais distantes aprendem, etc.

Na “caminhada no penhasco” (um exemplo clássico), a natureza fora da política do aprendizado Q tende a aprender o caminho mais curto e arriscado perto do penhasco (porque ele aprende o caminho ótimo guloso), mesmo que o comportamento exploratório às vezes caia do penhasco. O SARSA, por ser na política, pode aprender uma rota mais segura sob exploração persistente.

Tabular vs Aproximação de Função

Aprendizado Q tabular

Use aprendizado Q tabular quando:

  • O espaço de estados é pequeno e discreto (ou pode ser discretizado de forma razoável).
  • Você consegue armazenar (Q(s,a)) explicitamente (por exemplo, como uma tabela 2D).

Prós:

  • Simples, estável sob suposições clássicas
  • Fácil de depurar e interpretar

Contras:

  • Não escala para espaços de estados grandes ou contínuos

Aproximação de função

Quando (|\mathcal{S}|) é enorme (ou contínuo), armazene (Q(s,a)) como uma função parametrizada (Q_\theta(s,a)), por exemplo:

  • Modelos lineares: (Q_\theta(s,a) = \phi(s,a)^\top \theta)
  • Redes neurais: (Q_\theta(s,a)) produzida por uma rede profunda

O objetivo de aprendizado frequentemente é formulado como minimizar um erro de TD quadrático sobre amostras: [ \min_\theta ; \mathbb{E}\left[\left(r + \gamma \max_{a'} Q_\theta(s',a') - Q_\theta(s,a)\right)^2\right]. ]

A “tríade mortal”

Com aproximação de função, aprendizado fora da política e bootstrapping juntos, podem ocorrer instabilidade e divergência (frequentemente chamado de “tríade mortal (deadly triad)”). Esse é um dos principais motivos pelos quais o aprendizado Q profundo prático usa truques de estabilização.

Redes Q Profundas (DQN) (Alto Nível)

DQN é a extensão de aprendizado profundo do aprendizado Q que tornou viável aprender a partir de observações de alta dimensionalidade, como pixels de jogos Atari. Ela usa uma rede neural para aproximar (Q(s,a)).

As principais ideias de estabilização do DQN:

Repetição de experiência

Em vez de aprender apenas com a transição mais recente, armazene transições em um buffer de repetição (replay buffer) e amostre mini-batches uniformemente (ou com priorização em variantes). Benefícios:

  • Quebra correlações temporais fortes em dados sequenciais
  • Melhora a eficiência amostral (sample efficiency) ao reutilizar experiências passadas
  • Faz o treinamento se parecer mais com aprendizado supervisionado (supervised learning) em batches i.i.d.

Rede-alvo

Usar a mesma rede para computar tanto (Q(s,a)) quanto o alvo (r + \gamma \max_{a'} Q(s',a')) pode criar ciclos de realimentação prejudiciais. O DQN mantém:

  • Rede online (Q_\theta) (treinada a cada passo)
  • Rede-alvo (Q_{\theta^-}) (atualizada lentamente/periodicamente)

Alvo: [ y = r + \gamma \max_{a'} Q_{\theta^-}(s',a'). ]

Perda: [ L(\theta) = \mathbb{E}\left[(y - Q_\theta(s,a))^2\right]. ]

Loop de treinamento em alto nível (pseudocódigo ilustrativo)

Initialize replay buffer D
Initialize online network Qθ and target network Qθ- = Qθ

For each step:
  Select action using ε-greedy from Qθ
  Execute action, observe (s, a, r, s')
  Store transition in D
  Sample minibatch from D
  Compute targets using Qθ-
  Gradient step on (target - Qθ(s,a))^2
  Periodically update Qθ- ← Qθ

Variantes comuns de DQN (alto nível)

Muitas melhorias são amplamente usadas na prática:

  • DQN Duplo (Double DQN): reduz o viés de superestimação (overestimation bias) do operador max ao desacoplar seleção e avaliação de ações.
  • Redes de duelo (dueling networks): decompõem (Q(s,a)) em um valor de estado e uma vantagem (advantage) para aprender valores de estado de forma mais eficiente.
  • Repetição de experiência priorizada (prioritized experience replay): amostrar transições mais informativas com mais frequência.
  • Retornos de N passos (N-step returns): propagar informações de recompensa mais rapidamente do que atualizações TD de 1 passo.
  • Aprendizado por reforço distribucional (distributional RL): aprender uma distribuição sobre retornos, em vez de apenas a expectativa.

Aplicações Práticas

O aprendizado Q e suas variantes profundas são usados quando:

  • As ações são discretas (ou podem ser discretizadas)
  • Você quer um método baseado em valor que possa ser mais simples do que abordagens baseadas em política

Exemplos:

  • Jogos (por exemplo, Atari com DQN)
  • Robótica com conjuntos de ações discretas (por exemplo, tomada de decisão em alto nível)
  • Pesquisa operacional / alocação de recursos (escolhas discretas)
  • Sistemas de recomendação ou de lances com políticas de decisão discretas (cuidado: não estacionariedade (non-stationarity) e feedback atrasado (delayed feedback) complicam as suposições)

Para espaços de ação contínuos, o aprendizado Q puro é menos direto porque (\arg\max_a Q(s,a)) se torna um problema de otimização contínua. Esse é um dos motivos pelos quais abordagens ator-crítico (actor-critic) são populares nesse caso (ver Métodos Ator-Crítico e métodos de otimização de políticas (policy optimization methods) como Otimização Proximal de Políticas (Proximal Policy Optimization, PPO)).

Um Exemplo Mínimo de Aprendizado Q Tabular (Python)

Abaixo está um pequeno trecho ilustrativo para uma interface de ambiente discreto (semelhante a APIs no estilo Gymnasium). Ele omite muitos detalhes (tratamento de término de episódio, cronogramas de decaimento adequados, etc.), mas mostra a atualização central.

import numpy as np

n_states = 100
n_actions = 4

Q = np.zeros((n_states, n_actions))
alpha = 0.1
gamma = 0.99
epsilon = 0.1

def epsilon_greedy_action(s):
    if np.random.rand() < epsilon:
        return np.random.randint(n_actions)
    return int(np.argmax(Q[s]))

for episode in range(1000):
    s = env.reset()  # discrete state index
    done = False
    while not done:
        a = epsilon_greedy_action(s)
        s2, r, done, info = env.step(a)

        td_target = r + (0.0 if done else gamma * np.max(Q[s2]))
        td_error = td_target - Q[s, a]
        Q[s, a] += alpha * td_error

        s = s2

Detalhe-chave de implementação: quando done é true (estado terminal), normalmente não fazemos bootstrapping a partir de (Q(s',\cdot)).

Hiperparâmetros e Dicas Práticas

Parâmetros comuns e efeitos típicos:

  • Taxa de aprendizado (\alpha): grande demais pode desestabilizar; pequena demais desacelera o aprendizado.
  • Desconto (\gamma): valores mais altos enfatizam recompensa de longo prazo, mas podem aumentar a variância e tornar mais lenta a atribuição de crédito.
  • Exploração (\varepsilon): exploração insuficiente pode fixar um comportamento subótimo cedo.
  • Escalonamento/recorte de recompensas (reward scaling/clipping) (comum em DQN): pode melhorar a estabilidade, mas pode distorcer objetivos; use com critério.
  • Tamanho do buffer de repetição (DQN): pequeno demais reduz diversidade; grande demais pode incluir dados obsoletos em cenários não estacionários.
  • Período de atualização da rede-alvo (DQN): atualizações frequentes podem desestabilizar; pouco frequentes tornam o aprendizado mais lento.

Pontos Fortes e Limitações

Pontos fortes

  • Conceitualmente simples e amplamente aplicável em MDPs com ações discretas
  • Aprendizado fora da política permite reutilização de experiência (especialmente com buffers de repetição)
  • Forte baseline e bloco de construção para muitos sistemas de aprendizado por reforço

Limitações

  • A forma tabular não escala para espaços de estados grandes/contínuos
  • Com aproximação de função, pode ser instável sem projeto cuidadoso
  • O operador max pode introduzir viés de superestimação (abordado por DQN Duplo e métodos relacionados)
  • Menos natural para espaços de ação contínuos em comparação com métodos ator-crítico e baseados em política (ver Gradientes de Política)

Resumo

O aprendizado Q é um algoritmo clássico de controle TD sem modelo e fora da política (off-policy, model-free TD control) que aprende uma aproximação da função valor-ação ótima (Q^*) via o princípio de otimalidade de Bellman (Bellman optimality principle). Em problemas discretos pequenos, o aprendizado Q tabular pode convergir sob condições padrão de aproximação estocástica e exploração. Para problemas em grande escala, o DQN estende a ideia com redes neurais e técnicas cruciais de estabilização como repetição de experiência e redes-alvo, possibilitando aprendizado prático a partir de entradas de alta dimensionalidade.

Apesar do avanço de métodos baseados em política e ator-crítico, o aprendizado Q permanece uma parte central do ferramental de aprendizado por reforço — tanto como um algoritmo quanto como uma ideia organizadora para tomada de decisão baseada em valor.