Tema
Aproximación de funciones
- Aprendizaje por refuerzo
- Nivel avanzado
La aproximación de funciones sustituye la tabla de valores por un modelo con parámetros, lo que permite generalizar a estados nunca vistos a costa de perder las garantías de convergencia de la versión tabular.
Nombre en inglés
Function approximation
Intuición
Con un millón de estados no cabe una tabla, y además una tabla no aprende nada de un estado a partir de su vecino. Al escribir el valor como una función de características, actualizar un estado mueve el valor de todos los que comparten características. El peligro es la tríada mortal, es decir, la combinación de aproximación, arranque por los cordones y aprendizaje fuera de política, que puede hacer divergir los parámetros.
Fórmula
\hat{V}(s, w) = w^T x(s) \qquad w \leftarrow w + \alpha [R + \gamma \hat{V}(s', w) - \hat{V}(s, w)] \nabla_w \hat{V}(s, w)
Ejemplo resuelto
Sea un valor lineal con dos características. El estado actual tiene características (1, 2) y el siguiente tiene (1, 3), con pesos (0.5, 0.25). Los valores estimados son 0.5 más 0.5 = 1 y 0.5 más 0.75 = 1.25. Con recompensa 1 y descuento 0.9, el objetivo vale 1 más 0.9 por 1.25 = 2.125 y el error vale 1.125. Como el gradiente de un valor lineal respecto de sus pesos es el propio vector de características, con tasa 0.1 los pesos pasan a (0.6125, 0.475). El valor del estado actual sube a 1.5625, más cerca del objetivo, y el del siguiente también se mueve porque comparte la primera característica.
Errores frecuentes
- Tratar el objetivo temporal como si fuese independiente de los pesos y llamar al método descenso de gradiente sin más, cuando el objetivo depende de los pesos y por eso se habla de semigradiente.
- Elegir características que no distinguen estados con valores muy distintos, lo que impone un error mínimo que ninguna tasa de aprendizaje reduce.
- Combinar aproximación, arranque por los cordones y aprendizaje fuera de política sin ninguna precaución, receta conocida por hacer divergir los pesos.
Ejercicio
Un valor lineal tiene características (2, 0) y pesos (1, 3). ¿Cuánto vale la estimación y cuál es el gradiente respecto de los pesos?
Ver la solución
La estimación es el producto punto, es decir, 1 por 2 más 3 por 0, que vale 2. El gradiente de una función lineal respecto de sus pesos es el vector de características, de modo que vale (2, 0). El segundo peso no cambia en esta actualización porque su característica vale cero.
Respuesta: valor 2 y gradiente (2, 0)