Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: What is "learning"?

Author: Russell Reagan

Date: 01:40:03 06/25/02

Go up one level in this thread


I think for a NN approach to work succesfully it will have to have seperate NN's
for a ton of different aspects of the game, which are much simpler. I think
maybe a system where we clearly know the best moves, such as the endgame
tablebases, will also be needed. My idea would go something like this...

To train your engine to play a K+B+N vs. K ending, you would use the endgame
tablebases as your "guide", and you would have to teach the program what it's
aiming for. In the case of K+B+N vs. K, you are first aiming to drive the
opponent's king into the wrong corner, then you have to drive the opponent's
king down the side of the board into the right corner. I think there are a few
other little things like you have to allow the king a little room at one point.
I'm not 100% sure, but it will do for this example. So your program would learn
by using several NN's, one to learn how to drive the king into the corner, and
one to learn how to drive it down the side of the board. This could all be
automated of course, using endgame tablebases as the goal. Perhaps create a new
NN, make it learn how to play the next move, then see how many moves you can
make it learn before it won't play all of the moves correctly. At that point,
you create a new NN and train it on the "next stage" of the process. I think you
could make a program that would play 99% perfect endgames that agree with the
EGTB, at a much smaller storage size too, but this is essentially the same as
hard coding tons and tons of knowledge for every little special case. Of course
you could automate this, so it would be better.

Another idea I've had is to create a program that uses a process similar to what
I talked about above, and use a chess program as it's "goal". For example, the
program searches for a while, then after a while it gets a decent move, and the
NN is trained to play that move, then the NN is continually trained as many
moves deep as it can be trained until it doesn't play all of the correct moves
in the principle variation, and you create a new NN to learn the "next stage".
After the process was complete, you could somehow add the new knowledge into the
program, and repeat the process. Hopefully with each iteration, the program
would play a little better, and then it would learn how to play better. Then the
program would play better, and it would learn how to play better, and so on,
learning from itself. I don't know if this is possible, or if it would work.

Sounds like a good idea to me, but plain old NN's sound good too and they
clearly don't work for chess.

Russell



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.