|
|
|
THE
DISTRIBUTED CHESS PROJECT![]()
Creating Chess-Playing Artificial Neural Networks with Distributed Evolutionary Algorithms
Download | Client Doc | The Project | Results & Stats | Links | Feedback | The Press | Bugs | Home
Overview
This is a distributed computing project in the field of artificial intelligence. The goal is the creation of chess-playing artificial neural networks using distributed evolutionary algorithms for the training of the networks. The training is performed using a program to be installed on the computers of project participants. A server provides data specifying computational tasks and accepts the results once a client is finished. Then a new task will be assigned.
"How can I help?" you ask. It's simple, run the client or - provided you have a web site of your own - link to this site, because

The client, by the way, comes with an attractive screen saver that displays historical chess games. Included are the games from Bobby Fischer's book 'My 60 Memorable Games'. Finally, in order to fulfill certain legal obligations, I have to state the obvious fact that The Distributed Chess Project is not responsible for the content on any of the external web sites it links to.
Latest News
04/26/03
Almost three month without update and just one complaint. That's
pretty amazing considering that there are still plenty of clients
out there trying to find better neural nets.
Now, here is the state of the project as I see it: While I do think that the results are remarkable, I don't see how they can ever pass the 'So-what-test' as far as actual applications in computer chess are concerned. Even in case that there is a configuration that allows to push the performance up to 50% for any given problem set, all one could hope for is an application for improving move ordering in a traditional tree search algorithm. And guess what? There already exists a patent for this kind of neural network application.
Taking all this into account, my interest in the project has suffered a steady decline during the past couple of month. Therefore I won't develop the program any further - there, I've said it - but I won't quit without thanking everybody who has participated and supported the effort. Anyway, the server will stay on-line for the time being and there will be updates of the results tables as long as results keep coming in. Who knows, maybe we are in for a surprise ...
Finally I'd like to promote my new site. It will be about 3D-simulations of dynamic systems. There is nothing on it yet, but I'm going to post a demo shortly.
02/01/2003
Well, I guess it is about time for an update, even
though there isn't much new to report at this time. I havn't made
any significant progress on the stuff I announced the last time.
This is due to the fact that I'm quite busy with unrelated stuff
to the extent that I had to reduce the time spent on the project.
Anyway, here are the latest results.
01/11/2003
A year after its start, the project has attracted more than 500
registered participants (see the latest results for confirmation). This is not in the
league of some of the better known DC projects, but pretty
respectable none the less. Pascal Gounet mailed me scans of an article in the magazine Science et Vie that
mentions the project.
There is an automatic client update
available. I have made a change to the task status report: It now
shows the generation during which the best candidate neural
network has been discovered.
Moreover, the mutation probability is not a constant anymore, but
rather a function of the population diversity. When diversity is
low, the mutation rate will increase and vice versa. The effect
of this measure is that the diversity will stay in the range of
50% instead of dropping to below 10%. We'll see whether this will
produce better results.
One more thing, from now on I'm going to update the website on a more irregular basis than before. So check back frequently for further updates.
12/27/2002 (expected date
for the next update: 01/10/2003)
The best results for
the 150 QqRrNnBb-problems so far are approximately in the same
range as those for the endgame problems, i.e. up to 25%. In
comparison to the expected perfomance for guessing the best
moves, which is about 2.5%, this is pretty impressive by itself.
After all, the best neural network results are better by a factor
of 10.
Since the project is about to celebrate its first birthday early next year, it is appropriate to summarize what has been achieved so far. What, if anything, do the results show? Well, they show that with a likelihood significantly higher than pure chance, it is possible to come up with the best move in an arbitrary chess position just by processing the pattern presented by the position without using any of the classical search algorithms. On the downside, the performance is not good enough to be of practical use in computer chess, yet. In comparison to the Fritzes and Juniors there is just no contest. However, I can think of several promising approaches to improve on the present performance. Two of them are
Use different network structures
Use different input pattern representations
Either one might make the resulting networks more effective. Since both approaches involve considerable modifications to the client, the implementation is going to take some time. So, let the client run for the time being, you just might stumble on a winner.
Have a happy new year!
12/21/2002 (expected date
for the next update: when the first results for the new
QqRrNnBb-problems come in)
Check out the latest results. As expected, the test performance for the
RrPp-endgames doesn't get much higher than 20%. Moreover, one can
see plenty of evidence for overfitting, which is the case for
those networks that perform much better during training than on
the test set.
Today I have uploaded a new set of problems belonging to the other end of the spectrum, so to speak. The selection condition was the presence of both queens and at least one rook, one knight and one bishop for both colors, thus the name QqRrNnBb. The probability to find the best moves by chance is just 2.5% on average, so I'm really curious, how the networks will fare on this set. 50 of 200 problems are designated for training, the rest for testing the trained networks. The size of the file is about 1MB, so please be patient when the client downloads.
Since this is the last update for at least one week, I'd like to take this opportunity to wish all of you a merry Christmas and thank you for participating in the project.
12/14/2002 (expected date
for the next update: when the first results for the new
RrPp-endgames set come in)
The latest results for
the randomly selected endgame problems clearly indicate that the
neural nets do in fact learn some chess. The best ones have a
significantly higher success rate than one would expect by simply
guessing the moves for the presented problems. However, the
results aren't good enough to improve on what even the weaker
conventional chess programs can do.
When you compare the new result tables with the archive, you'll probably notice slight
shifts in the rankings due to changes in the column corresponding
training performance. The reason is a bug I discovered and
fixed in the Perl scripts which build the results tables. Sorry
about that.
I have just uploaded the promised problem
set consisting of 239 RrPp-endgames. 50 problems will be used for
training, the rest for the test of the trained networks. Frankly,
I expect similar results to those with the first endgames set.
In order to explore as many different types of neural networks as
possible, you should take the opportunity and vary the network
parameters - i.e. weights range, number of nodes per hidden
layer, number of hidden layers, and slope of nonlinearity - at
the beginning of each new task .
After the server has collected a number of results for the new set, I'll let you work with another tactically oriented problem set. I'd like to see how representative the results with the first tactical problem set really are.
Apparently there has been an article about the project in the french magazine Science et Vie. I wasn't able to locate it on the web, but I'd like very much to get hold of it. Therefore I'll appreciate very much if somebody sends me a copy by fax. Send me a mail and I'll give you the number.
11/30/2002 (expected date
for the next update: 12/14/2002)
I've spent the last couple of weeks experimenting with various
training and test problem sets selected from the 9000+ problems
that are available here. It
seems that the composition of the problem sets is rather
important for the success of the genetic algorithm. If the sets
are too large and thus contain to many different features, the
neural nets are literally confused during training. Figuratively
speaking, they just don't know on which feature to focus, and
more often than not they focus on those features which are
present in the training set, but, by chance, are not present in
the test set. Therefore, before training the networks one must
construct something I'd like to call generalizable problem
sets, i.e. sets that contain not too many different features.
Since it is not known a priori what those features are and
whether they are contained in any given position, this is a
non-trivial task. Nevertheless, the results obtained with the
tactically oriented problem set clearly indicate that it is
feasible.
The solution approach I propose is an additional genetic algorithm that is sort of wrapped around the genetic algorithm that the client performs now. The task of this outer genetic algorithm, will be to come up with what one might call a neural discriminator or neural problem classifier that is capable of constructing generalizable problems sets. The sole objective of the outer algorithm will be to minimize the difference between training and test performances of the inner genetic algorithm used for training the problem solving networks. Note, that in order to evaluate a single individual from the population of problem discriminators just for a single time, one has to run a complete inner genetic algorithm on the problems produced by the disriminator that is to be evaluated. Therefore, either the number of generations or the population size for the inner algorithm must be reduced significantly in order to keep the overall computation time in check.
So, what I am going to do next is to implement the two cascaded genetic algorithms. To keep your clients busy until then, I am going to upload an additional problem file containing a number of RrPp-endgames. Let's see how far we can go with those rather specialized endgame problems using just the single genetic algorithm. And now, before I forget, here are the latest results you obtained with the tactical and endgame problems.
11/16/2002 (expected date
for the next update: 11/30/2002)
This information is not so new anymore, but on 11/07/2002 there
has been another 24 hour maintenace related down time of the
server. According to prohosting.com, they are changing data
centers. I don't think it was the last down time, either, because
there are certain problems accessing the server via ftp.
As some of you probably have noticed by
now, I have uploaded a new problem set containing endgames only.
This was possible due to the support provided by Lieven Clarisse
from Belgium, who prepared a FEN-file containing more than 3000
endgame positions. He also verified the solutions and suggested
to train specialized neural nets.
While the old problem set focuses on middlegame tactics, the new
one consists of endgame positions only. The first results for the
endgame problems are very much inferior to those for the
middlegame problems. Currently I'm trying to figure out, just
what might be the reason for this drop in performance. Any
suggestions from your side would be very much appreciated. One
further consequence of the poor preliminary results in the
endgame department is that the development of tournament play
among the neural nets has been suspended, at least temporarily. I
just don't think there is much of a point in letting the networks
play against each other or chess programs at this stage. If it
isn't possible to train them to near perfection on a limited set
of positions, how can one expect them to perform consistently on
a competitive level over the course of a whole game?
But why don't you have a look for yourself. The new results as well as some interpretations can be found right here.
11/02/2002 (expected date
for the next update: 11/16/2002)
Well, what do you know, my wish from 10/19/2002 actually came
true. The project was mentioned on Slashdot. Even though it wasn't on the front page, the project
got a noticeable boost out of it. This can also be seen on the results page: with respect to computation time, we
are almost through the 1000 days barrier. Still no better neural
net then the one we already know for some time, though.
It appears that my provider has solved a rather annoying problem. In the past, the HTML-code of my pages frequently got messed up when the server inserted the code for the banner that appears at the top of each page. Up to now, this hasn't happened again after the last maintenance down time.
10/28/2002 (expected date
for the next update: 11/02/2002)
Due to maintenance measures taken by my service provider, the
project server has been down for about 24 hours. Version 2.2 of
the client is available for download. It fixes a couple of additional Windows XP related
bugs which I have discovered recently.
10/19/2002 (expected date
for the next update: 11/02/2002)
As one can see in the latest results table, the number of participants as well as the
contributed computation time is increasing nicely. No improvement
in the performance department, though. But don't worry,
considering the time it took to get from 76% to 78%, that is to
be expected. This is the very reason why only a distributed
approach has a chance for success.
The project does have quite a number of steady contributors and regular visitors. But when I look at the overall stats, I notice that we could use some fresh publicity, since the number of new visitors is decreasing steadily. Therefore it will be much appreciated, if you - the steady participants - go ahead and promote the project on the web, e.g. write about it in news groups and so on. To get it mentioned on Slashdot or some similarly popular news site would be optimal, of course.
10/05/2002 (expected date
for the next update: 10/19/2002)
Besides the updated results table, there is nothing substantially new to
report. During the last two weeks, the project has acquired 31
new registered participants. Eight additional participants have
delivered candidate neural networks for the first time and the
total contributed computing time has grown by 118 days.
09/21/2002 (expected date
for the next update: 10/05/2002)
Now we have two candidates with 78% performance on the test set
(see the latest results). I'm
really curious how far it will go given enough time.
Meanwhile I'm pretty busy coding v3.0. As I've already mentioned elsewhere, v3.0 will have tournaments among neural nets at the core of the genetic algorithm. Starting with v3.0 it will also be possible for you to download individual neural nets from the server and integrate them into your population at the beginning of a new task. The goal here is the implementation of some peer-to-peer functionality such that the clients can actively exchange parts of their respective populations, thus realizing the vision of a truly distributed genetic algorithm.
Also on the agenda is the implementation of an interface between our neural nets and Tim Mann's WinBoard.
09/10/2002 (expected date
for the next update: 09/21/2002)
This is just to announce a bug fix. There was a problem with the
installer and Windows XP that prevented auto-start of the client.
So all XP-users who wondered why the Chess Saver client didn't
start automatically whenever their computer was turned on ought
to download and
install the fixed version. As far as I know, non-XP operating
systems are not affected.
On second thought, you might not want to download again. If that
is the case, you can fix the fault yourself using a registry
editor (e.g. regedit):
First you have to locate and open the key HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run.
The value for the entry Chess Saver must be
changed from "<Your_installation_folder>\ChessSaver.ex"
to "<Your_installation_folder>\ChessSaver.exe".
09/07/2002 (expected date
for the next update: 09/21/2002)
No improvement on the test performance (see the latest results). I have incorporated the source code of
Bob Hyatt's Crafty 18.15 into Chess Saver. Seems to be working, too. Crafty
18.12 has obtained a rating of 2613 on the SSDF list. So now there is a way to terminate a game between
two neural nets by employing Crafty as an objective referee.
Scroll down to 08/12/2002 in case you wonder why that might be
necessary. Anyway, this progress means that a major obstacle on
the way to version 3.0 with tournaments among the populations has
been removed.
08/29/2002 (expected date
for the next update: 09/07/2002)
This update is one day early, because we have an improvement to
78%! Well, it seems patience pays. Check the latest results, where I have established an archive of
previous result pages in order to give you an opportunity to see
the development of the project.
08/26/2002 (expected date
for the next update: 08/30/2002)
Finally, the proxy issue has been resolved. Thanks again, Peter.
Anybody who ever had problems connecting to the project server
via a proxy server should download and install the update.
08/20/2002 (expected date
for the next update: 08/30/2002)
Nothing really new today except the nice fact that the project is
close to one full year of contributed computing time (see the
latest results). I'm
still struggling with the proxy problem.
08/12/2002 (expected date
for the next update: 08/20/2002)
While I was on vacation, two participants have encountered
problems when trying to submit results via a proxy server that
requires authentication. The problems seems to be that sometimes
Windows is able to find out the proxy server name and the port
number on its own and sometimes it is not. I will fix this
problem as quickly as possible.
There is still no improvement on the maximum test performance. But it is still early in the ball game, so let the client run (see the latest results). Implementing chess tournaments among the population is trickier than I thought. The major problem concerns those games that will run on and on without mate or a trivial draw. And I believe there will be plenty of them. Remember, these are stupid artificial neural nets playing. Since you don't want those games to run forever, they have to be terminated eventually. The question is then, how to evaluate a given position objectively. That means for instance to detect that the resulting position is even and the game is therefore a draw after a certain number of moves has been exceeded. Since I am not a chess programmer, I would greatly appreciate any ideas.
07/20/2002 (expected date
for the next update: 08/12/2002)
The good news is that there are more and more active participants
returning candidate networks. The total contributed computing
time is also accumulating rather nicely. In so far the
distributed chess project is a success, already. Thanks a lot,
people! On the other hand one cannot avoid to notice that still
nobody has been able to come up with a neural net that does
better than 76% on the test problems (see the latest results).
Well, I guess it's time to take the next step, anyway. That means
I will start to implement tournament play into the genetic
algorithm to get a bit closer to the real thing.
07/14/2002 (expected date
for the next update: 07/21/2002)
Nothing new from the test performance front. I have changed the results table somewhat. Besides the test
performance, it now shows the corresponding training performance
as well.
07/08/2002 (expected date
for the next update: 07/16/2002)
Well, the scripts are in place and the next results update is available. As far as the best
test performance is concerned, we are still stuck at 76%,
however.
07/02/2002 (expected date
for the next update: 07/09/2002)
The first actual results are released today. At the time of this
writing 230 people have downloaded the Chess
Saver 2.0; 72 client installations have
completed the initial task; 16 participants have
delivered neural nets with a certain amount of chess-playing
ability. For details have a look at the results. The next update will have to wait until I
have some scripts in place that automate analyzing the feedback
from the clients.
Finally, I'd like to ask everybody again: Please report any unusual program behaviour, crashes, whatever. Without this cooperation from your side I don't have a chance to fix the problems.
06/23/2002 (expected date
for the next update: 06/30/2002)
As of today the long awaited version 2.0 of the Chess Saver
distributed computing client is available for download. It runs on the Windows platform (Windows 95, 98,
NT, 2000). On Windows XP it has not been tested, but I don't
expect any problems.
For the first time, the new version implements a genetic algorithm to train multi-layer-perceptron neural networks on sets of chess positions with known best continuations (e.g. endgame studies, mate in n moves, white to move and win, ...). See the project for a comprehensive description of content, methods, and goals.
The main new features of Chess Saver 2.0 are ...
... the installation routine places links to the Chess Saver components into the Windows Start menu,
... feedback at a glance on the progress of the evolution,
... an option to run the client either permanently in the background or in screen saver mode (also new: you can run any screen saver you like besides the chess screen saver).
... proxy server support,
... an option to have the client connect to the server automatically once a task is finished,
... a possibility to view the status of the evolution anytime in terms of computation time, current generation, current best fitness and population diversity,
... an option to modify the key parameters of the algorithm before a new task starts (e.g. number of generations, population size, number of hidden layers, number of nodes per hidden layer, ...).
The last feature is what sets this project apart from other distributed computing efforts on the web: Users can actively participate by shaping the search for chess-playing neural nets. On the other hand, if somebody is not inclined to do so, she may just install the client and forget all about it.
For details on the handling of the client, have a look at the documentation.
The first task right after installation is just a very quick one to check the data transmission. After that you will get data for the first real task.
Last but not least, a plea for assistance: I have tested the software extensively and removed more bugs in the process then I care to count. By now the client is running absolutely stable on my machines. Nevertheless, I am sure that there will be bugs which I did not discover. If you encounter one of them, please don't just swear at me and uninstall Chess Saver, rather let me know about it with a detailed description of the symptoms and circumstances so I have a chance to take care of the problem.
Please direct questions, suggestions as well as reports of broken links and bugs to Ralf Seliger.
Copyright (c) 2002-2003 by Ralf Seliger. All rights reserved.