Assignment 2 - Task 2.1.1 - Comentario sobre run_reinforce

Assignment 2 - Task 2.1.1 - Comentario sobre run_reinforce

de Miguel Tasende Bracco -
Número de respuestas: 1

Hola,

Esto es un comentario nomás... Encontré que la función "run_reinforce" no reinicializa el ambiente entre episodios. Eso estaría bien, porque al llegar al "goal" el ambiente devuelve gamma=0 y pasa automáticamente al estado inicial, si no fuera porque "run_reinforce" a veces corta la simulación porque llegó a "MAXSTEPS_PER_EPISODE" pasos. Eso causa que el ambiente no esté ni en el goal, ni en el estado inicial.

Consecuencias: Una consecuencia de poca importancia es que se está entrenando en un problema distinto. La consecuencia práctica más notable es que el "Length" reportado a veces va a ser menor que el "Length" óptimo, lo que sería absurdo o implicaría que hay un error en algún lado, si no fuera que, en realidad, en episodios en los que el agente previamente terminó por MAXSTEPS_PER_EPISODE el estado inicial puede no ser el esperado.


La consulta, aunque supongo que la respuesta es "no", sería: ¿modifico ese código aunque no está dentro de "la parte modificable por el estudiante" para que realmente reinicialice el ambiente entre episodios?

Ya hice algunas modificaciones mínimas en partes que no decían "YOUR CODE HERE", pero era clarísimo que no afectaban en nada (por ejemplo: %% tiene que ir al principio de una celda para que Jupyter lo tome como magic command de celda; si no, lo toma como magic command de línea, en mi versión de Jupyter, por lo menos; capaz que eso le ahorra tiempo a alguien. Tengo algunos otros ejemplos, pero creo que todos estaban dentro de "la clase a implementar" aunque no en "YOUR CODE HERE", así que los tomé como parte del trabajo, y no quiero "hacer públicas soluciones").

En el caso este de "run_reinforce", yo pensaba dejarlo como está, porque no afecta mucho (en todo caso se está resolviendo un problema un poco más general), y no quiero modificar las partes del código que se supone que "me están evaluando" (puede parecer sospechoso...).

¿Está bien lo que estoy diciendo?


NOTA: Entiendo que la cantidad de pasos óptima es 8, y eso correspondería a un reporte de Length de 6 (run_reinforce da el primer paso sin contarlo y en vez de contar cantidad de pasos cuenta "número de paso" empezando en cero). Cuando digo que aparecen "Lengths" menores al óptimo, quiero decir menores a 6.

En respuesta a Miguel Tasende Bracco

Re: Assignment 2 - Task 2.1.1 - Comentario sobre run_reinforce

de Jose Lezama -

Hola Miguel,

Bien encontrado, pero creo que no afecta porque después de unos pocos episodios ya debería llegar en bastantes menos pasos que el máximo, así que no es necesario cambiar nada con respecto a eso.


Gracias,

José