Sujets de mini-projets pour le cours d`apprentissage par renforcement

publicité
Sujets de mini-projets pour le cours
d’apprentissage par renforcement
Rémi Munos et Pierre Arnaud Coquelin
23 novembre 2006
Résumé
Ces trois sujets proposent trois alternatives pour tenter d’enrayer la
(fameuse) malédiction de la dimension, habituelle en programmation dynamique (complexité de résolution exponentielle avec la dimension de l’espace d’état, voir [1]).
Le premier sujet (Direct Policy Improvement) est une méthode d’itérations
sur les politiques où l’on évite d’approcher la fonction valeur. L’idée étant
que pour certains problèmes, la fonction valeur est difficile à approcher
alors que la politique peut être simple à représenter. Dans ces cas, une recherche directe de politique, qui ne considère pas la fonction valeur peut
être très efficace. L’application traitée concerne des problèmes de robotique simulée.
Le second sujet concerne une méthode qui dans certains cas où les transitions sont régulières permet de ”briser” la malédiction de la dimension,
grâce à l’effet de ”randomisation” (le même effet qui permet d’intégrer
numériquement des fonctions en grande dimensions par l’utilisation de
méthodes de Monte-Carlo). L’application traitée concerne les problèmes
de maintenance de stocks et les gestions de files d’attente (queuing systems).
Le troisième sujet concerne la recherche de politique par résolution
d’un problème dans l’arbre des séquences d’actions possibles, avec construction de l’arbre à chaque pas de temps. On utilisera des méthode de recherche efficace dans des arbres de grande dimension. On étudiera l’algorithme UCT qui a fourni de bonnes performances pour la programmation
du jeu de go. L’application traitée concerne le contrôle d’un procédé de
digestion anaérobie pour la dépollution de matière organique.
Les questions proposées sont une aide pour vous aider à réfléchir et
à bien traiter le problème considéré. Cependant il s’agit d’un mini-projet
où vous avez une certaine liberté sur le travail demandé. Vous pouvez
traiter une autre application que celle proposée si vous le jugez utile,
mais il faudra bien sûr justifier vos choix. Vous serez évalués sur la qualité de votre travail, votre réflexion, le rapport produit (à rendre avant
le mardi 9 Janvier 2007, par email, à [email protected] et [email protected]), ainsi que sur la soutenance qui aura lieu
le jeudi 11 janvier 2007. Si vous souhaitez davantage d’informations,
n’hésitez pas à nous contacter... Bon courage !
1
1
Sujet 1 : Direct Policy Improvement
L’idée est d’implémenter une méthode directe d’itérations sur les politiques,
sans avoir besoin d’approcher la fonction valeur associée aux politiques successives. En résumé : On part d’une politique initiale π0 . A l’étape k, on dispose
d’une politique courante πk . Pour construire une nouvelle politique πk+1 , on
effectue les étapes suivantes :
1. On tire des états (xn )1≤n≤N (par exemple uniformément aléatoirement
sur le domaine)
2. A partir de chaque état (xn ), on choisit successivement toutes les actions
a ∈ A disponibles
3. Pour chaque état (xn ) action a, on évalue par Monte-Carlo la fonction
Q-valeur Qπk (xn , a) en lançant plusieurs trajectoires en suivant la politique courante πk , et en formulant la moyenne empirique, ce qui retourne
l’estimation Q̂πk (xn , a).
4. On note an l’action qui maximise les estimés Q̂πk (xn , a).
5. Les données {(xn , an )} servent de données d’apprentissage pour un algorithme de classification (utiliser votre classifieur favori, SVM, plus-proches
voisins, réseau de neurones, ...) qui retourne ainsi une fonction qui a chaque
état associe une action, ce qui défini ainsi la nouvelle politique πk+1 .
Cet algorithme est défini dans l’article [5]. Questions proposées :
1. Lire l’article [5].
2. Choisir votre classifieur préféré et implémenter l’algorithme sur le pendule
inversé décrit dans l’article. Représenter les politiques successives et des
trajectoires suivant ces politiques.
3. Quelles sont les limitations de cette approche, en termes de complexité
de calcul (en fonction du nombre d’actions, du nombre d’états, ...), de
capacité d’analyse de la méthode, et autres aspects ?
4. Entre chaque itération, a t-on la propriété que la performance des politiques successives s’améliore (ie. V πk+1 ≥ V πk ), comme cela est le cas dans
l’algorithme d’itérations sur les valeurs habituel ? Analysez les termes d’erreur (dus au nombre fini de points utilisés, au nombre de simulations fini,
à la classification imparfaite, ...)
5. Dans quels cas pensez-vous que cette méthode peut fonctionner efficacement ?
6. On veut faire une version temps continu de cet algorithme. Considérons
le cas d’une dynamique déterministe, qui s’écrit alors
dx(t)
= f (x(t), a(t))
dt
où l’action suit la politique courante, ie. : a(t) = πk (x(t)).
L’intérêt est de ne vouloir lancer qu’une trajectoire à partir de chaque
point xn , au lieu d’en lancer une par action. Ainsi, on remplace les étapes
3 et 4 de l’algorithme précédent par : on lance, à partir de chaque xn une
trajectoire suivant la politique courante πk . Le long de cette trajectoire,
2
on calcule le gradient de la fonction valeur par rapport à l’état initial, ie.
pour un problème à horizon temporel infini et à récompense actualisée,
Z ∞
πk
γ t r′ (x(t))∇x(t)dt
∇V (xn ) =
0
où (x(t))t≥0 est la trajectoire issue de l’état xn à l’instant t, r′ est la dérivée
de la fonction récompense r, et ∇x(t) est la sensibilité de l’état x(t) par
rapport à la condition initiale (il s’agit donc d’une matrice carrée de taille
la dimension de l’espace d’états), et qui suit la dynamique suivante :
∇x(t)
= ∇f (x(t), a(t))∇x(t)
dt
avec la condition initiale ∇x(t) = 0 (donc ∇x(t) peut être calculé le long
de la trajectoire).
Une fois ce gradient ∇V πk (xn ) calculé, on définit l’action an comme étant
celle qui maximise le produit scalaire :
ak := arg max ∇V πk (xn ) · f (xn , a)
a∈A
7.
8.
9.
10.
2
Justifiez le choix de cette action maximisante.
Implémenter ce nouvel algorithme sur le problème de pendule inversé
précédent (éventuellement en faisant varier le pas de discrétisation temporelle).
Implémenter cet algorithme sur un problème de contrôle de votre choix de
dimension au moins égale à 4 (par exemple l’acrobot, le double pendule
inversé, la bicyclette, ou tout autre problème de votre choix, dont vous
trouverez les dynamiques sur internet. Voir par exemple mon site pour les
dynamiques de l’acrobot).
Quelle répartition de points (xn )1≤n≤N serait la plus pertinente à utiliser
(pour un budget de N particules disponibles). Discussion et implémentation
souhaitées.
Conclusions ?
Sujet 2 : Randomization to break the curse of
dimensionality
L’idée est d’utiliser des méthodes de Monte-Carlo combinées à la programmation dynamique pour traiter des problèmes de grande dimension. Cette idée
est décrite dans l’article [7]. Cette méthodologie s’applique à des problèmes en
espace continu et temps discret. L’idée est d’approcher le processus de décision
markovien (PDM) initial qui est défini sur un espace continu en un PDM défini
sur un nombre fini d’états (N états), de le résoudre, et de considérer que la
fonction valeur (notée VN de ce PDM fini est proche de la fonction valeur V
du PDM initial. On ”brise” la malédiction de la dimension
au sens où l’erreur
√
d’approximation ||VN − V || est une fonction en O(1/ N ) où n’apparaı̂t pas
explicitement la dimension d de l’espace d’état (contrairement aux méthodes de
discrétisation sur grilles, qui mènent à une erreur en O(1/N 1/d ).
L’algorithme est défini de la manière suivante :
3
1. On tire des états (xn )1≤n≤N (par exemple uniformément aléatoirement
sur le domaine)
2. On construit un PDM sur cet ensemble d’états, où les probas pN de transition d’état xi à état xj sont construite à partir des probas p du PDM
continu en les renormalisant, ie :
p(xj |xi , a)
pN (xj |xi , a) := PN
n=1 p(xn |xi , a)
3. On résout ce PDM (par n’importe quelle algorithme de programmation
dynamique), dont la fonction valeur VN est définie en tout état xn . On
souhaite que la fonction VN approche la fonction valeur V du problème
initial aux points xn et on étudie l’erreur en fonction de N , le nombre de
points utilisés.
Questions proposées :
1. Lire l’article [7].
2. Dans quels cas pensez-vous que cette méthode fonctionne bien ? Dans
quels cas ne va t-elle pas fonctionner ? Pensez-vous que la malédiction de
la dimension est véritablement ”brisée” ?
3. Quels sont les limitations de cette approche ? En terme de complexité
de calcul (en fonction du nombre d’actions, du nombre d’états, ...), de
capacité d’analyse de la méthode ?
4. Implémenter l’algorithme sur le problème de maintenance d’un stock décrit
dans le cours (voir chapitre 2 sur la programmation dynamique). On est en
dimension 1, la variable xt représente le stock actuel. La décision consiste
à commander une quantité supplémentaire at qui vaut un nombre fini de
valeurs (on pourra commencer par 2 valeurs : 0 ou une valeur définie).
La demande est une variable aléatoire (par exemple modélisée par une
variable aléatoire exponentielle ou gaussienne tronquée ou une loi de poisson). Vous choisirez des fonctions coût (commande et maintenance) et
revenu à votre convenance pour que le problème ait un sens physique.
Afficher les fonctions valeurs obtenues VN et V ainsi que les politiques.
5. Est-ce que la distribution à partir de laquelle on tire les points initiaux est
importante ? A votre avis, quelle serait la ”meilleure” distribution (ie. la
distribution telle qu’en tirant un nombre donné N de points, en utilisant
cette méthode, on approche au mieux la fonction valeur V désirée) ?
6. On veut appliquer cette méthode à des problèmes de grande dimension
(pour lesquels on espère effectivement voir l’intérêt de cette approche).
On considère la classe (très générale) des files d’attente avec plusieurs
buffers. Le problème précédent de maintenance de stock est en faite une
file d’attente avec un seul buffer.
Une file d’attente avec plusieurs buffers (ou réseau de files d’attente) est
constituée de plusieurs files liées entre elles. Un job dans une file peut être
évacué vers une autre file a laquelle elle est liée. Evacuer un job et stocker
des jobs ont des coûts. Certaine files possèdent des entrées sur lesquelles
des jobs arrivent en suivant un loi de probabilié. Les actions consistent
à faire passer un job d’une file vers une autre. Ce type de modélisation
est très utile, penser par example à la gestion optimale d’une chaine de
4
production. L’utilisation de méthodes de programation dynamique pour
l’optimisation dans les réseaux de files d’attente à été étudié dans [3]. Votre
travail consiste à utiliser la file en dimension 4 ou celle en dimension 8 de
[3] et chercher à faire mieux que les résultats obtenu dans [3].
7. Conclusions ?
3
Sujet 3 : contrôle optimal par recherche arborescente et algorithme UCT
L’idée de ce projet consiste à directement résoudre le problème de contrôle
optimal en effectuant une recherche arborescente dans un arbre dont la racine
correspond à l’état courant, où les noeuds correspondent aux états accessibles
et les connexions représentent les différentes actions possibles.
Pour simplifier, on se place dans un cadre déterministe, avec un critère à
horizon temporel infini avec récompense actualisée (par γ).
Le problème de contrôle optimal consiste à déterminer, en chaque instant t
une action at qui maximise la somme des récompenses à venir. La méthode de
recherche arborescente est décrite de manière suivante :
– Notons x l’état du système à l’instant courant. L’objectif est de retourner une action a ∈ A. Pour cela, on construit un arbre dont la racine est
x. A cette racine est associée les noeuds qui représentent les états successeurs (notés f (x, a)) du choix d’une action a en x. Il y a autant de
successeurs que d’actions possibles (ce nombre d’actions est noté M ). En
chacun de ces états successeurs, à nouveau, on associe les successeurs des
{f (x, a)} lorsque l’on choisit une seconde action b (que l’on peut noter
{f (f (x, a), b)}a,b∈A). Il y a M 2 tels successeurs à l’étape 2. On recommence jusqu’à une profondeur p. Ainsi, cet arbre dispose de M p feuilles.
La récompense correspondant à une branche est simplement la somme des
récompenses actualisées correspondant à chacune des transitions.
– On calcule la branche (par un algorithme quelconque de recherche arborescente) dont la récompense est maximale, qui définit ainsi une séquence
d’actions, et on retourne la première action de cette séquence (l’action
choisie à la racine de l’arbre).
Cet algorithme retourne une action qui n’est pas nécessairement optimale,
mais que l’on souhaite proche de l’optimum, au sens où si l’on utilise cet algorithme à chaque itération (on construit ainsi un nouvel arbre à chaque itération,
à partir de l’état courant), la performance de cet algorithme doit être proche de
la fonction valeur optimale.
On veut analyser cet algorithme, l’implémenter dans une application pour le
contrôle d’un procédé chimique de digestion anaérobie, et étudier un algorithme
de recherche arborescente particulièrement intéressant, l’algorithme UCT, qui
fait l’objet de nombreux travaux actuellement. L’algorithme UCT (pour Upper Confidence bounds in Trees) est une extension de l’algorithme UCB (Upper Confidence Bounds, voir [6]) qui a été développé récemment [4] pour la
recherche de solution dans des arbres de grande dimension. Pour motivation,
UCT a été appliqué à la programmation du jeu de GO (par Yizao Wang et
Sylvain Gelly), jeu d’une complexité extrême, et a mené au programme MoGo,
meilleur programme mondial actuel sur jeux de tailles 9x9 et 13x13. Voir :
5
http ://cgos.boardspace.net/9x9.html et http ://www.lri.fr/∼gelly/MoGo french.htm
UCT fait une recherche arborescente selon une méthode de type MonteCarlo, où les branches qui paraissent les meilleures sont explorées prioritairement. Il utilise l’algorithme UCB qui met en oeuvre une très bonne stratégie
d’exploration (résolvant de manière intelligente le fameux dilemme exploration
/ exploitation), en privilégiant les actions dont la borne supérieure (selon une
analyse statistique) est la plus grande (il s’agit de la stratégie dite ”optimiste
dans l’incertain”).
Proposition de questions
1. Analyser les performances de la politique construite à partir de la méthode
de recherche arborescent précédemment décrite, en fonction de la profondeur de l’arbre p et du coefficient d’actualisation γ. Etudier sa complexité
en fonction du nombre d’actions M , du nombre d’états, de la dimension
de l’espace d’état.
2. Dans quels cas, cette méthode peut-elle être intéressante, comparée à
des méthodes de type programmation dynamique avec algorithmes de
résolution de type itérations sur les valeurs, itérations sur les politiques ?
3. Comment modifier cette méthode pour qu’elle s’applique à des dynamiques stochastiques ? En quoi cela modifie t-il les réponses aux questions précédentes ? En quoi cette variante diffère t-elle d’une méthode
d’itérations sur les politiques avec évaluation par Monte-Carlo ?
4. Implémentation à un problème simplifié (dimension 2) de contrôle d’un
procédé de digestion anaérobie.
On recherchera un controleur qui maximise la somme actualisée des quantité de bactéries Xt présente dans le modèle d’évolution suivant :
St+1
Xt+1
Ot+1
c1
c2 S t +
c1
= −αat Xt + k2 Xt
c2 St + Sc3t
c1
= k3 Xt
.
c2 St + Sc3t
= at (Sin − St ) + k1 Xt
c3
St
(1)
(2)
(3)
α = 0.5, k1 = 1, k2 = 2, k3 = 2 sont les coefficient stocheométriques
de la réaction, et c1 = 1, c2 = 3, c3 = 8 sont les constantes d’inhibition
qui controlent la vitesse de la réaction, Sin = 0.5 est la concentration
du liquide entrant en produit consommable par les bactéries. X reprsente
des bactéries, S représente le substrat consomable par les bactéries et
O représente le produit final de la récation, at ∈ [0, ∞] est la quantité
controlée et représente un débit d’alimentation en Sin .
Représenter des trajectoires qui suivent la politique obtenue, ainsi que les
performances résultantes.
5. On cherche à optimiser la recherche arborescente (la partie la plus lourde
numériquement de l’algorithme précédemment défini) en utilisant l’algorithme UCT. Lire l’article [4] et implémenter cet algorithme pour le
problème précédent.
6. Traitez le problème plus complexe (en dimension 4) de digesteur anaérobie
dont les dynamiques sont expliquées en pages 3 à 6 de [2]. La quantité à
optimiser est la quantité de biogaz CH4 produite.
6
7. Conclusions ?
Références
[1] R. Bellman. Dynamic Programming. Princeton Univ. Press, 1957.
[2] O. Bernard, Z. Hadj-Sadok, D. Dochain, A. Genovesi, and J.-P. Steyer. Dynamical model development and parameter identification for an anaerobic
wastewater treatment process. Biotech.Bioeng., vol. 75 :424–438, 2001.
[3] B. Van Roy D.P. De Farias. The linear programming approach to approximate dynamic programing. Operations Research, 2002.
[4] Cs. Szepesvari L. Kocsis. Bandit based monte-carlo planning. European
Conference on Machine Learning, pages 282–293, 2006.
[5] Michail Lagoudakis and Ronald Parr. Reinforcement learning as classification : Leveraging modern classifiers. International Conference on Machine
Learning, 2003.
[6] P. Fischer P. Auer, N. Cesa-Bianchi. Finite-time analysis of the multiarmed
bandit problem. Machine Learning Journal, 47(2-3) :235–256, 2002.
[7] John Rust. Using Randomization to Break the Curse of Dimensionality.
Computational Economics. 1997.
7
Téléchargement