¿Algún código de ejemplo del algoritmo REINFORCE propuesto por Williams?

9

¿Alguien sabe un ejemplo de Algoritmo Williams propuesto en el documento "Una clase de algoritmos de estimación de gradiente para el aprendizaje de refuerzo en redes neuronales" http://incompleteideas.net/sutton/williams-92.pdf

Alex Gao
fuente
Olvidaré venir aquí cuando lo haga, pero estoy a punto de terminar de refactorizar github.com/pytorch/examples/blob/master/reinforcement_learning/… de openAI a un estilo orientado a objetos, que en realidad es escalable. Me ping en eso y voy a publicar aquí
Gulzar
Lo tengo implementado aquí: código Lua . ¡Espero eso ayude!
xenomeno

Respuestas:

11

De la conferencia RL de David Silver sobre los métodos de Gradiente de Políticas , la diapositiva 21 aquí es un pseudocódigo para el algoritmo de refuerzo episódico, que básicamente es un método basado en gradiente donde el rendimiento esperado se muestrea directamente del episodio (en lugar de estimarlo con algo aprendido) función). En este caso, el rendimiento esperado es en realidad la recompensa episódica total en ese paso, .Gt

initializeθ

para cada episodio { } muestreado de la política dos1,a1,r2...sT1,aT1,rTπθ

    para t = 1 a T - 1 do

        θθ+αθlogπθ(st,at)Gt

    fin de

fin de

Este algoritmo sufre una gran variación porque las recompensas muestreadas pueden ser muy diferentes de un episodio a otro, por lo tanto, este algoritmo generalmente se usa con una línea base restada de la política. Aquí hay una explicación más detallada completa con ejemplos de código.

Florin Gogianu
fuente
Tengo curiosidad por qué actualizar los pesos cada paso de tiempo en lugar de actualizar una vez al final del episodio. Mi comprensión es que no cambia en el avance de toda la trayectoriaθ
eric2323223
@ eric2323223 El curso de David Silver (recomendado) lo discute a fondo. REFUERZO es un método de monte-carlo. Podría hacer una actualización más frecuente, que es mejor para muchos casos. Ve a ver los videos para obtener explicaciones mucho mejores que las que puedo dar aquí. En general, llama al método más frecuente "Diferencia temporal" o "TD", con una optimización llamada "TD (lambda)"
Gulzar
¿REINFORCE es un algoritmo de política?
GoingMyWay
2

El algoritmo REINFORCE para el aprendizaje de refuerzo de gradiente de políticas es un algoritmo de gradiente estocástico simple. Funciona bien cuando los episodios son razonablemente cortos, por lo que se pueden simular muchos episodios. Los métodos de función de valor son mejores para episodios más largos porque pueden comenzar a aprender antes del final de un solo episodio.

nsweeney
fuente