IIC2613 / Syllabus

Repositorio oficial Inteligencia Artificial 2020-2
6 stars 1 forks source link

[Tarea 4] Duda algoritmo Aprendizaje Reforzado #114

Open diegomendieta opened 3 years ago

diegomendieta commented 3 years ago

Hola, en el enunciado se dice que generemos una política mediante Value Iteration. Es esto correcto? Dado que no tenemos las probabilidades de transición, se me hace más intuitivo que usemos Q-Learning.

Gracias!

IngElecPuc commented 3 years ago

Hola Diego Es correcto, se pide Value Iteration. Pero esto no es un impedimento, y se puede resolver con ciertas suposiciones. Primero, en un sistema determinista, una vez tomas la acción, la probabilidad de transición se consideran a un único estado con probabilidad 1. Dos, si sospechas que las probabilidades son no nulas para otros estados puedes estudiar el proceso de markov subyacente creando una matriz M de nxn, donde n es la cantidad de estados. Para eso realizas simulaciones viendo la cantidad de veces que estás en el estado s y vas a parar al s'. Vas a encontrar que M te converge a las probabilidades de transición, pero obviamente no es perfecto y mientras menor la probabilidad real, menos muestras y mayor el error. Si nada de eso te convence, puedes resolverlo con Q-Learning. Pero en su versión clásica. Vale decir, nada de deep-Q. Repitiendo lo que les comenté en la ayudantía; éste no es un problema de estado discreto, es uno de estado continuo. Yo resolví el problema discretizando los estados (ya una suposición fuerte), y utilizando Value Iteration considerando el escenario determinista. En resumen, tú puedes adaptar los algoritmos al problema y llegar a una solución. La calidad de la solución puede no ser lo ideal, en el caso de la solución de la pauta el sistema resiste un tiempo y luego cae. Por eso, se estableció como criterio que las soluciones exitosas para este problema deben superar una recompensa acumulada promedio de 20 en 100 episodios. Saludos Felipe R.

diegomendieta commented 3 years ago

Hola Felipe, gracias por tu respuesta. Ya lo hice con Q-Learning y tuve buenos resultados. Es necesario que lo vuelva a hacer con Value Iteration, siguiendo lo que tú comentaste, o está bien si lo dejo así?

IngElecPuc commented 3 years ago

Hola Déjalo así. Saludos

JuanDlugo commented 3 years ago

Hola! siguiendo la primera pregunta de Diego, estoy algo perdido con respecto a si lo que esta haciendo mi código es value-iteration o no. Lo que realizo es que como se discretizaron la cantidad de estados, simplemente utilizo la función entregada state_for y dependiendo el estado donde se encuentre actualmente se le asigna una acción. Al final esto es como crear una politica de acción nomás y no lo consideraría value iteration, pero no entiendo como se podría ocupar value-iteration debido a que el reward es el mismo para cualquiera de las dos acciones, y si consideramos que ambas acciones son equiprobables, el carrito siempre tomará la desición designada por la politica. Además que luego ejecuto observaciones en 100.000 casos y obtengo resultados muy buenos, en muy poco tiempo de ejecución por lo que me lleva a pensar que algo estoy haciendo de manera erronea. Agreadeceria si me pudieras aclarar un poco por donde debo seguir Felipe. Gracias de antemano.

IngElecPuc commented 3 years ago

Hola Juan El problema lo estamos trabajando contra resultados. Esto quiere decir que podemos modificar los algoritmos para tratar de lograr convergencia. Si no crees que estás haciendo value iteration tal cual está en las diapositivas de las clases o en el libro de Sutton y Barto no te aproblemes. Recuerda que también están los algoritmos de policy iteration y q-learning. Incluso si haces un híbrido entre los tres que funciona está bien (siempre que expliques el porqué). Dicho esto, y para que no se entienda otra cosa, no está permitido el uso de técnicas más avanzadas como deep-Q, value iteration networks, policy gradients, etc (esto lo publico para que no se malentienda esta "libertad creativa"). Así, si obtienes buenos resultados, estás trabajando algo consistente con los algoritmos (value iteration, policy iteration, q-learning), y has comentado bien tales variaciones o interpretaciones, entonces vas por buen camino. Recuerda contestar el resto de lo que se te pide y tendrás buena nota.