Train your engine !
Posted: Tue Oct 26, 2021 10:47 am
There are several engines that use a learning algorithm, the best known are :
- brainlearn
- eman
- sugar
How it works ?
After each game, the engine saves in a experience file whether its moves are winners, draws or losers.
Before each game, the engine loads the experience file to get a better evaluation of its moves.
For the following examples, I chose Eman because :
- its source code is not public
- he hinders his competitors
- it allows to choose the experience file
- it displays the information contained in its experience file (thanks to the builtin commands "exp" and "expex")
- it allows to defragment the experiment file (thanks to the builtin command "exp-defrag")
- it allows to merge multiple experience files (thanks to the builtin command "exp-merge")
- there are different tools to modify/check the experience file (tools for eman/sugar chess engines)
Learn openings :
if Eman lost a game from a particular opening, it may be worthwhile to analyze in depth each move in that game.
So that Eman understands his mistakes and finds better moves in order to avoid to loose this again.
Eman can also play multiple games from this opening so that it could learn how to snatch a draw from an unfavorable position or get a win from a draw position.
It can take up to 500 or even 1000 games.
Here is a summary of a few openings where [Eman experience] tried to learn something against [Eman only] :
[Eman only] didn't used an experience file and [Eman experience] started with an empty experience file.
Settings : both engines used 8 threads (e3-1275v2), a hash of 512 MB, no contempt, no syzygy, no book, no livebook, strongest net handled by the engines, cutechess-cli (concurrency 1) ran 2000 games with reversed colors at a time control of 60 sec + 1 sec.
- brainlearn
- eman
- sugar
How it works ?
After each game, the engine saves in a experience file whether its moves are winners, draws or losers.
Before each game, the engine loads the experience file to get a better evaluation of its moves.
For the following examples, I chose Eman because :
- its source code is not public
- he hinders his competitors
- it allows to choose the experience file
- it displays the information contained in its experience file (thanks to the builtin commands "exp" and "expex")
- it allows to defragment the experiment file (thanks to the builtin command "exp-defrag")
- it allows to merge multiple experience files (thanks to the builtin command "exp-merge")
- there are different tools to modify/check the experience file (tools for eman/sugar chess engines)
Learn openings :
if Eman lost a game from a particular opening, it may be worthwhile to analyze in depth each move in that game.
So that Eman understands his mistakes and finds better moves in order to avoid to loose this again.
Eman can also play multiple games from this opening so that it could learn how to snatch a draw from an unfavorable position or get a win from a draw position.
It can take up to 500 or even 1000 games.
Here is a summary of a few openings where [Eman experience] tried to learn something against [Eman only] :
[Eman only] didn't used an experience file and [Eman experience] started with an empty experience file.
Settings : both engines used 8 threads (e3-1275v2), a hash of 512 MB, no contempt, no syzygy, no book, no livebook, strongest net handled by the engines, cutechess-cli (concurrency 1) ran 2000 games with reversed colors at a time control of 60 sec + 1 sec.