9 votos

El valor de un estado terminal en el aprendizaje por refuerzo

Estoy trabajando en un entorno en el que cada transición premia con 0, excepto las transiciones al estado terminal, que premian con 1.

Mi pregunta es, ¿cómo debo definir el valor del estado terminal? Ahora mismo sólo inicializo todos los valores para que sean 0, pero como el estado terminal no tiene transiciones, sigue siendo 0 mientras los estados que lo rodean tienen un valor positivo. Así que si quiero mejorar mi política haciéndola codiciosa con respecto a los estados vecinos, los estados próximos a los estados terminales no querrán elegir el estado terminal (ya que hay estados no terminales positivos vecinos a él).

¿Este tipo de entorno no funciona con los métodos de programación dinámica estado-valor del aprendizaje por refuerzo? No veo cómo puedo hacer que esto funcione.

9voto

Mi pregunta es, ¿cómo debo definir el valor del estado terminal?

El valor del estado terminal en un problema episódico debe ser siempre cero. El valor de un estado es la suma esperada de todas las recompensas futuras cuando se empieza en ese estado y se sigue una política específica. Para el estado terminal, es cero: no hay más recompensas que obtener.

Así que si quiero mejorar mi política haciéndola codiciosa con respecto a los estados vecinos, los estados próximos a los estados terminales no querrán elegir el estado terminal (ya que hay estados no terminales positivos vecinos a él)

No lo ha dejado claro al 100%, pero me preocupa que pueda estar pensando que la política codiciosa se elige así: $\pi(s) = \text{argmax}_a [\sum_{s'} p(s'|s, a) v(s') ]$ - donde $v(s)$ es su función de valor de estado, y $p(s'|s, a)$ es la probabilidad de transición al estado $s'$ estado inicial dado $s$ y la acción $a$ (utilizando la misma notación que Sutton & Barto, 2ª edición). Esta no es la fórmula correcta para la elección de la acción codiciosa. En su lugar, para maximizar la recompensa de la siguiente acción hay que tener en cuenta la recompensa inmediata más las recompensas futuras esperadas del siguiente estado (he añadido el factor de descuento comúnmente utilizado $\gamma$ aquí):

$$\pi(s) = \text{argmax}_a [\sum_{s',r} p(s',r|s, a)(r + \gamma v(s')) ]$$

Si está más acostumbrado a ver la matriz de transición $P_{ss'}^a$ y la matriz de recompensa esperada $R_{ss'}^a$ , entonces la misma fórmula usando esos es:

$$\pi(s) = \text{argmax}_a [\sum_{s'} P_{ss'}^a( R_{ss'}^a + \gamma v(s')) ]$$

Cuando se utiliza esta opción de acción codiciosa, la acción de transición al estado terminal tiene al menos el mismo valor que otras opciones.

Además, su problema específico tiene otra cuestión, relacionada con la forma en que ha establecido las recompensas.

Estoy trabajando en un entorno en el que cada transición premia con 0, excepto las transiciones al estado terminal, que premian con 1.

¿Este tipo de entorno no funciona con los métodos de programación dinámica estado-valor del aprendizaje por refuerzo? No veo cómo puedo hacer que esto funcione.

Recordemos que los valores del estado son el valor del estado sólo asumiendo una política específica. Las respuestas a tu problema van a depender del tipo de algoritmo de aprendizaje que utilices, y de si permites políticas estocásticas o deterministas. Siempre debe haber al menos un estado con una pequeña posibilidad de transición al estado terminal, para que haya cualquier valor distinto de 0 en todos los demás estados. Esto debería estar garantizado en la mayoría de los algoritmos de aprendizaje. Sin embargo, muchos de estos algoritmos bien podrían aprender políticas enrevesadas que eligen no hacer la transición al estado terminal cuando se espera/quiere que lo hagan (sin conocer la definición de su problema, no podría decir cuál es intuitivamente).

Su mayor problema es que con su estructura de recompensa, no ha dado al agente ningún incentivo para terminar el episodio. Sí, puede obtener una recompensa de 1, pero su esquema de recompensa significa que el agente tiene garantizado obtener esa recompensa eventualmente haga lo que haga, no hay ninguna restricción de tiempo. Si se aplica un algoritmo de aprendizaje -por ejemplo, la iteración de políticas- a su MDP, se podría encontrar que todo Los estados, excepto el estado terminal, tienen el valor 1, que el agente obtendrá eventualmente una vez que transite al estado terminal. Siempre que aprenda una política en la que eso ocurra eventualmente, entonces, en lo que respecta al agente, ha aprendido una política óptima.

Si quieres tener un agente que resuelva tu MDP en un tiempo mínimo, en un problema episódico, es habitual codificar alguna recompensa negativa para cada paso de tiempo. Un solucionador de laberintos básico, por ejemplo, suele dar una recompensa de -1 por cada paso de tiempo.

Una alternativa podría ser aplicar un factor de descuento $0 \lt \gamma \lt 1$ - lo que hará que el agente tenga cierta preferencia por las recompensas inmediatas, y esto debería influir en la política para que siempre se dé el paso al estado terminal.

1voto

shanen Puntos 21

Haga su transición de entrar en su estado final 1 y luego una transición de la terminal a sí mismo 0.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X