Estoy usando el marco A2C (Advantage Actor Critic) del paquete stable-baselines3 ( enlace del paquete aquí ) para resolver un problema de refuerzo donde la recompensa es +1 o 0. Tengo un mecanismo automático para asignar la recompensa a una opción en un estado dado. Sin embargo, ese mecanismo automático no es lo suficientemente bueno para recompensar mis elecciones. He evaluado que el juicio humano (si un humano se sienta y recompensa las elecciones) es mejor.
Ahora, quiero incorporar este juicio humano en el marco A2C en el entrenamiento.
Este es mi entendimiento de cómo funciona A2C:
Digamos que hay N intervalos de tiempo en 1 episodio. La trayectoria se almacena en un búfer de reproducción de experiencia: [(S1, A1, R1), (S2, A2, R2)...] que se utiliza para entrenar las redes neuronales del actor y crítico al final del episodio.
¿Puedo acceder a este búfer que se envía a las redes neuronales para el entrenamiento? ¿O hay alguna alternativa para introducir humanos en el bucle en el marco A2C?
Solución del problema
¡Por supuesto! El entorno es un simple script de Python en el que, en algún lugar al final de env.step
, se calcula y devuelve la recompensa, para luego agregarla junto con el estado y la acción al búfer de reproducción.
Luego, puede insertar manualmente el valor de la recompensa cada vez que se realiza una acción, utilizando comandos de E/S simples.
Sin embargo, Deep Reinforcement Learning generalmente requiere cientos de miles de iteraciones (experiencia) antes de aprender algo útil (a menos que el entorno sea lo suficientemente simple).
No hay comentarios.:
Publicar un comentario