Tema
Aprendizaje por diferencias temporales
- Aprendizaje por refuerzo
- Nivel intermedio
El aprendizaje por diferencias temporales actualiza el valor de un estado hacia la recompensa inmediata más el valor estimado del estado siguiente, sin esperar al final del episodio.
Nombre en inglés
Temporal difference learning
Intuición
El método aprende de una conjetura usando otra conjetura, lo que se conoce como arranque por los cordones. La ventaja es que la actualización llega en cada paso y sirve también en tareas sin final; el coste es un sesgo, porque el objetivo depende de una estimación todavía imperfecta. El error temporal que aparece en la fórmula mide la sorpresa del paso, es decir, cuánto se apartó lo ocurrido de lo previsto.
Fórmula
\delta_t = R_{t+1} + \gamma V(S_{t+1}) - V(S_t) \qquad V(S_t) \leftarrow V(S_t) + \alpha \delta_t
Ejemplo resuelto
Se toma el mismo episodio que visita A, después B y termina, con recompensas 0 y 1, descuento 1 y tasa 0.5, partiendo de todos los valores en cero. En el primer paso el error vale 0 más 0 menos 0 = 0, de modo que A sigue en 0. En el segundo el error vale 1 más 0 menos 0 = 1 y B pasa a 0.5. Conviene comparar con Monte Carlo, que en ese mismo episodio ya habría dejado A en 0.5 porque vio el premio final. En el segundo episodio, el método temporal deja A en 0 más 0.5 por (0 más 0.5 menos 0) = 0.25 y B en 0.5 más 0.5 por 0.5 = 0.75, es decir, la información viaja un estado hacia atrás por episodio.
Errores frecuentes
- Olvidar que el valor del estado terminal vale cero y usar en su lugar la estimación de otro estado, lo que infla los valores de todo el episodio.
- Comparar el sesgo del método temporal con el de Monte Carlo sin mencionar la varianza, cuando la elección entre ambos es precisamente ese intercambio.
- Usar una tasa constante y alta y esperar convergencia exacta, ya que la estimación queda oscilando alrededor del valor verdadero.
Ejercicio
Con el estado actual en 3, el siguiente en 5, recompensa 1, descuento 0.9 y tasa 0.2, ¿cuánto vale el estado actual después de la actualización?
Ver la solución
El error temporal vale 1 más 0.9 por 5 menos 3, es decir, 1 más 4.5 menos 3 = 2.5. La actualización suma la tasa por el error, es decir, 0.2 por 2.5 = 0.5. El valor nuevo es 3 más 0.5 = 3.5.
Respuesta: 3.5