12 · SARSA (en política)
Cambia un símbolo — el max se vuelve la acción que realmente tomas a continuación — y Q-learning se convierte en SARSA. Ese único cambio hace que el agente aprenda una política más segura y prudente.
SARSA actualiza Q(s,a) ← Q(s,a) + α·[r + γ·Q(s',a') − Q(s,a)], donde a' es la acción que el agente REALMENTE toma a continuación (elegida ε-codiciosamente), no el max. Es en política: evalúa la política que sigue, incluyendo su exploración — así aprende a evitar desastres que la exploración causaría.
Sin esto:
Sin la visión en política creerías que el camino óptimo-pero-arriesgado de Q-learning siempre es preferible. SARSA muestra que cuando explorar es peligroso (robots reales, finanzas) la política que considera sus propios errores puede ser la mejor para desplegar.
Q-learning y SARSA son gemelos que difieren en exactamente un término. El nombre SARSA deletrea la tupla que usa en cada actualización: State (estado), Action (acción), Reward (recompensa), next State (siguiente estado), next Action (siguiente acción) — (s, a, r, s', a'). Compara los objetivos:
- Q-learning (fuera de política):
r + γ·**max**_a' Q(s', a')— asume la acción óptima siguiente. - SARSA (en política):
r + γ·Q(s', **a'**)— usa la acción que el agente realmente elige a continuación.
Ese a' en SARSA lo elige la misma política ε-codiciosa que el agente sigue. Así SARSA evalúa y mejora la política que realmente ejecuta, exploración incluida. Eso significa en política: la política que se aprende es la que se usa para generar datos.
¿Por qué importa? Porque el objetivo de Q-learning es ciego a los propios errores exploratorios del agente. Aprende "el valor de actuar de forma óptima desde aquí", pero el agente no actúa de forma óptima — a veces explora y cae por un acantilado. SARSA siente esos desastres ocasionales (un paso exploratorio al acantilado aporta su −100 al valor de la acción siguiente) y por eso aprende una política con un margen de seguridad.
La demostración canónica es caminar por el acantilado (cliff-walking): un grid donde el camino más corto a la meta corre justo por el borde de un acantilado. Pisa el acantilado y obtienes −100 y reinicias. Abajo entrenamos ambos algoritmos en el mismo acantilado e imprimimos el camino codicioso que aprende cada uno. Q-learning toma el borde óptimo arriesgado; SARSA toma el rodeo más seguro lejos del acantilado. Mismo entorno, misma exploración — un símbolo de diferencia.
Python (in browser)
Mismo acantilado, misma exploración ε-codiciosa: Q-learning aprende el camino óptimo arriesgado por el borde; SARSA, que siente sus propias caídas exploratorias, aprende la ruta más segura una fila arriba.
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
En la tarea del acantilado, ¿por qué SARSA aprende un camino más alejado del acantilado que Q-learning?
- SARSA es control TD en política: Q(s,a) ← Q(s,a) + α·[r + γ·Q(s',a') − Q(s,a)], usando la acción a' realmente tomada a continuación.
- En política significa que evalúa la política que sigue (exploración incluida); el Q-learning fuera de política evalúa la política codiciosa/óptima vía el max.
- Cuando explorar es peligroso, la política consciente de seguridad de SARSA puede ser preferible a la óptima-pero-arriesgada de Q-learning — la lección del acantilado.
El control en política sustenta expected-SARSA, SARSA de n pasos, y es el ancestro conceptual de los métodos de gradiente de política en política (A2C/PPO) del próximo capítulo.
Si lo quitas: Sin la distinción en política/fuera de política no puedes razonar sobre si un agente debe considerar el costo de su propia exploración al decidir cómo actuar.