SARSA: Aprendizado on-policy por diferença temporal

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
LEGENDA
Principal
Ramo
Metodo
Problemas
Modelo
Arquitetura

SARSA é um algoritmo de aprendizado por reforço. Seu nome vem da sequência (Estado, Ação, Recompensa, Próximo Estado, Próxima Ação). Primeiramente, ele é um método on-policy. Isso significa que ele aprende e age com a mesma política. Em segundo lugar, ele usa diferença temporal (TD) para atualizações. Por conseguinte, SARSA é mais seguro que Q-learning em alguns problemas. Ele considera a ação que realmente será tomada no próximo estado.

Características da arquitetura SARSA

SARSA atualiza a função Q(s,a) a cada passo. A fórmula de atualização é \( Q(s,a) \leftarrow Q(s,a) + \alpha [r + \gamma Q(s’,a’) – Q(s,a)] \). Aqui a’ é a ação escolhida pela política atual. Diferente do Q-learning, não usamos o máximo sobre ações. Usamos a ação real que será executada. Portanto, SARSA é mais conservador. Ele evita riscos que o Q-learning poderia tomar. A arquitetura armazena Q(s,a) em uma tabela ou rede neural.

A política usada é tipicamente ε-greedy. Durante o aprendizado, a mesma política gera os episódios. Não há separação entre comportamento e alvo (on-policy). Isso é uma vantagem para problemas com risco. A penalidade por ações ruins é aprendida diretamente. O agente não assume que tomará a melhor ação. Ele assume que pode explorar com probabilidade ε. Consequentemente, SARSA tende a encontrar políticas mais seguras.

Hiperparâmetros e fórmulas matemáticas

Os hiperparâmetros do SARSA são similares ao Q-learning. A taxa de aprendizado α controla a velocidade de atualização. O fator de desconto γ valoriza recompensas futuras. A taxa de exploração ε define a suavidade da política. Valores típicos são α=0.1, γ=0.95, ε=0.1. O algoritmo converge se todos os pares forem visitados. A condição de convergência é \( \sum \alpha_t = \infty \) e \( \sum \alpha_t^2 < \infty [/latex].

A diferença entre SARSA e Q-learning é sutil mas importante. O erro TD do SARSA é [latex] \delta = r + \gamma Q(s’,a’) – Q(s,a) \). No Q-learning, o erro usa \( \max_a Q(s’,a) \). SARSA é on-policy; Q-learning é off-policy. Por causa disso, SARSA é mais estável em ambientes estocásticos. Ele é preferido quando segurança é crucial. O exemplo clássico é o problema do penhasco (Cliff Walking).

Exemplo clássico: caminhando no penhasco

Imagine um grid 4×12 onde o agente deve chegar ao objetivo. Há um penhasco na borda inferior. Cair no penhasco dá recompensa -100 e termina o episódio. Cada passo normal custa -1. O objetivo dá recompensa 0 e termina. O agente aprende a evitar o penhasco. SARSA aprende um caminho mais seguro que Q-learning. O código abaixo compara ambos os algoritmos neste ambiente.

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.