REINFORCE
REINFORCE est un algorithme d'apprentissage par renforcement qui applique directement une méthode de gradient sur la politique. C'est une méthode policy-gradient qui s'oppose aux méthodes qui optimisent la valeur (comme le Q-learning). Il est introduit par Ronald Williams en 1992[1].
Représentation d'une politique
Une politique est une fonction quelconque π qui à chaque état s du système[Lequel ?] associe une distribution de probabilité sur les actions[Quoi ?]. On note π(a|s) la probabilité d'exécuter l'action a dans l'état s. Dans l'algorithme REINFORCE, on représente une politique avec un vecteur θ . Les nombres dans le vecteur θ sont des paramètres dans une expression analytique qui représente la politique. On écrit π(a|s,θ) la probabilité d'exécution l'action a dans l'état s, quand il s'agit de la politique représentée par le vecteur θ.
Exemple
Par exemple, considérons un robot où l'état s est représenté par sa position (x1(s), x2(s)) dans le plan. On peut imaginer que :
où le vecteur θ est la collection de tous les paramètres θ1,a, θ2,a pour toutes les actions a.
Principe REINFORCE Monte Carlo policy gradient
On donne ici la version de REINFORCE donnée page 328 de[C'est-à-dire ?] [2]. Le vecteur θ de paramètres de la politique est initialisé aléatoirement. En d'autres termes, l'algorithme démarre avec une politique choisie aléatoirement dans l'espace des politiques paramétrées par θ.
L'algorithme effectue plusieurs épisodes. Ainsi, à chaque épisode, c'est comme si nous étions dans un labyrinthe et que l'on avançait[style à revoir] en ayant prédéterminé nos mouvements défini par θ . À la fin de l'épisode, on analyse ce qu'il s'est passé et ajuste le vecteur paramètre θ de la politique.
Génération d'un épisode
L'algorithme consiste à générer plusieurs épisodes en utilisant la politique courante π où
- les instants sont 0, 1, ...,
- sont les états à l'instant 0, 1, ..., T-1 (par exemple, les positions d'un robot dans le plan comme (0, 1), (1, 1), (0, 1), (0, 2), .... (3, 4))
- sont les actions choisies (par exemple, aller à droite, à gauche, en haut, .... à droite)
- sont les récompenses obtenues par l'agent (par exemple, 1€, -3€, ... 4€).
Considérons un tel épisode .
Mise à jour des paramètres de la politique
L'algorithme modifie la politique courante en fonction de l'expérience acquise pendant l'épisode. Autrement dit, il s'agit de mettre à jour les poids θ. A chaque étape de l'épisode, on calcule G qui est le total des récompenses depuis cette étape jusqu'à la fin de épisode. Cela permet de ne considérer que les récompenses futures et présentes.
Ce calcul de G permet de réajuster θ. Le vecteur θ est mis à jour à chaque étape de l'épisode à partir de son ancienne valeur à laquelle on ajoute le vecteur gradient du logarithme de la politique pondéré par le taux d'apprentissage et G. Ce vecteur gradient est :
.
Intuitivement, si la première composante de est positive, cela veut dire que si on augmente , alors la probabilité augmente. Donc, dans la mise à jour de θ, augmente.
Pseudo Code REINFORCE Monte Carlo policy gradient
Entrée : politique différentiable de paramétrisation π(a|s, θ), taux d'apprentissage α > 0 Sortie : paramètre de la politique θ optimisé Initialisation θ Pour chaque épisode : Générer en suivant la politique π(a|s, θ) Pour chaque étape de chaque épisode t = 0, 1, ..., T-1: Retourner θ
REINFORCE avec ligne conductrice
On donne ici la version de REINFORCE avec ligne conductrice donnée page 330[C'est-à-dire ?] de [2] . La ligne directrice est un peu comme[style à revoir] un fil d 'Ariane dans le labyrinthe contrairement à la méthode Actor-Critic. Ici, nous utilisons la fonction état-valeur comme ligne directrice. Alors que dans REINFORCE Monte Carlo classique où la mise à jour est , ici, la mise à jour devient où est l'approximation de la valeur de l'état , approximation paramétrée par le vecteur poids . En d'autres termes, l'impact de la récompense est réajustée en fonction de la valeur . Au lieu de pondérer le vecteur gradient par G, on le pondère désormais par [pas clair].
Le squelette de l'algorithme est similaire. En plus d'initialiser le vecteur θ de paramètres de la politique, on initialise aussi un vecteur de poids ω de la fonction état-valeur aléatoirement. Le calcul de G permet de réajuster θ et mais aussi ω. La mise à jour de ω s'effectue avec une méthode de gradient, où le vecteur gradient est aussi pondéré par .
À la fin, on obtient le paramètre de la politique et ainsi que le paramètre de la fonction état-valeur réajustés.
Entrée : politique différentiable de paramétrisation π(a|s, θ), fonction état-valeur v(s,w), taux d'apprentissage α > 0 , α' > 0 Sortie : paramètre de la politique θ optimisé et poids de la fonction état-valeur w optimisé Initialisation θ , w Pour chaque épisode : Générer en suivant la politique π(a|s, θ) Pour chaque étape de chaque épisode t = 0, 1, .., T-1: Retourner θ, w
Notes et références
- (en) Ronald J. Williams, « Simple statistical gradient-following algorithms for connectionist reinforcement learning », Machine Learning, vol. 8, no 3, , p. 229–256 (ISSN 1573-0565, DOI 10.1007/BF00992696).
- (en) Richard S. Sutton et Andrew G. Barto, Reinforcement Learning: An Introduction, A Bradford Book, coll. « Adaptive Computation and Machine Learning series », (ISBN 978-0-262-03924-6, lire en ligne).
- Portail de l'informatique théorique