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.