Chessterfield - Comme Robinson dans la crise spécial jeux gratuits

Rechercher
Aller au contenu

Menu principal :

Jeux de réflexion > Grands classiques

Chessterfield CL i5a, moteur à apprentissage profond



La découverte de ce vieux moteur d'échecs oublié de tous a été une véritable surprise. Je cherchais des joueurs faibles, entre 1000 et 1500 Elo, pour offrir des adversaires à la portée de joueurs enfants et/ou débutants quand je l'ai débusqué dans un classement de moteurs de troisième rang. Par chance, j'ai pu trouver à télécharger tous les fichiers.
Quelle ne fut pas ma surprise de découvrir que 18 ans avant AlphaZero, 13 ans avant Rhetoric, Matthias Lüscher avait exploré la piste du réseau neuronal à apprentissage profond, le fameux deep learning. Utilisé depuis peu pour le go et les échecs, elle a permis de spectaculaires percées. Mais à la fin du siècle, on savait à peine ce que c'était. Matthias Lüscher travaillait littéralement à contre-courant, sur la piste d'avenir.  


Titre

Genre

Plateformes

Note

 

Chessterfield

Moteur d'échecs

Windows

*****


L'auteur a donc doté Chessterfield d'un petit réseau de neurones artificiels à trois couches. Parallèlement il a conçu un module d'apprentissage chargé de constituer le fichier de "poids" pour le réseau neuronal, à partir de la lecture de plusieurs dizaines de milliers de parties.
La première version de Chessterfield a été diffusé en 1999 et la dernière version publiée date de 2000. L'auteur a vite abandonné son bébé, qui pourtant promettait. Il est vrai que les capacités des machines de l'époque ne devaient pas lui laisser beaucoup de chance de s'imposer. Un réseau neuronal demande beaucoup de puissance-machine et consomme beaucoup de mémoire vive. Mais aujourd'hui, nous avons les machines à la hauteur du moteur.


Téléchargement et installation

Chessterfield n'utilise aucune bibliothèque d'ouvertures pour ses premiers coups et c'est mieux car il joue une grande variété d'ouvertures inhabituelles. Il serait dommage de renoncer à cette diversité.  Par contre on peut lui adjoindre une petite table de finales, qui permet d'améliorer la qualité et la vitesse de son jeu en fins de partie.

Télécharger sur cette page :
http://home.datacomm.ch/m.luescher/download_cl.html
➤Le moteur Chessterfield i5a
➤L'utilitaire d'apprentissage Chessterfield EN
➤Le fichier de poids de John T. Grant
➤Le fichier de poids d'Arturo Ochoa
➤La table de finale (tout en bas de la page)

Créez un dossier  "Chessterfield", copiez y le fichier de poids que vous voulez lancer, l'exécutable du moteur et créez un sous-répertoire "data" où vous décompresserez les fichiers de finales.

Le moteur fonctionne parfaitement avec Arena, qui se débrouille très bien avec les vieux moteurs Winboard. Installation tout à fait standard : menu "Modules", "Installer nouveau module" et allez chercher le fichier "ChessterfieldCL.exe".

Si vous comptez utiliser plusieurs "personnalités" de Chessterfield (voir plus bas), le mieux est sans doute de copier avec un autre nom le dossier entier du moteur (avec la base de finales il pèse 22 Mo).



Beaucoup plus fort que prévu

Classé comme moteur faible avec un Elo estimé à 1550, Chesterfield n'a pas attiré l'attention. Pourtant, après lui avoir fait ingurgiter 81.000 parties de grands maîtres, j'ai obtenu un fichier de poids avec lequel sa force atteint au moins 1900 Elo. Il bat systématiquement tout moteur de 1800 Elo ou moins et gagne une fois sur deux ou obtient le nul contre Sissa (1955 Elo) et Faile (2000 Elo). Il lui arrive aussi de battre Alarm (2200 Elo). Le tout avec un style de jeu humain.
J'ai pu vérifier par la suite que le fichier de poids fourni par l'auteur était de force pratiquement équivalente. J'en déduis que le gain découle uniquement de l'augmentation de la force des machines d'aujourd'hui.  


Fichier de poids de jeunes maîtres


Emporté par mon élan, j'ai travaillé avec Scid vs PC sur les fichiers pgn avec lesquels j'ai obtenu  la première version de mon fichier de poids. En les rassemblant, je me suis rendu compte que j'avais pas loin de 15% de doublons. Logique, les Carlsen jouant avec les Anand,  les Anand avec les Caruana et les Caruana avec les Carlsen, il y avait forcément beaucoup de parties en commun.
J'ai créé alors un nouveau fichier de poids constitué de 62.000 parties sans aucun doublons des 25 plus forts joueurs de la dernière génération -  parmis lesquels quelques français. Celui-ci s'est avéré plus fort que tous les autres fichiers de poids dont je dispose, y compris celui de l'auteur (voir plus bas). Naturellement je l'ai appelé "Jeune maître".

Télécharger le fichier de poids "Jeune Maître" ?


Fichier de poids de maîtres anciens


Une autre idée m'est venue : réaliser un fichier de poids à partir de parties de joueurs du 18eme et du 19eme siècle. En grattant un peu partout j'ai pu rassembler dans un unique pgn 21650 parties de vieux maîtres, sans doublon. D'où son nom : Vieux maître.
Evidemment il est moins fort. Parce qu'il y a beaucoup moins de parties mais aussi parce que la science des échecs était beaucoup moins avancée et que le jeu des anciens était essentiellement offensif et tactique. Par contre, ce qui est flagrant, c'est qu'il joue très différemment de Jeune Maître. C'était bien le but. Vieux maître joue à la manière de son époque : très offensive. Il  sort vite ses pièces majeures sans se préoccuper de déployer son jeu et néglige de bouger ses pions, qui restent longtemps en arrière. Ou bien alors il ne mobilise que ses pions… C'est une expérience de jeu inhabituelle.  



Télécharger  le fichier de poids "Vieux Maître" ?

Il y a d'autres idées à exploiter. Par exemple rassembler des parties de joueurs essentiellement offensifs et tactiques : Nakamura, Mamedyarov, Kasparov, Bobby Fischer, Anderssen, Mikhaïl Tal, Topalov, Spassky, Alekhine… Et celles de joueurs positionnels et défensifs : Carlsen, Karpov, Steinitz, Vitiugov, Capablanca, Lasker, Botvinnik, Petrossian... Cela devrait permettre d'obtenir des jeux très typés, aux styles opposés.




Comment utiliser l'utilitaire d'apprentissage ?

Plutôt que d'intégrer le module d'apprentissage à son moteur, Matthias Lüscher a préféré développer une application séparée. L'inconvénient, c'est que le moteur ne continuera pas à apprendre directement de ses propres parties*. L'avantage, c'est la simplicité. Il suffit de rassembler toutes les parties dans un dossier, d'y copier l'exécutable "chessterfieldEN" avec  le fichier de poids vierge et de le lancer.
Attention, rustique ! C'est une simple application "console", à laquelle vous devez donner un à un le nom, sans vous tromper, des recueils de parties contenus dans votre dossier : "karpov.pgn", "carlsen.pgn", etc (inutile de mettre les majuscules).
Une fois le stock épuisé, vous écrivez "no" à la place d'un dernier nom de fichier pgn et vous lancez le travail. Quand elle a terminé de traiter toutes les parties que vous lui avez donné, l'application console créé un nouveau fichier de poids, appelé "network.dat", qui fait entre 800 et 850 Ko, jamais plus.
Sur une machine de bureau de puissance assez moyenne (processeurs rapides mais deux coeurs et 4 Go de ram seulement), j'ai pu lui faire avaler plus de 51.000 parties en moins de 3 heures.



Important : l'application console n'est pas capable d'ajouter un nouveau travail au contenu d'un précédent fichier network.dat. Il écrase l'ancien contenu et en produit un nouveau. Pour obtenir un bon fichier de poids, il faut donc lui donner un maximum de parties à ingurgiter en une seule fois ! C'est son plus gros défaut.


Problème éventuels

Je n'ai commencé à avoir des problèmes avec Chesterfield EN que lorsque j'ai voulu dépasser les 80.000 parties. J'ai identifié la cause d'un premier plantage à répétition : deux pgn de joueurs provoquaient  l'arrêt du programme. Pour les identifier, j'ai lancé les pgn un par un et j'arrêtais dès l'apparition du texte après les "petits points". Quand un pgn n'est pas bon ça plante avant l'apparition du texte (l'un des deux fichiers contenait une "partie" de Philidor qui n'était qu'une finale pion-tour).
Une seconde série de plantages m'a paru provenir de la quantité de données. Bien que les pgn soient bons, au delà d'un certain volume de parties, le module perd la boule. Je m'en suis sorti en faisant une sélection plus rigoureuse, en regroupant les parties dans un fichier unique et en supprimant les doublons avec Scid.

* Note importante de dernière minute :

Dans une vieille archive j'ai découvert que Chessterfield avait bel-et-bien la capacité d'apprendre en jouant.  Un fichier "Config.dat" très bien commenté en témoigne. L'auteur l'a fait disparaître du package fourni sur son site. Quel cachotier ce Matthias ! Mais on le comprend : ce fichier a pour but d'organiser un jeu automatique avec une interface obsolète (Winboard) et 7 moteurs eux-aussi totalement obsolètes. Une source inépuisable de questions !
Selon toute évidence, c'est de cette façon que l'auteur a obtenu son propre fichier de poids. Lequel procure au moteur un jeu nettement moins bon que celui d'Ochoa ou le meilleur des miens.
De mon côté, pas question de me pencher sur une interface d'échecs de plus, uniquement pour un seul moteur. D'autant que la démarche d'apprendre à jouer à Chessterfield avec le jeu de divers bots va à l'encontre de ce qui me semble aujourd'hui l'intérêt majeur de ce moteur : il peut apprendre à joueur comme un humain.
A ceux qui seraient tentés par l'aventure de tirer quelque chose de cette capacité d'auto-apprentissage limitée, je fourni
ici ce fichier dat. Merci de me tenir informés de vos progrès...


Les tournois qui mettent les pendules à l'heure

Pour jauger la force des différents fichiers de poids j'ai organisé avec Crafty Chess Interface un tournoi Round-Robin en trois manches, soit 30 parties, entre Jeune Maître, Vieux Maître, le fichier Ochoa, le fichier Grant et le fichier Lüscher (celui de l'auteur). Les parties étant assez longues (15 minutes/60 coups, + 10 minutes avec incrément de 30 secondes), j'ai laissé Crafty Chess Interface tourner pendant deux jours sur un ordinateur. Résultat final :

Jeune Maître : 8 points, Ochoa : 7,5 points, Lüscher : 5,5 points, Vieux Maître : 5,5 points et bon dernier, Grant : 3,5 points.

Par ailleurs j'ai comparé Jeune Maître à 4 moteurs assez proches en force : Winchess (réglé à 1800*), Cdrill (1880), Mustang (2040) et Alarm (2200). Le tournoi comprenait 5 manches, toujours en partie semi-rapide, menées par Arena. Résultat final :
➤5 parties sur 5 gagnées contre Winchess
➤5 parties sur 5 gagnées contre Cdrill
➤2 parties sur 5 gagnées contre Mustang
➤1 partie sur 5 gagnée contre Alarm.
Aucune partie nulle pour JM.
Pour les autres moteurs, la hiérarchie a été scrupuleusement respectée : le plus fort, Alarm, a battu  Cdrill et Winchess 5 fois. Contre Mustang il marque trois points et obtient deux nulles.



Dans un tournoi à 4 manches, Jeune Maître à gagné 2 parties sur 4 contre Obender (2200). Contre Phalanx XXIV (plus de 2500 Elo), il perd logiquement 4 parties sur 4.
De ces résultats je déduis que Jeune Maître se situe approximativement à 2000 Elo. Pas mal pour un si vieux moteur !


Style de jeu très variable

Chaque fichiers de poids de Chessterfield joue de manière différente mais ils ont certains traits communs.  Leurs capacités tactiques sont assez modérées, la complexité de leur jeu évoluant toujours entre bas et modéré. N'espérez pas voir Chessterfield se lancer dans des combinaisons tactiques audacieuses à la Tal. Il a une préférence naturelle pour la position, qui va, selon les parties, de moyenne à très haute.  
Il n'en reste pas moins que ce moteur est très "plastique". Le style de jeu change avec le  fichier de poids utilisé, mais aussi, avec un même fichier de poids, en fonction probablement du jeu de l'adversaire qu'il affronte.  La préférence pour la position, l'activité des pièces, la facilité à l'échange peuvent varier énormément d'une partie à l'autre. Il ne joue jamais non plus les mêmes ouvertures. Cette variabilité est ce qui rend Chessterfield aussi sympathique et "humain". Et doit en faire un adversaire privilégié du joueur moyen.

Rob Rob, avril 2019


Droits d'auteur

A l'exception de courtes citations créditées et mentionnant la source, les textes de Robinson Jeux ne peuvent être copiés sans mon consentement. Par contre, toutes les ressources que j'ai moi-même produites - tels les traductions en français, les fichiers de configuration modifiés et les profils de personnalité des moteurs d'échecs , adaptés ou créés de toutes pièces - sont freeware et donc librement diffusables sans mon autorisation - du moins dans un cadre STRICTEMENT NON-COMMERCIAL.



*Dans les classements, Winchess est donné pour 2300 Elo.

 




 
Retourner au contenu | Retourner au menu _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })();