Un exemple de code d'algorithme REINFORCE proposé par Williams?

9

Est-ce que quelqu'un connaît l'exemple d'un algorithme Williams proposé dans l'article "Une classe d'algorithmes d'estimation de gradient pour l'apprentissage par renforcement dans les réseaux de neurones" http://incompleteideas.net/sutton/williams-92.pdf

Alex Gao
la source
J'oublierai de venir ici quand je le ferai, mais je suis sur le point de terminer la refactorisation de github.com/pytorch/examples/blob/master/reinforcement_learning/… d' OpenAI en un style orienté objet, qui est en fait évolutif. me cingler à ce sujet et je le posterai ici
Gulzar
Je l'ai implémenté ici: code Lua . J'espère que cela aide!
xenomeno

Réponses:

11

À partir de la conférence de David Silver sur les méthodes de gradient politique , la diapositive 21 est un pseudo-code pour l'algorithme épisodique de renforcement, qui est fondamentalement une méthode basée sur un gradient où le rendement attendu est échantillonné directement à partir de l'épisode (au lieu de l'estimer avec certains appris une fonction). Dans ce cas, le rendement attendu est en fait la récompense épisodique totale à partir de cette étape,gt.

initialiser θ

pour chaque épisode {s1,une1,r2...sT-1,uneT-1,rT} échantillonné à partir de la stratégie πθ faire

    pour t = 1 à T - 1 do

        θθ+αθJournalπθ(st,unet)gt

    fin pour

fin pour

Cet algorithme souffre d'une variance élevée car les récompenses échantillonnées peuvent être très différentes d'un épisode à l'autre, donc cet algorithme est généralement utilisé avec une ligne de base soustraite de la politique. Voici une explication plus détaillée avec des exemples de code.

Florin Gogianu
la source
Je suis curieux de savoir pourquoi la mise à jour pondère chaque pas de temps au lieu de la mettre à jour une fois à la fin de l'épisode? Ma compréhension estθn'est pas modifié dans la passe avant de toute la trajectoire
eric2323223
@ eric2323223 Le cours de David Silver (recommandé) en parle en détail. REINFORCE est une méthode de monte-carlo. Vous pouvez effectuer une mise à jour plus fréquente, ce qui est préférable dans de nombreux cas. Allez regarder les vidéos pour avoir de bien meilleures explications que ce que je peux donner ici. En général, il appelle la méthode la plus fréquente "Différence temporelle" ou "TD", avec une optimisation appelée "TD (lambda)"
Gulzar
REINFORCE est-il un algorithme sur stratégie?
GoingMyWay
2

L'algorithme REINFORCE pour l'apprentissage par renforcement de gradient de politique est un algorithme de gradient stochastique simple. Cela fonctionne bien lorsque les épisodes sont relativement courts, de sorte que de nombreux épisodes peuvent être simulés. Les méthodes de valeur-fonction sont meilleures pour les épisodes plus longs car elles peuvent commencer à apprendre avant la fin d'un seul épisode.

nsweeney
la source