Sunteți pe pagina 1din 15

Utilisation d'un RNA comme fonction dvaluation dun jeu

Utilisation d'un rseau de neurones artificiels comme fonction dvaluation dun jeu
Didier Mller, EPFL-DMA, CH-1015 Lausanne Novembre 1992

Rsum
Dans ce travail, nous prsentons une mthode utilisant un rseau de neurones multicouche pour remplacer une fonction d'valuation d'un jeu. Le jeu choisi est le push-over, mais la mthode s'applique la plupart des jeux. Nous montrons comment crer une base de donnes de positions tiquetes et comment l'utiliser pour l'apprentissage. Les rsultats obtenus sont sduisants: en effet, le rseau joue mieux que son matre; cependant, les rseaux multicouches ne sont pas sans dfauts.

Mots Cls
Thorie des jeux, fonction dvaluation, push-over, rseaux de neurones, classification.

1.

Introduction
Rien ne nous plat que le combat, mais non pas la victoire (...) Ainsi dans le jeu, ainsi dans la recherche de la vrit (...) De mme, dans les passions (...) Nous ne cherchons jamais les choses, mais la recherche des choses. PASCAL, Penses, II, 135.

1.1.

Ltude des jeux

La thorie des jeux a t lance vers 1920 par mile Borel, mais il fallut attendre 1926 pour que John von Neumann dmontre le thorme du minimax autour duquel cette thorie sest dveloppe. Von Neumann publia avec lconomiste Oscar Morgenstern, en 1944, louvrage dsormais classique Theory of games and economic behavior. Depuis, la thorie des jeux sest considrablement dveloppe, mlant lalgbre, la gomtrie, la recherche oprationnelle, la thorie des ensembles et la topologie. Elle sapplique aussi bien lconomie quaux affaires, la guerre qu la politique. Naturellement, cette thorie sapplique aussi aux jeux tels que tout un chacun les conoit: checs, dames, backgammon, etc. Une question qui revient souvent est: pourquoi les mathmaticiens sintressent-ils un sujet aussi futile que les jeux ? Les spcialistes de lintelligence artificielle furent parmi les premiers sintresser aux jeux. En effet, un jeu est compos dun nombre limit dlments et dun ensemble rduit de rgles prcises; son but est galement clair. Un jeu forme ainsi un petit univers plus facile matriser

Utilisation d'un RNA comme fonction dvaluation dun jeu

que certains problmes rels semblables, mais quand mme suffisamment complexe pour que lon puisse faire intervenir des notions typiquement humaines comme la rflexion et le raisonnement. Les checs en particulier ont trs intress les mathmaticiens. L'un deux a dit : Les checs sont la drosophile de l'intelligence artificielle , faisant rfrence la mouche que Morgan a utilise pour ses recherches en gntique. Cependant, les programmes actuellement performants font surtout appel la force brutale (i.e. regarder tous les coups possibles) et la puissance de calcul plutt qu'au raisonnement. En 1950, Claude Shannon publia larticle mythique Programming a computer for playing chess [Sha50] qui influena tous les programmes dchecs jusqu nos jours. Il y explique notamment comment construire une fonction dvaluation, qui est lun des deux concepts fondamentaux dans tout programme de jeu, lautre tant lalgorithme de parcours de larbre du jeu. On reprsente en effet un jeu par un arbre o un nud correspond une configuration possible du jeu et un arc reprsente une transition lgale entre deux configurations. Dans les jeux deux joueurs, les nuds dun niveau n (impair) de larbre correspondent toutes les positions possibles pour le premier joueur aprs n coups ; idem avec les nuds des niveaux pairs pour le deuxime joueur. On se rend vite compte que mme pour des jeux trs simples, comme le tic-tac-toe (morpion), ces arbres deviennent rapidement gigantesques au fur et mesure que lon descend profond dans les niveaux. Il a donc fallu inventer des algorithmes performants et rapides qui vitent d'explorer l'arbre dans sa totalit. Nous ne nous attarderons pas davantage sur les arbres de jeux, le lecteur intress pourra se reporter la revue Artificial Intelligence, o de nombreux algorithmes de parcours sont dcrits, notamment le plus connu dentre eux, lalgorithme alpha-bta. Si de nos jours on matrise relativement bien lexploration des arbres de jeux, il en va tout autrement des fonctions dvaluation. Comme leur nom lindique, ces fonctions ont pour but dvaluer une position : un nombre trs grand sera lindice dune excellente position, tandis quun nombre trs petit (gnralement ngatif, mais cela dpend de lchelle choisie) traduira une situation catastrophique. Comment obtient-on une bonne fonction, cest--dire une fonction qui traduit fidlement la ralit? Une fonction dvaluation f est gnralement une somme pondre de la forme : f(P) = a1 c 1 (P) + a2 c 2 (P) + ... + an c n (P) (1.1) o les ai sont des poids (ai R) et les ci des caractristiques dune position P (par exemple, aux checs, le nombre de pions doubls, les pions occupant le centre, le nombre de fous pris ladversaire, le nombre de fous perdus, etc.). Trouver les caractristiques dun jeu nest gnralement pas chose facile, et les programmeurs ont souvent recours des experts pour les y aider. Quant aux poids, qui traduisent le fait quune caractristique est plus importante quune autre, leur ajustement fait plus appel lempirisme et lexprience du programmeur qu une mthode rigoureuse. Le but de ce travail est de remplacer la fonction dvaluation dun jeu par un rseau de neurones artificiels (RNA).

1.2.

Brefs rappels sur les RNA

Les systmes volus mettent en jeu une quantit considrable de cellules nerveuses, lies par des connexions synaptiques en quantit gigantesque. Ils sont le sige dune intense activit lectrochimique et les capacits dadaptation et daction quils dmontrent en font un sujet dtude digne dintrt. Ainsi, le principe du connexionnisme repose sur le fait quune activit collective dunits simples qui sinfluencent mutuellement peut engendrer un comportement vari et complexe. Depuis les annes 1960, plusieurs modles ont t proposs sur ce principe. Ces modles font gnralement appel deux phases de calcul : une phase dapprentissage qui sert tablir la fonction que doit raliser le rseau partir dune base dexemples, puis une phase de reconnaissance qui exploite cette fonction sur un ensemble de donnes ventuellement plus vaste. Ces deux notions reprsentent deux aspects des rseaux connexionnistes : lapprentissage par lexemple et la capacit de gnralisation.

Utilisation d'un RNA comme fonction dvaluation dun jeu

Le modle de McCulloch et Pitts est certainement lun des plus anciens et constitue llment de base des rseaux connexionnistes. Il dcrit un neurone comme un lment sommateur des entres qui lui parviennent travers des pondrations reprsentes par des lments synaptiques (voir fig. 1.1). x1 x2 W i1 W i2 pi W iN xN i
F i g . 1 . 1 : modle gnral du neurone formel

yi

Si nous appelons : xj un stimulus dentre, Wij la valeur du poids synaptique entre lentre j et le neurone i, i , une valeur appele seuil du neurone i, alors le potentiel du neurone i est gal : pi = Wijx j
j=1 N

(1.2)

On calcule la sortie effective du neurone par exemple en comparant la valeur du potentiel un seuil. Si la valeur dpasse le seuil, le neurone dlivre une sortie +1, sinon, il dlivre une sortie gale 0. 1: p > y i = (p i ) = 0 : pi i (1.3) i i La fonction de transition ci-dessus, appele fonction seuil, dlivre des valeurs binaires.

1.00

0.50

-4.00

-2.00

2.00

4.00

F i g . 1 . 2 : fonction seuil (ici avec =1.0)

On peut utiliser d'autres fonctions pour , par exemple la fonction sigmode. On a alors :

Utilisation d'un RNA comme fonction dvaluation dun jeu

y i = (p i ) = 1+e

1
(p i ) T

(1.4)

1.00

0.50

-4.00

-2.00

2.00

4.00

F i g . 1 . 3 : fonction sigmode

En connectant de tels neurones entre eux dune certaine manire, on forme des rseaux dun certain type. Un type de rseau frquemment utilis est le rseau multicouche. Un exemple dun tel rseau est donn la fig. 1.4. Tous les neurones de la couche n sont connects tous les neurones de la couche n+1 ; il ny a pas de dautres connexions. Les couches situes entre la couche dentre et la couche de sortie sont appeles les couches caches.

couche d'entre

1re couche cache

couche de sortie

F i g . 1 . 4 : rseau multicouche avec une seule couche cache

1.3.

Travaux effectus dans le domaine des jeux et de lapprentissage

Un des premiers articles concernant lapprentissage dun jeu est d A. Samuel [Sam59]. Ce travail a influenc de nombreuses autres recherches. Voici une liste non exhaustive darticles concernant lapprentissage des jeux : [Sam67], [Elc67], [Kof68], [Gri74], [DeJ87], [Lee88], [Put89], [Sej89], [Cor90]. Les rseaux de neurones ont t jusqu prsent trs peu utiliss dans la thorie des jeux. En fait, nous ne connaissons que deux articles dans ce domaine : [Sej89] et [Cor90]. Dans [Sej89], traitant du backgammon, le concept suivi par Sejnowski et Tesauro tait dentraner le rseau slectionner des coups (parmi un ensemble prdtermin de coups

Utilisation d'un RNA comme fonction dvaluation dun jeu

permis), plutt qu les gnrer. quip dun prprocesseur qui gnre les coups lgaux tant donns une position et un jet de d, le rseau tait entran valuer tous ces coups, leur donnant une valeur entre -100 et +100 (-100 tant le pire coup possible, +100 le meilleur). La position et le changement caus par le coup taient cods sur 459 neurones dentre. Le rseau multicouche avait un seul neurone de sortie qui reprsentait lvaluation. De nombreuses architectures furent testes ; le rseau le plus performant avait deux couches caches de 24 neurones chacune. Cependant, les diffrences de performance, quil y ait moins ou mme pas de couches caches, ntaient pas trs grandes. La base de donnes pour lapprentissage contenait environ 3000 positions de jeu (sur un total estim environ 10), avec un jet de d particulier pour chaque position, et un ensemble de coups lgaux. Un petit sous-ensemble de ces coups a t estim par un expert humain ; pour la grande majorit des coups, lvaluation a t tire au sort dans lintervalle [-65,35]. Cette technique quelque peu trange a t introduite cause du grand nombre de coups possibles. Le rseau fut dabord entran sur les coups explicitement valus, mais ensuite aussi sur des coups alatoirement valus, afin dviter un biais exagr dans lensemble dapprentissage. Les performances du rseau entran furent mesures de diffrentes manires, la plus intressante dentre elles tant son affrontement avec le programme commercial GAMMONTOOL1 . Dans sa meilleure configuration, le rseau battit GAMMONTOOL dans 60% des parties, ce qui constitue une russite remarquable. Dans [Cor90], traitant du jeu de lawale, les auteurs utilisent un rseau multicouche avec apprentissage par rtropropagation du gradient et un programme classique comme expert. En rsum, ils procdent ainsi : ils crent dabord une base dexemples o ils font correspondre une situation donne le coup que jouerait le programme classique. Aprs apprentissage, ils obtiennent un premier rseau, qui joue assez mal. Ensuite, ils font jouer le rseau obtenu ci-dessus contre un adversaire donn plusieurs parties. Si le rseau a gagn la partie, ils bonifient les configurations rencontres lors de la partie (rponse attendue : 1) ; si le rseau a perdu, ils pnalisent (rponse attendue : -1). Ladversaire est le rseau lui-mme, auquel a t ajout un lger bruit gaussien centr de faible variance la sortie. Avec la nouvelle base dexemples obtenue, ils ralisent lapprentissage sur un nouveau rseau de neurones multicouche ayant un seul neurone en sortie : lvaluation de la solution. La situation est donne par le nombre de graines dans chacun des 12 trous du jeu et par le nombre de graines prises. Ce sont les seules indications dont le rseau dispose. Le rseau a 180 neurones en entre. Le nombre de graines dans chaque trou est cod sur 13 neurones. Le nombre de graines prises est cod sur 12 neurones. On a donc bien (12 trous) * (13 neurones) + (2 joueurs) * (12 neurones) = 180 neurones. Aprs apprentissage, le rseau joue mieux que le programme qui fut son matre , en russissant notamment la prouesse que gagner plus dune partie sur deux contre un niveau du programme anticipant 7 coups, alors que lui nen anticipe quun seul !

2.

Jeu du push-over

Ce jeu est dcrit dans Jeux & Stratgie no 2 (Avril-mai 1980). Nous lavons choisi parce quil est relativement simple et que nous avons dj disposition un programme qui y joue bien (en tout cas aussi bien sinon mieux que lauteur et les personnes qui lont test !).

2.1.

Rgles du jeu

Le jeu du push-over se joue sur un damier 4x4 (ou 5x5). Le but est daligner 4 (5) pions de sa couleur en vertical, en horizontal ou en diagonal. On entre les pions par les bords du damier et on pousse le pion qui ventuellement sy trouve dune case dans la direction du mouvement du nouveau pion ; tous les pions qui gnent sont dcals eux aussi dune case et ventuellement
1 Un produit de Sun Microsystems Inc.

Utilisation d'un RNA comme fonction dvaluation dun jeu

sortis du damier. Il est interdit pour un joueur de jouer un coup qui conduirait une configuration identique celle conscutive son coup prcdent. Les o commencent. La fig. 2.1 montre un milieu de partie.

I A B C D

K L E F G H A B C D

J K L E F G H A B C D

K L E F G H

M N O P

M N O P

M N O P

F i g . 2 . 1 : 2 coups dun milieu de partie

Nous avons ajout deux rgles supplmentaires : 1. Le nombre de coups pour une partie est limit 50 sur un damier 4x4; si cette limite est dpasse, la partie est dclare nulle. En effet, il est possible de crer des cycles de coups comme le montre la fig. 2.2. Cette rgle est la plus simple pour viter des parties infinies. 2. Il est possible qu la fin de la partie, les deux joueurs soient en position gagnante. Dans ce cas, cest le dernier avoir jou qui a gagn.
I A B C D M N O P J K L E F G H A B C D M N O P I J K L E F G H A B C D M N O P I J K L E F G H A B C D M N O P I J K L E F G H

I A B C D

K L E F G H A B C D

K L E F G H A B C D

K L E F G H

M N O P

M N O P

M N O P

F i g . 2 . 2 : cycle de longueur 6 (la lettre en gras indique le coup qui vient dtre jou)

Remarque : nous navons pas pu retrouver les rgles originales du jeu et nous nous sommes donc fis aux rgles dcrites dans [LeN82]. Nous ne savons pas si les deux cas cidessus avaient t prvus.

2.2.

Premier programme qui joue au push-over

notre connaissance, le premier article sintressant la programmation de stratgies pour ce jeu fut [LeN82]. Les procdures principales dun programme pour ce jeu y sont crites et elles ont t reprises telles quelles. Cependant, la fonction dvaluation que les auteurs proposaient tait mauvaise ; en effet, si lon appliquait leur fonction une position, puis que lon tournait le damier dun demi-tour et que lon rappliquait cette fonction, on obtenait parfois deux rsultats

Utilisation d'un RNA comme fonction dvaluation dun jeu

diffrents pour en fait deux configurations identiques. Nous avons donc rcrit la procdure en cause, dont voici le nouveau code :
procedure setval (i,j:integer; piece:char; board:matrix; var value, weight: integer); (* tient a jour value et weight *) begin if board[i,j] = piece then begin if weight = 0 then weight := 1; weight := weight * 5 end else begin if board[i,j] = ' ' then (* case vide *) weight := 1 else (* case occupee par ladversaire *) weight := 0 end ; value := value + weight end (* setval *);

Cette procdure est appele par une autre qui parcourt squentiellement toutes les cases par colonne, par ligne et par diagonal : i, j sont les coordonnes dune case, piece est le type de pion (+ ou o) sur cette case, board est la configuration courante, value et weight sont les valeurs renvoyes. Avant de parcourir chacune des 10 ranges, on initialise value 0 et weight 1. On somme ensuite les 10 rsultats obtenus pour obtenir lvaluation de la position. Nous avons aussi lgrement modifi la fonction dvaluation elle-mme (nomme compute dans [LeN82]) pour tenir compte du fait quil est mauvais davoir un groupe de trois pions aligns verticalement ou horizontalement suivi dun pion ennemi. En effet, ladversaire peut repousser facilement lattaque et mme prendre lavantage sur cette range comme on peut le voir sur la fig. 2.3.
I A B C D M N O P J K L E F G H A B C D M N O P I J K L E F G H

F i g . 2 . 3 : les o ont perdu linitiative sur la premire ligne (ils nont pas le droit de jouer en E, car on retrouverait la position de gauche).

Nous reportons le lecteur [LeN82] pour plus de dtails sur ce programme, car nous navons mentionn ici que les points essentiels pour la lecture de ce rapport.

3.

Dmarche

Pour entraner le rseau de neurones, on utilisera une base de donnes de positions, o chaque position sera tiquete gagnante ou perdante. Pour construire cette base de donnes, on a fait jouer le programme dcrit au chapitre 2 contre lui-mme 3000 parties. Pour chaque partie, le gagnant a t mmoris, puis toutes les positions de la partie o le gagnant jouait ont t tiquetes gagnantes, les autres perdantes. Cette mthode est simple, mais il y a un srieux problme : une position gagnante pourrait devenir perdante la suite dun mauvais coup

Utilisation d'un RNA comme fonction dvaluation dun jeu

ultrieur, et serait donc mal tiquete. Une telle mthode ncessite donc un expert fiable, ce que nous supposons tre le cas. La fig. 3.1 schmatise le processus suivi.
positions

Apprentissage Apprentissage du rseau de neurones

Codage de la position

tiquette

Gnralisation
position

Codage de la position

Rseau de neurones

valuation de la position

F i g . 3 . 1 : dmarche

3.1.

Cration d'une base de donnes des positions (BDP)

Nous avons fait jouer notre programme de push-over 3000 parties contre lui-mme, les 6 premiers coups de la partie (3 pour chaque couleur) tant jous au hasard, afin dviter trop de parties identiques. Sur ces 3000 parties, 103 ont t nulles, les o (premier joueur) ont gagn 64.4% des autres parties et les + 35.6%. 52590 positions, pas forcment toutes diffrentes, ont t enregistres dans la base de donnes. Une borne suprieure du nombre de positions possibles est 316 = 43046721. Si l'on tient compte des symtries et des rotations du damier pour liminer des positions quivalentes, on peut diviser ce nombre par huit. On obtient alors : 5'380'840 positions comme borne suprieure. Le base de donnes a le format suivant (chaque ligne reprsente une position tiquete) : +ooo...+....o...Eo -0.400 ++oo...+....o...A+ 0.466 Cette base de donnes contient les deux positions de la fig. 2.3. Les 16 premiers caractres reprsentent la position du damier ligne par ligne ( . = case vide), la lettre suivante le dernier coup jou, le dernier caractre dit qui vient de jouer. Le nombre associ cette chane de caractres donne une estimation de la position. Ce nombre, appelons-le e, est calcul ainsi : j e= (2.1) t

Utilisation d'un RNA comme fonction dvaluation dun jeu

o j est le nombre de coups jous jusque-l et t la longueur de la partie. Reprenons lexemple de la fig. 2.3. Supposons que la partie a dur 15 coups et que la position de gauche rsulte du 6e coup. Disons que les ronds ont perdu la partie. Lestimation de cette position est - 6/15 = - 0.4. Cette manire de faire nous semble plus raliste que de simplement tiqueter gagnant ou perdant. En effet, plus on se rapproche de la fin de la partie, plus l'tiquetage est cens tre correct. De plus, cela relativise un peu le fait que lexpert doive tre fiable. Lestimation de la position forme ce que nous avons appel ltiquette.

4.

Utilisation d'un rseau de neurones

Dans ce chapitre, nous dcrivons le rseau de neurones, la mthode et les chantillons dapprentissage, ainsi que les rsultats obtenus sous diverses conditions.

4.1.

Ide gnrale

partir de la base de donnes des positions (BDP), nous crons une base de donnes des caractristiques (BDC). Pour chaque ligne de la BDP, on cre une ligne de la BDC en procdant ainsi : a. On inverse si ncessaire les rles des o et des + de faon ce que, pour chaque position, ce soient toujours comme si les o venaient de jouer. Un o sera reprsent dans la BDC par la valeur 1.0, un + par la valeur 0.0 et une case vide par la valeur 0.5. b. On recopie lestimation de lvaluation de la position. Cest partir de cette BDC que lon va effectuer lapprentissage du rseau, l'ide tant que le rseau associe une position une valeur (l'estimation de la position).

4.2.

Description du rseau de neurones

Nous avons utilis un rseau multicouche avec 16 units dentre et 1 neurone en sortie. Les entres correspondent aux tats des cases de la position donne. Les entres peuvent donc valoir 0, 0.5, ou 1. La valeur donne par le neurone de sortie est un nombre rel pouvant prendre toutes les valeurs comprises dans lintervalle [0,1]. L'chelle est la suivante : 0.5 correspond une position nulle, 0 une position perdue et 1 une position gagnante. La fonction de transition utilise pour chaque neurone est la sigmode donne par la formule (1.4). Dans les rseaux multicouches, le grand problme est de dterminer le nombre de couches caches et le nombre de neurones pour chacune de ces couches, afin dobtenir le meilleur rapport prcision/rapidit. En effet, un grand nombre de neurones augmente exagrment le temps de calcul, mais donne gnralement (pas toujours !) de meilleurs rsultats. Il nexiste actuellement pas de mthodes pour trouver la configuration optimale. Nous avons donc essay plusieurs rseaux et gard le meilleur. La configuration retenue est un rseau multicouche avec une seule couche cache de 16 neurones. La mthode dapprentissage est une mthode quasi-newtonienne connue sous le nom de BFGS. Cet algorithme a t dvelopp indpendamment par Broyden, Fletcher, Goldfarb et Shanno en 1970. Elle est dcrite entre autres dans [Min83] pp. 121-123. Nous avons effectu lapprentissage avec 3000 positions. Nous avons utilis le logiciel du domaine public GRADSIM [Res90] sur des stations Silicon Graphics pour raliser lapprentissage du rseau.

4.3.

Choix de lchantillon dapprentissage

Une autre difficult est de choisir les positions que lon va faire apprendre au rseau. On a constat en effet que si lon montrait toutes les positions (du dbut dune partie jusqu la fin),

10

Utilisation d'un RNA comme fonction dvaluation dun jeu

le rseau sembrouillait et pensait, aprs apprentissage, que toutes les positions taient gagnantes. Aprs plusieurs tentatives dcevantes, on a trouv la formule magique : on montre au rseau les positions ayant une valuation suprieure 0.5 en valeur absolue, et lon fait correspondre cette position soit gagnant (1), soit perdant (0), suivant le signe de lvaluation.

4.4.

Premiers rsultats obtenus

On a fait jouer le rseau de neurones contre le programme classique afin de tester sil joue mieux que ce dernier, ce qui est notre but. Nous avons donc organis des tournois, chaque tournoi comptant 1000 parties. Dans chaque partie, les 4 premiers coups furent jous au hasard, afin dviter trop de parties identiques. Dans les tableaux de rsultats ci-aprs, on indique le pourcentage de gain des o (rappelons que les o commencent). La signification des symboles est la suivante : r : rseau, e : expert, 1 : un niveau de recherche dans larbre du jeu, 2 : deux niveaux. o \+ r1 r2 e1 e2 r1 60.6 74.7 64.0 87.5 r2 42.1 56.4 66.3 83.1 e1 50.3 41.4 73.4 97.4 e2 28.5 41.5 7.8 61.8

Tableau 4.1: pourcentage de gains des o

On constate que le rseau joue de manire correcte, sans plus. Il est encore plus faible que lexpert dans tous les cas, sauf r1 e1.

4.5.

Correction dune certaine myopie

Ces premiers rsultats sont prsents sous forme de chiffres. Or, quand on regarde dun peu plus prs les parties qui se sont joues, on constate que le rseau est un peu myope, dans le sens o il a parfois du mal reconnatre une situation gagnante, i.e. une situation o 4 pions identiques sont aligns sur une range. Il lui arrive ainsi de rater un coup victorieux. En laidant reconnatre ces situations par un simple test supplmentaire dans le programme, on arrive amliorer de manire spectaculaire les performances, comme le montre le tableau 4.2. Pour diffrencier le rseau tel quel du rseau aid, nous dsignerons ce dernier par r* . o \+ r* 1 r* 2 e1 e2 r* 1 73.1 88.9 62.8 81.8 r* 2 52.4 72.6 24.2 45.7 e1 68.5 93.3 73.4 97.4 e2 47.8 83.7 7.8 61.8

Tableau 4.2 : pourcentage de gains des o avec le rseau aid

On voit qu niveau de recherche gal, le rseau est toujours meilleur que lexpert, sauf quand il joue en second avec 1 niveau de recherche (e1 r*1). Comme lexpert, le rseau jouant avec les + semble dfavoris. Ainsi, on a pu trouver une valuation de la position meilleure que celle de l'expert partir de renseignements (l'tiquette) pourtant donns par la fonction d'valuation de l'expert. On aurait pu s'attendre ce que le rseau joue au mieux aussi bien que l'expert, mais en fait, l'lve a dpass le matre.

Utilisation d'un RNA comme fonction dvaluation dun jeu

11

4.6.

Influence de la BDP sur les rsultats

Dans ce paragraphe, nous allons tester linfluence du contenu de la base de donnes des positions sur les performances des o et des +. En effet, nous avions remarqu que les o semblaient favoriss ce jeu, ce qui se traduisait dans la BDP par environ 65% de positions provenant de parties gagnes par les o contre 35% gagnes par les +. Ceci a peut-tre une influence sur les rsultats. Pour vrifier cela, nous avons effectu plusieurs apprentissages avec des BDP diffrentes. Dans la premire BDP, la moiti des positions rsultent de parties gagnes par les o, et l'autre moiti de parties gagnes par les +. Les rsultats sont exposs dans le tableau 4.3. o \+ r* 1 r* 2 e1 e2 r* 1 63.4 89.0 60.6 83.2 r* 2 40.5 70.3 19.3 46.9 e1 63.2 93.4 73.4 97.4 e2 41.3 82.5 7.8 61.8

Tableau 4.3: pourcentage de gains des o avec une BDP o les o et les + ont gagn le mme nombre de parties

On voit que le rseau joue un peu mieux avec les + quavec lautre base dapprentissage, surtout contre le rseau. En contrepartie, le rseau joue moins bien avec les o contre lexpert. Nous avons ralis deux autres apprentissages avec des BDP o ne se trouvaient que des positions apparues au cours de parties o les o, respectivement les +, avaient gagn. Les rsultats sont exposs dans les tableaux 4.4 et 4.5. o \+ r* 1 r* 2 e1 e2 r* 1 61.5 93.4 64.9 92.1 r* 2 44.2 78.3 44.4 72.1 e1 47.1 88.7 73.4 97.4 e2 19.1 63.2 7.8 61.8

Tableau 4.4: pourcentage de gains des o avec une BDP constitue de positions o les o ont gagn toutes les parties

o \+ r* 1 r* 2 e1 e2

r* 1 53.3 83.8 82.5 96.6

r* 2 39.3 66.2 53.3 79.3

e1 32.1 80.5 73.4 97.4

e2 6.2 43.3 7.8 61.8

Tableau 4.5: pourcentage de gains des o avec une BDP constitue de positions o les + ont gagn toutes les parties

On voit que l'chantillon d'apprentissage a une grande influence sur les rsultats. En particulier, les deux chantillons utiliss dans les tableaux 4.4 et 4.5 font jouer le rseau bien plus mal qu'avec ceux utiliss dans les tableaux 4.2 et 4.3. On aurait pu s'attendre ce que le rseau joue encore mieux les o (resp. les +) en utilisant l'chantillon 4.4 (resp. 4.5), mais ce n'est pas le cas.

4.7.

Rle de lexpert

L'expert est indispensable avec cette mthode. En effet, si l'expert n'tait pas fiable, l'tiquette serait sans doute fausse, ce qui nuirait l'apprentissage. Si on avait pris comme BDP des positions rsultant de coups alatoires, on aurait observ deux anomalies :

12

Utilisation d'un RNA comme fonction dvaluation dun jeu

1. 2.

Les parties ne seraient pas reprsentatives de parties relles : elles seraient plus longues et le vainqueur ne serait pas toujours logique (l'adversaire aura peut-tre laiss pass une victoire). Certaines positions seraient mal tiquetes; celles justement o le joueur aurait gagn la partie s'il avait t intelligent et o il a finalement perdu.

5.

Autre mthode

Dans ce chapitre, nous allons essayer une autre approche. Plutt que de coder la position directement, on va essayer dutiliser des caractristiques de la position. Cette approche est plus dans l'esprit des programmes de jeu classiques. La fig. 5.1 schmatise le processus suivi.
positions

Apprentissage Extraction des caractristiques Apprentissage du rseau de neurones

tiquette

Gnralisation
position

Extraction des caractristiques

Rseau de neurones

valuation de la position

F i g . 5 . 1 : deuxime approche

5.1.

Extraction des caractristiques d'une position

Comme on l'a dit dans l'introduction de cet article, on utilise gnralement des caractristiques d'une position plutt que la position elle-mme pour construire la fonction d'valuation d'un jeu. On guide ainsi l'ordinateur en lui indiquant ce qui est important et ce qui l'est moins. Nous allons tenter d'appliquer cette technique. Un inconvnient de cette mthode est que l'on ne sait pas a priori quelles sont les bonnes caractristiques. Introduisons d'abord deux dfinitions :

Utilisation d'un RNA comme fonction dvaluation dun jeu

13

DFINITIONS D f . 5 . 1 . range : ligne, colonne ou diagonale. D f . 5 . 2 . n-grappe : n pions de mme couleur adjacents deux deux sur une mme range (voir fig. 5.2).
I A B C D M N O P F i g . 5 . 2 : Exemples de n-grappes: une 1-grappe et une 2-grappe de o sur la premire ligne. Deux 1-grappes de + et une 1-grappe de o sur la deuxime colonne. J K L E F G H

Un des avantages du jeu du push-over est que les caractristiques importantes dune position sont assez intuitives, mme pour un joueur dbutant. Les 44 caractristiques que nous avons choisies sont : Pour chacune des 10 ranges (pour les groupes de caractristiques a & b) : a1) le nombre de pices amies a2) le nombre de pices ennemies b1) la plus grande n-grappe de pices amies b2) la plus grande n-grappe de pices ennemies c1) c2) d1) d2) le nombre de pices amies dans les cases centrales le nombre de pices ennemies dans les cases centrales le nombre de pices amies dans les 4 coins le nombre de pices ennemies dans les 4 coins.

Nous justifions ci-aprs le choix de ces groupes de caractristiques en reprenant la mme numrotation que ci-dessus : a) b) c) d) Plus on a de pions dans une range, mieux cest, puisque le but du jeu est den aligner quatre. Daprs [LeN82], il est prfrable davoir des grappes plutt que des pions parpills. Il faut au moins deux coups pour faire sortir ces pions du damier et il existe trois possibilits de complter une range. Il existe trois ranges adjacentes au lieu de deux, mais ces pions peuvent tre sortis de deux manires au lieu dune.

Les valeurs possibles de chacune des caractristiques sont comprises dans l'intervalle [0,4]. Il est intressant de constater quon ne peut pas reconstituer la position en nutilisant quun seul des quatre groupes de caractristiques ci-dessus. Par contre, on peut, dans un damier 4x4, reconstituer le damier une symtrie prs en utilisant a) et b). On aurait aussi pu prendre comme caractristique le nombre total de pions de chaque joueur, mais cette information est redondante avec a).

5.2.

Rseau de neurones

Nous avons utilis un rseau multicouche avec 44 units dentre, 30 neurones en couche cache et 1 neurone en sortie. Ici aussi, cette configuration a t choisie aprs de nombreux essais. La fonction de transition utilise pour chaque neurone est la sigmode donne par la formule (1.4).

14

Utilisation d'un RNA comme fonction dvaluation dun jeu

Les entres correspondent aux caractristiques de la position donne; leurs valeurs sont comprises entre 0 et 1 (on a simplement divis chaque caractristique par 4). Les entres peuvent donc valoir 0, 0.25, 0.5, 0.75, ou 1. La valeur donne par le neurone de sortie est un nombre rel pouvant prendre toutes les valeurs comprises dans lintervalle [0,1]. L'chelle est la suivante: 0.5 correspond une position nulle, 0 une position perdue et 1 une position gagnante. Remarquons au passage que ce rseau est beaucoup plus grand que celui utilis avec la premire mthode.

5.3.

Rsultats obtenus

Les rsultats obtenus furent dcevants. En effet, malgr de nombreux essais, on na jamais pu obtenir des rsultats comparables ceux obtenus avec la premire mthode, bien que l'apprentissage se soit bien pass. Cela vient sans doute du fait que lon donne moins dinformations au rseau en entrant des caractristiques quen codant directement la position. De plus, les caractristiques choisies ne sont peut-tre pas les plus pertinentes. Remarquons enfin que bien que l'on ait moins d'informations, paradoxalement le nombre d'entres du rseau est plus grand. Bien que cette mthode nait pas bien fonctionn dans le contexte du push-over, il est possible quelle donne des rsultats avec des jeux plus compliqus ou information incomplte comme les jeux de cartes par exemple.

6.
6.1.

Conclusion
Critique de la mthode

Nous tirons ici les conclusions de notre travail.

Ce travail a montr que lon pouvait utiliser les rseaux de neurones dans la thorie des jeux. En effet, on peut utiliser la mthode dcrite pour dautres jeux comme par exemple lOthello, les dames, go-moku, etc. Une proprit intressante est que l'on ne peut pas prvoir le coup de l'ordinateur si l'on ne connat pas les poids synaptiques du rseau; en effet rien n'indique qu'il jouera le meilleur coup possible (celui de l'expert): cela dpendra de sa manire de gnraliser. Un autre intrt de la mthode dcrite est quelle peut aussi sappliquer dautres domaines, notamment la reconnaissance des formes et la classification. La contrainte majeure est la ncessit d'un expert, soit un humain, soit un ordinateur. Il faut dire aussi quil faut beaucoup de temps pour dterminer un bon rseau multicouche et de bons chantillons dapprentissage. Un autre inconvnient est que le temps de calcul de la fonction dvaluation est beaucoup plus important que dans un programme classique, mme en tant fut (en tabulant la fonction sigmode par exemple), et mme en utilisant des rseaux aussi petits que possible. Dans un jeu, o linteraction humain-ordinateur est trs importante, cela constitue un dfaut majeur: il est en effet trs dsagrable d'attendre que l'ordinateur daigne jouer son coup. Il est dailleurs curieux que les autres articles sur le sujet ne parlent absolument pas du temps de calcul...

6.2.

Travail futur

Il pourrait tre intressant de voir dans quelle mesure les rseaux de neurones peuvent aider diminuer la profondeur de la recherche dans les arbres de jeux. Nous avons en effet constat, comme Corsi et Nol dans [Cor90], quun rseau de neurones jouait presque aussi bien et parfois mieux quun programme classique, tout en utilisant une profondeur de recherche plus faible. Le rle de lexpert est trs important, comme on la vu au paragraphe 4.7. Il serait intressant de dvelopper une mthode o aucun expert nintervient. Mais rien nindique que cela soit faisable: si lon observe le comportement humain, on se rend compte que le rle du matre est

Utilisation d'un RNA comme fonction dvaluation dun jeu

15

tout fait indispensable pour apprendre, que ce soit dans le domaine des jeux o dans la vie en gnral.

Rfrences
[Ama92] [Ber79] [Cor90] [DeJ88] Amaldi E., Apprentissage supervis dans les rseaux en couches, XIIIe cours postgrade en informatique technique, EPFL, 1992 Berliner H., On the construction of evaluation functions for large domains, International joint conference on artificial intelligence, IJCAI-79, Tokyo, pp. 53-55 Corsi P., Nol H., Validation dune approche neuronale dans le contexte de la thorie des jeux, Proceedings of Neuro-Nmes 1990, pp. 287-300 De Jong K. A., Schultz A. C., Using experience-based learning in game playing, Proceedings of the 5th international conference on machine learning, 1988, pp. 284290 Elcock E. W., Murray A. M., Experiments with a learning component in a gomoku playing program, in Collins, Dale, Michie, Machine Intelligence 1, Edinburgh University Press, 1967, pp. 87-103 Griffith A. K., A comparison and evaluation of three machine learning procedures as applied to the game of checkers, Artificial Intelligence 5, 1974, pp. 137-148 Koffman E. B., Learning games through pattern recognition, IEEE transactions on systems science and cybernetics, Vol. SSC-4, No 1, March 1968 Lee K.-F., Mahajan S., A pattern classification approach to evaluation function learning, Artificial Intelligence 26, 1988, pp. 1-25 Le-Ngoc T., Vroomen L. C., Programming strategies in the game of push-over, IEEE Micro, August 1982, pp. 58-68. Aussi in Levy D. N. L, Computer games II, Spriger-Verlag, 1988, pp.461-474 Minoux M., Programmation mathmatique: Thorie et algorithmes, Tome 1, Dunod, Paris, 1983 Putter G., Smeets J. J., Some experience with a self-learning computer program for playing draughts, in Levy, Beal, Heuristic programming in artificial intelligence: the first computer olympiad, Ellis Horwood Limited, Chichester, 1989, pp. 176-194 Resnik Ph., A simplified version of the GRADSIM neural network simulator for feed-forward learning problems Rumelhart D. E., Hinton G. E., Williams R. J., Learning representations by backpropagation errors, Nature 393, 1986, pp. 533-536 Samuel A. L., Some studies in machine learning using the game of checkers, IBM Journal of research and development 3, July 1959, pp. 211-229 Samuel A. L., Some studies in machine learning using the game of checkers II: recent progress, IBM Journal of research and development 11, November 1967, pp. 601-617 Sejnowski T. J., Tesauro G., A parallel network that learns to play backgammon, Artificial Intelligence 39, 1989, pp. 357-390 Shannon C. E., Programming a computer for playing chess, Philosophical magazine, Serie 7, Vol. 41, Number 314, March 1950, pp. 256-275

[Elc67]

[Gri74] [Kof68] [Lee88] [LeN82]

[Min83] [Put89]

[Res90] [Rum86] [Sam59] [Sam67]

[Sej89] [Sha50]

S-ar putea să vă placă și