Apprentissage par algorithme de renforcement pour le jeu de Black-Jack
Informations générales
- Avant toute chose, il y a certain points que vous devez savoir. Cette petite aide n'a en aucune manière l'intention de vous fournir un cours complet sur l'algorithme de renforcement utilisé. Vous trouverez plus bas quelques liens qui peuvent vous être utiles si vous désirez en savoir plus.
-
Le jeu de Black-Jack a été simplifié. Les deux seules actions possibles sont : prendre une carte ou arrêter. Le jeu n'inclut donc pas la possibilité de miser, de doubler ou d'assurer.
Strucure du programme
- Le programme s'articule principalement autour de deux axes. L'un est consacré à l'algorithme de renforcement, l'autre au jeu lui-même. Pour naviguer entre l'un et l'autre, il vous suffit de cliquer sur les boutons qui se trouvent en haut à gauche de l'applet (Boutons "Play" et "Learn").
- La partie consacrée à l'apprentissage vous permet de lancer et d'arrêter l'apprentissage, ainsi que de modifier certains paramètres de l'algorithme utilisé. Pour plus d'informations, allez là.
- La partie consacrée au jeu vous offre la possibilité de jouer, de voir jouer l'ordinateur, et aussi de choisir le type des joueurs. Si vous voulez en savoir plus, allez là.
L'apprentissage
- Cette partie s'articule autour de panneaux. Ils sont au nombre de quatre. Leurs noms respectifs sont visibles sur le haut de l'applet, sous la formes d'onglets. Vous y voyez les noms "Learning", "Estimate Function", "Action Selection" et "Results". Pour afficher le contenu d'un panneau, il suffit de cliquer sur l'onglet correspondant. Chaque panneau offre alors plusieurs possibilités qui vous sont présentées maintenant.
- Le panneau "Learning"
- Vous pouvez choisir le nombre d'épisodes et de parties par épisode que vous désirez en modifiant les champs "Episodes" et "Plays/Episode". Cela détermine la durée de l'apprentissage. Les valeurs entrées seront prises en compte lors du prochain apprentissage.
- Vous pouvez lancer (respectivement arrêter) l'apprentissage en cliquant sur le bouton "Start Learning" (respectivement "Stop Learning").
- Vous pouvez aussi suspendre (respectivement reprendre) l'apprentissage en cliquant sur le bouton "Suspend Learning" (respectivement "Resume Learning"). Cela peut être utile si vous désirez connaître l'état de l'apprentissage à un moment donnê.
- Vous trouvez également quelques informations utiles, comme le nombre d'épisodes déjà joué et le pourcentage de parties gagnées.
- Le panneau "Estimate Function"
- Cette fonction est de la forme suivante : Q(s, a) = Q(s, a) +alpha*TDerr où TDerr = r + gamma*Q(s', a') - Q(s, a). Le panneau offre la possibilité de modifier les valeurs de alpha, de gamma (facteurs de la fonction) et celles de r (qui correspondent au récompenses). Le panneau "Results" offre une explication sur Q(s, a) et ce qu'il représente.
- Si vous désirez que les nouvelles valeurs soient prisent en compte, vous devez cliquer sur le bouton "Set" qui se trouve sur ce panneau. Un clic sur le bouton "Default" permet de revenir aux paramètres par défaut. Toute nouvelle valeur entrée est prise en compte immédiatement, même si un apprentissage est déjà lancé.
- Le panneau "Action Selection"
- Ce panneau permet de modifier la manière dont l'ordinateur et le distributeur choissisent l'action à effectuer.
- Pour l'ordinateur, vous pouvez choisir entre deux méthodes de sélection d'action : Epsilon-greedy et softmax, grâce aux deux boutons radio. Vous pouvez également modifier la valeur de epsilon, grâce au champ "Epsilon". Si vous voulez des informations sur ces fonction de sélection d'action, je vous renvoie aux liens.
- Pour le distributeur, vous pouvez choisir la valeur à partir de laquelle il arrête de prendre de nouvelles cartes (17 points par défaut).
- Pour prendre en compte les nouvelles valeurs, vous devez cliquer sur le bouton "Set". Le bouton "Default" permet de revenir aux paramètres par défaut.
- Le panneau "Results"
- Vous trouvez sur ce panneau un graphique ou une table contenant les valeurs calculées. Pour accéder au premier (respectivement au second), vous devez simplement cliquer sur le bouton "Graph" (respectivement "Q-Values").
- Le graphique montre pour chacun de N épisodes de l'apprentissage en cours (N est défini dans le panneau "Learning") le pourcentage de parties gagnées.
- Le tableau présente l'ensemble des valeurs calculées par l'algorithme : Q(s, a). 'a' correspond aux deux actions possibles (prendre ou arrêter) et 's' aux états possibles. Ceux-ci sont calculés en conction des cartes contenues dans la main. Les états de 4 à 20 correspondent au nombre de points, si la main ne comporte pas d'as. Les valeurs 23 à 31 correspondent au nombre de points plus 11, si la main comporte un as. Pour chaque état, la valeur la plus élevé des deux indique l'action prise de préférence par l'algorithme. Vous remarquerez que l'état 21 n'est pas pris en compte. C'est simplement parce que dans ce cas là, il n'y a pas d'autre choix que d'arrêter.
Le jeu
- Cette partie s'articule aussi autour de panneaux. Il y en a deux. Le premier ("BlackJack") permet à l'utilisateur de jouer et de voir jouer le programme. Le second ("Preferences") offre la possibilité de modifier les types de joueurs.
- Sur le panneau "Game", vous pouvez voir trois joueurs. Le premier est toujours le distributeur. Le deux suivants peuvent être incarné à choix par le programme ou vous-même. Si vous incarnez l'un des joueurs, les boutons "hit" et "stand" sont activés. C'est eux qui vous permettent de prendre une carte (bouton "hit") ou d'arrêter (bouton "stand"). Si c'est le programme qui incarne un joueur, les deux boutons sont désactivés.
Vous trouvez également un bouton "deal". C'est lui qui vous permet de distribuer de nouvelles cartes quand une donne est terminée.
- Le panneau "Preferences" vous offre la possibilité de choisir qui doit incarner le premier et le second joueur, au moyen de deux menus déroulants. Si c'est le programme, vous pouvez choisir la stratégie qu'il doit adopter : aléatoire ("Random") ou celle qu'il est en train d'apprendre ("Current") au moyen du menu déroulant correspondant. Vous pouvez aussi modifier la valeur à partir de laquelle le distributeur ("dealer") arrête de prendre de nouvelles cartes (17 points par défaut).
Liens
Dernière mise à jour : 04/02/1998
frederic.meyer@studi.epfl.ch