CoPilot
Guess the Move - A New training method
A new and more effective method of training algorithmsTraining is vital for any algorithm to be effective. The method I used earlier was playing games against Stockfish. But more recently, I found a much more effective method of training. It's called "Guess the Move."
Explanation
The method is straightforward: I download a game between two strong computers and find the position where they left the book. From that point forward, I attempt to predict the moves of the winning side. If I get it right, that's fantastic. But if I get it wrong, I try to adjust how I should use the algorithm to find the correct move. Using computer games is crucial for training an algorithm, as human players might not always win by playing accurately. I considered using a tablebase for more accuracy but opted for games from TCEC and AlphaZero instead so that there is more focus on the middle game and opening strategies.
Guess the Move in action
For this article, I will analyze 20 moves of a game played by Stockfish and Lc0 in the TCEC season 27. This will give you a better understanding of how to use this training method.
7...Nxd4 - End of book
9.g3 - Lesson: Take at least 1 minute to construct the list of plausible moves. Reason: I didn't even consider g3
Be2 is the move I came up with. I thought the position was simple enough to find the best move in such a short amount of time, but Stockfish played a move I didn't even consider. I only considered Be2, Be3, Bf4 and Bc4.
11.0-0 - Lesson: If you are not sure about a position, go deeper. Reason: I would have realized giving up the pawn was fine if I had gone deeper
Bd2 is the move I came up with. I did consider 0-0, but I wasn't sure about the position after Bxc3 bxc3 Qxc3. But I was sure that none of the lines after Bd2 could be unfavourable for white. Hence, I played it without going much deeper to see if 0-0 was fine.
12.Ne4 - Lesson: Broaden your candidate move list when you have time to calculate. Reason: I didn't consider Ne4.
a3 Bxc3 bxc3 Qxc3 Bg5 is what I thought to be the best. According to this engine, it is also better for white, but I should have at least considered Stockfish's move. The moves I thought about were a3, Bf4, Bd2 and Re1.
14.Bh6 - Lesson: Come up with a separate method for pruning (narrowing) the search tree. Reason: I didn't consider Bh6 because intuitively I felt like this move didn't match the position.
Bg5 is the move I came up with. This. But Stockfish again finds a move that I didn't even consider. The reason I didn't consider Bh6 was that I was using my intuition to prune the search tree. This method clearly doesn't work.
16.Nc5 - Lesson: Use a best-first search tree (calculate better moves deeper). Reason: If I had given more attention to Nc5, I would have seen that giving up the b2 pawn was fine.
b3 was my pick for the position. This also gives white a pleasant edge, but Stockfish's move was way better. I wanted to prepare Nc5 by defending the pawn, but Stockfish chose just to play it in one go.
Why is it more effective than playing against Stockfish?
This training method is definitely more effective, and there are a few reasons for why I say so:
- Efficient learning - You can gain more insight on how you should change your algorithm because you are analyzing the game move by move using your algorithm
- Accurate insights—Since you are using games played by computers, which are suitable for use as oracles, the insights you gain are more accurate.
- Experience in algorithm usage - Sometimes during games, you are not using the algorithm for every single move since you sometimes just want to finish the game. But here, you are more driven towards using your algorithm on each move. This is learning, playing is goal-seeking, at least, most of the time.
- Guaranteed improvement - There are some games where you don't learn anything important. My 16th game against Stockfish is a good example for this. But when analyzing computer games, there is always something to learn, which guarantees improvement.
Final words...
I hope you enjoyed this article and gained something from it. Anyone can benefit from this method, whether you are a club player or a master. I have been using it for about 5-6 months now, and it has brought immense success to me. Move guessing has been around since the beginning of chess, but for it to be effective for learning, it has to be used systematically and consistently. Follow this method closely, and I am certain you won't be disappointed at the results.
And that's it for today, see you in the future!
Also, the algorithm I discussed in this article was made to defeat Stockfish. If you are interested in fighting against computers and believe in the chances of the human race, consider joining the Club of Believers.
