P1: ¿Existen métodos comunes o aceptados para tratar el entorno no estacionario en el aprendizaje por refuerzo en general?
La mayoría de los agentes básicos de RL son en línea, y el aprendizaje en línea normalmente puede lidiar con problemas no estacionarios. Además, las reglas de actualización de los estimadores del valor del estado y del valor de la acción en los problemas de control suelen escribirse para objetivos no estacionarios, porque los objetivos ya cambiar a medida que la política mejora. No se trata de nada complicado, simplemente de utilizar una tasa de aprendizaje $\alpha$ en las actualizaciones al estimar los valores, lo que supone una media geométrica móvil en lugar de promediar toda la historia de forma no ponderada.
Sin embargo, En este caso, se aborda la no estacionariedad a largo plazo, como el cambio del problema entre episodios, o en una escala de tiempo aún más larga. Su descripción parece más bien que desea cambiar la estructura de la recompensa basándose en las acciones que el agente ha realizado, en una escala de tiempo corta. Esa respuesta dinámica a las acciones es mejor enmarcarla como un MDP diferente y más complejo, no como "no estacionariedad" dentro de un MDP más simple.
Un agente no puede aprender los cambios del entorno que aún no ha muestreado, por lo que el cambio de la estructura de recompensa no impedirá que el agente vuelva a los estados visitados anteriormente. A menos que se utilice algo como una RNN en el agente, éste no tendrá una "memoria" de lo que ha sucedido antes en el episodio, aparte de lo que esté representado en el estado actual (podría decirse que el uso de una RNN hace que la capa oculta de la RNN forme parte del estado). A través de múltiples episodios, si se utiliza un agente de aprendizaje Q tabular, entonces el agente simplemente aprenderá que ciertos estados tienen un valor bajo, no será capaz de aprender que la segunda o tercera visita al estado causa ese efecto, porque no tiene manera de representar ese conocimiento. No será capaz de ajustarse al cambio lo suficientemente rápido como para aprender en línea y a mitad de episodio.
P2: En mi gridworld, tengo la función de recompensa que cambia cuando se visita un estado. Todo lo que quiero que mi agente aprenda es "No vuelvas a menos que realmente lo necesites", sin embargo esto hace que el entorno no sea estacionario.
Si eso es todo lo que necesitas que aprenda el agente, tal vez se pueda fomentar con una estructura de recompensas adecuada. Antes de poder hacerlo, tienes que entender tú mismo lo que implica "necesitar realmente", y lo ajustado que tiene que ser lógicamente. Sin embargo, puede que no haya ningún problema en asignar alguna penalización por visitar cualquier lugar que el agente ya haya visitado o haya visitado recientemente.
¿Puede/debe incorporarse esta regla tan sencilla al modelo MDP, y cómo?
Sí, debe añadir la información sobre los lugares visitados en el estado. Esto hará que su modelo de estado sea inmediatamente más complejo que un simple mundo cuadriculado, aumentando la dimensionalidad del problema, pero es inevitable. La mayoría de los problemas del mundo real superan rápidamente los ejemplos de juguete que se proporcionan para enseñar los conceptos de RL.
Una alternativa es enmarcar el problema como un _Proceso de decisión de Markov parcialmente observable_ (POMDP) . En ese caso, el estado "verdadero" seguiría incluyendo toda la historia necesaria para calcular las recompensas (y como se trata de un problema de juguete en un ordenador, todavía habría que representarlo de alguna manera), pero el agente puede intentar aprender a partir de un conocimiento restringido del estado, sólo lo que se le permita observar. En general, este es un enfoque mucho más difícil que expandir la representación del estado, y no lo recomendaría aquí. Sin embargo, si la idea te parece interesante, podrías utilizar tu problema para explorar los POMDP. Aquí hay un documento reciente (del equipo Deep Mind de Google, 2015) que analiza dos algoritmos RL combinados con RNNs para resolver POMDPs.
P3: He estado estudiando el Q-learning con repetición de experiencias como solución para tratar con entornos no estacionarios, ya que descorrelaciona las actualizaciones sucesivas. ¿Es este el uso correcto del método o se trata más bien de hacer que el aprendizaje sea más eficiente desde el punto de vista de los datos?
La repetición de la experiencia no ayudará con los entornos no estacionarios. De hecho, podría empeorar el rendimiento en ellos. Sin embargo, como ya se ha dicho, tu problema no tiene que ver con un entorno no estacionario, sino con el manejo de dinámicas de estado más complejas.
Lo que puede es buscar la aproximación de funciones, si el número de estados aumenta hasta un número suficientemente grande. Por ejemplo, si se quiere manejar cualquier y tener una regla compleja de modificación de la recompensa que rastrea cada ubicación visitada, entonces su estado podría cambiar de un solo número de ubicación a un mapa que muestra las ubicaciones visitadas. Así, por ejemplo, podría pasar de $64$ estados para un $8 \times 8$ mundo de la red a un $2^{64}$ mapa del estado que muestra las plazas visitadas. Esto es demasiado alto para seguirlo en una tabla de valores, por lo que normalmente se utilizará una red neuronal (o una red neuronal convolucional) para estimar los valores de estado en su lugar.
Con un estimador de funciones, la repetición de la experiencia es muy útil, ya que sin ella es probable que el proceso de aprendizaje sea inestable. El reciente enfoque DQN para jugar a los juegos de Atari utiliza la repetición de la experiencia por esta razón.