Apprentissage par renforcement Laboratoire VI
Andres Perez-Uribe
Un agent apprend par essai - erreur liée à des recompenses ou des punitions. Objectifs
Il s'agit d'explorer l'utilisation des algorithmes d'apprentissage par renforcement à des problèmes simples, tels que l'apprentissage de la navigation d'un agent dans un labyrinthe, avec le but de mieux comprendre les principes de fonctionnement de ces algorithmes.
Il s'agit également d'utiliser les algorithmes d'apprentissage par renforcement pour apprendre des stratégies de jeu pour le Jeu de 21 (Black Jack), ainsi que des straégies de jeu dans un Jeu de football.1. Applet sur la navigation d'un labyrinthe
Il s'agit d'utiliser une application pédagogique sur les Processus de Decision de Markov développé par Rémi Coulom de l'Univesité de Lille.
1.1 Copier les sources de l'application ici.
1.2 Exécutez le fichier mdp.jar qui se trouve dans le répertoire compjavac/bin
1.3 Sélectionner l'option "Create" Maze (labyrinthe)
1.3 Sélectionner la politique (policy) Epsilon-greedy (exploration - exploitation)
1.4 Sélectionner l'algorithme Action-value iteration
1.5 Sélectionner "One iteration" et observer l'effet de l'apprentissage
1.6 Une fois fini l'apprentissage de la fonction de valeurs, vous pouvez naviger manuellement en utilisant l'option "Navigate". Observez les transitions d'états, la récompense reçu et les valeurs Q correspondentes.
2. Implémentation C de SARSA(Lambda)
2.1 Copier le code source sarsa_lambda.c en langage C de l'algorithme SARSA(Lambda).
2.2 Analyser le code et son fonctionnement, identifier les valeurs des paramètres d'apprentissage et identifier chaque partie du code:
Initilize
Repeat {
select_action
compute next_state
receive reward
observe possible next action
update Q-values
update e-traces
Execute action (change the state)
}
2.3 Compiler et exécuter le code. Analyser le résultat et vérifier s'il s'agit d'une solution optimale.
3. Apprentissage de stratégies de jeu pour le Jeu du 21
Utilisez cet Applet Java qui vous permet d'entraîner un agent pour jouer le Jeu du 21 (Black Jack). Les sources sont également disponibles ici.
La touche 'start learning' vous permet de faire jouer l'ordinateur contre un croupier virtuel. Arrêter l'entraînement avec 'Stop' lorsque l'ordinateur gagne plus de 40% des jeux. On a demontré mathématiquement que dans ce jeu on a moins de 50% des chances de gagner.
- Pour réaliser l'entraînement de l'ordinateur, vous pouvez changer les paramètres d'apprentissage, la politique (e-greedy ou softmax), ainsi que regarder l'évolution de la performance de l'agent et les valeurs Q(s,a) apris.
- Sélectionner 'Play' et ensuite l'onglet 'Preferences'.
- Changer la stratégie du joueur 'Player 1' (random -> Current). Ceci veut dire que ce joueur va utiliser la stratégie apprise par l'ordinateur.
- Sélectionner 'Set' et ensuite l'onglet 'Black Jack' pour jouer, vous même et l'ordinateur contre un croupier virtuel qui joue avec une stratégie fixe (hit iff score < 17).
4. Application en téléphonie cellulaire
4.1 Utilisez l'Applet Java qui se trouve à l'adresse http://www.eecs.umich.edu/~baveja/Demo.html
Une ville est divisée en cellules d'une bande pasante donnée pour permettre la communication via la téléphonie mobile. On veut optimiser l'utilisation de la bande pasante à disposition.
Lorsqu'un appel est établie, un canal de communication est utilisé et les cellules voisines ne peuvent pas utiliser ce même canal de communication parce que ça générerait des intérferences. Dès qu'il n'y a plus des canaux de communication libres, les appels ne peuvent pas être établies (drop).
Pour minimiser le nombre d'échecs (dropped calls) le système doit essayer d'allouer un canal de communication qui est libre dans la cellule ou on essai d'initier la communication mais qui est déjà utilisé deux cellules plus loin.
Dans l'applet:
La matrix des cellules à droite vous montre un système d'allocation des canaux de communication à stratégie fixe et à gauche un système basé sur l'apprentissage par renforcement.
Les chiffres dans les cellules indiquent le nombre d'appels sortantes de la cellule. La couleur verte indique qu'un appel entrante est acceptée et la couleur rouge indique un appel qui n'a pas pu être établie (dropped).
Vous pouvez augmenter le traffic des appels (nombre d'appel par heur).
5. Apprentissage de stratégies de jeu pour le football
Dans ce lien http://www.cs.utexas.edu/users/AustinVilla/sim/keepaway/ regarder les animations FLASH des résultats de l'entraînement des agents footballeurs pour garder la balle à l'aide de l'apprentissage par renforcement. Regarder particulièrement LEARNED 4 vs 3 et LEARNED 5 vs 4.
6. Le livre de Sutton & Barto
http://www.cs.ualberta.ca/~sutton/book/the-book.html
SBI 2005-2006