leela-chess
leela-chess copied to clipboard
Test the training pipeline
A number of properties in self play and learning are important for the project, but hard to test other than to run self play and see the result, and then gamble from the elo graph if the software works. To list a few: Training should be able to train down a move the network likes but is suboptimal. Training should be able to train up a move that the network likes but is not yet the top move. Training should be able to find new moves that are not suggested by the network, but are actually more optimal. Training should not forget about good moves.
To test these properties, we need candidate positions like https://docs.google.com/spreadsheets/d/1884-iHTzR73AgFm19YYymg2yKnwhtHdaGyHLVnffLag/edit#gid=0 and also a network that likes or dislikes the best move.
This test does not need to be based on the current best network, so it's enough to have a number of positions and a number of networks for each position that fall in the different categories of liking the best move, knowing best top move and not knowing the best move etc.
Next we run the following experiment:
Take a board position and network, and start self play from the given position1. Do this for ~100 games and then do a training cycle on the network, with approximately the same number of steps you would normally do, in proportion to the normal number of games (so normally about 50k steps for 40k games, you can now do 80 steps for 100 games).
Next track how the network % changes for the given problem.
This experiment wont produce very useful networks (they will be heavily over fit for the tested position), but it does indicate if the given value for training (FPU, LR, Noise and all other :crystal_ball: values) are going to be successful.
It would also be a good indication if LCZ can learn certain tactical problems, and how many iterations it's going to take. Optimally the network would convert towards the best move and away from suboptimal moves after a few training cycles.
1: probably best if it has some history