Wasp NN
Moderators: hgm, Rebel, chrisw
-
- Posts: 6347
- Joined: Mon Mar 13, 2006 2:34 pm
- Location: Acworth, GA
Wasp NN
While I hope not I am curious to find out, if Wasp is planning on going NN as well since this seems to be the new norm?
"Good decisions come from experience, and experience comes from bad decisions."
__________________________________________________________________
Ted Summers
__________________________________________________________________
Ted Summers
-
- Posts: 550
- Joined: Tue Nov 19, 2019 8:48 pm
- Full name: Alayan Feh
Re: Wasp NN
If you want Wasp to lose its playing style, that would be a great way.
-
- Posts: 6811
- Joined: Wed Nov 18, 2009 7:16 pm
- Location: Gutweiler, Germany
- Full name: Frank Quisinsky
Re: Wasp NN
Alayan again ...
nice to meet you!
Admin X,
John is looking and make / made some experiments.
Neural Network is a topic for each of the programmers (very sure).
Parameters from Wasp are tuned by hand over a very very long time by many millions of games.
Neural Network will give _directly_ not a big advantage!
Most important is to hold the interesting playing style with aggressive pawns.
But:
Interesting is to find out "new" or "missed" parameters for endgames or for a better positional chess!
Programmers aren't super grandmasters with 3500 Elo or little Karpov's with such an enourmus positional understanding.
Should be clear for everyone.
Most chess programs with over 3000 Elo (own testing, +35 to CEGT) have a very strong endgame.
The goal from Wasp is the aggressive middlegame.
Examples from FCP Tourney-2020:
Places: 18, 20, 29, 35 from 41 participate engines ...
The endgame is the big problem!
Programs like Spark or Hakkapeliitta have comparable problems, OK Hakka can win and lost many games very fast. Spark havn't a big quote for short lost games.
Can be check with the second statistic to endgames:
First statistic give better information ...
But it's the same ...
Places: 17, 19, 32 from 41 participate engines ...
With lesser pieces on board the problems for Wasp are higher!
John have completly other problems as the most of other programmers I think!
Again, most of other chess engines, higher Elo as 3000, are very strong in endgames ... Wasp lost here a lot of strength.
Reason is clear:
Most interesting for Wasp is to simulate human styles.
Best humans lost after computer analyzes the strength in endgames.
Best grandmasters have with a good knowledge to openings a small advantage to chess programs.
The chance for grandmasters for a draw vs. best chess engines is the earlier middlegame higher!
Neural Network can help John to find good parameters for made the endgame better or to try to make the positional understandig better.
Not easy for him!
30 Elo more would be very nice for the next Wasp release.
From Wasp chess program we can't await Elo jumpings from over 150 Elo.
This need a lot of time, because each changed parameter will be test with many games by John.
Again, playing style is most important but for different endgames Wasp need a booster and more ply's.
Best
Frank
nice to meet you!
Admin X,
John is looking and make / made some experiments.
Neural Network is a topic for each of the programmers (very sure).
Parameters from Wasp are tuned by hand over a very very long time by many millions of games.
Neural Network will give _directly_ not a big advantage!
Most important is to hold the interesting playing style with aggressive pawns.
But:
Interesting is to find out "new" or "missed" parameters for endgames or for a better positional chess!
Programmers aren't super grandmasters with 3500 Elo or little Karpov's with such an enourmus positional understanding.
Should be clear for everyone.
Most chess programs with over 3000 Elo (own testing, +35 to CEGT) have a very strong endgame.
The goal from Wasp is the aggressive middlegame.
Examples from FCP Tourney-2020:
Code: Select all
Games ended with 60 moves
18 Wasp 4.00 Modern x64 : 3053.27 285 53.5 31 243 11 152.5 85.3 16.00 3029.41 17.97 37.8
Games ended with 60-80 moves
20 Wasp 4.00 Modern x64 : 3015.44 519 47.3 149 193 177 245.5 37.2 22.70 3045.17 24.99 38.8
Games ended with 80-100 moves
29 Wasp 4.00 Modern x64 : 2930.23 467 35.1 87 154 226 164.0 33.0 26.64 3057.09 28.38 38.5
Games ended with 100-300 moves
35 Wasp 4.00 Modern x64 : 2979.26 529 43.2 49 359 121 228.5 67.9 15.31 3029.87 16.59 37.8
The endgame is the big problem!
Programs like Spark or Hakkapeliitta have comparable problems, OK Hakka can win and lost many games very fast. Spark havn't a big quote for short lost games.
Can be check with the second statistic to endgames:
Code: Select all
Games ended with 2-6 pieces on board:
32 Wasp 4.00 Modern x64 : 2937.55 931 37.4 154 389 388 348.5 41.8 16.64 3041.13 17.16 39.5
Games ended with 7-12 pieces on board:
19 Wasp 4.00 Modern x64 : 3025.78 582 50.1 140 303 139 291.5 52.1 18.77 3028.91 20.00 38.9
Games ended with 13-32 pieces on board:
17 Wasp 4.00 Modern x64 : 3049.24 287 52.4 22 257 8 150.5 89.5 12.55 3032.36 14.76 37.7
But it's the same ...
Places: 17, 19, 32 from 41 participate engines ...
With lesser pieces on board the problems for Wasp are higher!
John have completly other problems as the most of other programmers I think!
Again, most of other chess engines, higher Elo as 3000, are very strong in endgames ... Wasp lost here a lot of strength.
Reason is clear:
Most interesting for Wasp is to simulate human styles.
Best humans lost after computer analyzes the strength in endgames.
Best grandmasters have with a good knowledge to openings a small advantage to chess programs.
The chance for grandmasters for a draw vs. best chess engines is the earlier middlegame higher!
Neural Network can help John to find good parameters for made the endgame better or to try to make the positional understandig better.
Not easy for him!
30 Elo more would be very nice for the next Wasp release.
From Wasp chess program we can't await Elo jumpings from over 150 Elo.
This need a lot of time, because each changed parameter will be test with many games by John.
Again, playing style is most important but for different endgames Wasp need a booster and more ply's.
Best
Frank
Last edited by Frank Quisinsky on Sat Nov 14, 2020 7:28 am, edited 8 times in total.
-
- Posts: 6811
- Joined: Wed Nov 18, 2009 7:16 pm
- Location: Gutweiler, Germany
- Full name: Frank Quisinsky
Re: Wasp NN
And to the others programs ...
The statistics, I posted before, can be found to each other of the 40 programs, participate FCP Tourney-2020.
Main goal for me and Klaus is to find out more about playing styles of TOP engines!
Klaus Wlotzka created a wonderful Excel table, often daily changed!
Can be download via ... www.amateurschach.de or can be found on the detail page to the still running FCP-Tourney-2020.
The still running FCP-Tourney 2020, biggest chess tourney ever played ... is more or less a beta test for TOP-41 with nice game and statistic material and with a complete documentation (Elo-evolution or other things). With the statistics by Klaus we can give answeres to many often discusses statistic topics.
Hope so ...
With FCP-Tourney-2021 we will working again on it to make the Excel tables better. For the moment and the last 5 rounds for FCP-Tourney-2020 we make a little break with new stats after all the work we had in the last months.
Best
Frank
The statistics, I posted before, can be found to each other of the 40 programs, participate FCP Tourney-2020.
Main goal for me and Klaus is to find out more about playing styles of TOP engines!
Klaus Wlotzka created a wonderful Excel table, often daily changed!
Can be download via ... www.amateurschach.de or can be found on the detail page to the still running FCP-Tourney-2020.
The still running FCP-Tourney 2020, biggest chess tourney ever played ... is more or less a beta test for TOP-41 with nice game and statistic material and with a complete documentation (Elo-evolution or other things). With the statistics by Klaus we can give answeres to many often discusses statistic topics.
Hope so ...
With FCP-Tourney-2021 we will working again on it to make the Excel tables better. For the moment and the last 5 rounds for FCP-Tourney-2020 we make a little break with new stats after all the work we had in the last months.
Best
Frank
-
- Posts: 130
- Joined: Fri Jun 17, 2016 4:14 pm
- Location: Colorado, USA
- Full name: John Stanback
Re: Wasp NN
A couple months ago I wrote an evaluation function that used a very tiny NN written in C. I tried NN's with 2 hidden layers having from 2-32 nodes each. I started with just piece/square as inputs and learned how to back-propogate error using my "normal" Wasp eval as the target. It learned to play reasonably well, but adding more nodes to the hidden layers didn't help enough to offset the speed hit. Then I started adding conventional eval features such as mobility to the inputs and used only 4 nodes for the first layer (2 for white inputs and 2 for black inputs) and 2 nodes for the second layer. Training consisted of doing random playouts of about 20 ply from an EPD file of positions chosen randomly from about 1M Wasp games. For the first 500M-1B training positions I used the Wasp 4.0 eval as the target. After that, I ran about 100 passes of the ~5M position EPD file using the game result as the target. It took less than an hour on one thread to train a network. This got within about 75 Elo of Wasp 4.0 in strength.
After this, I decided to re-write Wasp's conventional evaluation with tuning in mind. My old gradient descent routine was way too slow to tune all parameters simultaneously and do enough positions. The new eval has a structure for each term that contains the normal score (int packed with mg and eg values) but also floating point mg and eg values and an accumulated count that are used during tuning. I train it the same as the NN eval -- at each position a small fraction of the error is back-propogated to each input where there is a white/black difference. The new eval tunes at a rate of about 300K positions per second, so it takes less than an hour to simultaneously tune all eval features. I made some changes to the eval such as indexing the PST's based on whether the own king is on the king side or queen side (ie, if WK is on files a-d then a pawn on h2 would use the weight for a pawn on a2). And I'm now creating my EPD files for training using the method suggested by Andrew Grant to use the end position from an N-ply search instead of the actual position taken from games. So far, the new eval is giving close to a 50 Elo improvement over Wasp 4.0.
The new conventional eval and the NN eval are very similar, pretty much a network with about 6 perceptrons (I think). I may go back and re-write the NN eval and try adding more nodes to see if I get any improvement...
John
After this, I decided to re-write Wasp's conventional evaluation with tuning in mind. My old gradient descent routine was way too slow to tune all parameters simultaneously and do enough positions. The new eval has a structure for each term that contains the normal score (int packed with mg and eg values) but also floating point mg and eg values and an accumulated count that are used during tuning. I train it the same as the NN eval -- at each position a small fraction of the error is back-propogated to each input where there is a white/black difference. The new eval tunes at a rate of about 300K positions per second, so it takes less than an hour to simultaneously tune all eval features. I made some changes to the eval such as indexing the PST's based on whether the own king is on the king side or queen side (ie, if WK is on files a-d then a pawn on h2 would use the weight for a pawn on a2). And I'm now creating my EPD files for training using the method suggested by Andrew Grant to use the end position from an N-ply search instead of the actual position taken from games. So far, the new eval is giving close to a 50 Elo improvement over Wasp 4.0.
The new conventional eval and the NN eval are very similar, pretty much a network with about 6 perceptrons (I think). I may go back and re-write the NN eval and try adding more nodes to see if I get any improvement...
John
-
- Posts: 130
- Joined: Fri Jun 17, 2016 4:14 pm
- Location: Colorado, USA
- Full name: John Stanback
Re: Wasp NN
I forgot to mention that the new eval terms in are in centipawns and I initialize the values to something that seems reasonable from a human perspective. Tuning is then done using about 50 passes through an EPD file of about 13M positions. So far, I've only tried creating the training position file by having Wasp do a 3 ply search of random positions from games and saving the terminal position, search score, and game result. For the training "target" value I use 0.9*game_result + 0.1*score where game_result is 1.0/0.5/0.0 for W/D/L and ce is the search score adjusted to a range 0..1. I will try using deeper searches to see if it helps, but I suspect it won't make much/any difference.
John
John
-
- Posts: 6347
- Joined: Mon Mar 13, 2006 2:34 pm
- Location: Acworth, GA
Re: Wasp NN
Thanks both Frank and John for the feedback. I hope going NN will not cause Wasp to lose much of it's playing style. I look forward to seeing its progress.
"Good decisions come from experience, and experience comes from bad decisions."
__________________________________________________________________
Ted Summers
__________________________________________________________________
Ted Summers
-
- Posts: 6811
- Joined: Wed Nov 18, 2009 7:16 pm
- Location: Gutweiler, Germany
- Full name: Frank Quisinsky
Re: Wasp NN
Hi John,
thank you for the 1000x better information.
I build Wasp News-029.
Best
Frank
Hi AdminX,
John found really the genial playing style mix for the strength Wasp have.
King safty stats with many pieces on board are very very strong!!
I also hope that the style of play will not changed!
Can be see for Dragon-Komodo engine after complicated A80 / A81 opening systems.
In additional Dragon-Komodo is clearly stronger as Komodo 14.1 but for complicated opening systems the engine lost knowledge.
Same for lc0 or other NN engines. More holes!!
It's really an order to check NN ideas with complicated opening systems like dutch or kings indian lines.
Best
Frank
Back to John:
What I like a lot is this one:
http://www.amateurschach.de/t2021/engin ... %20x64.jpg
"eval.kingattack" ... standard = 100
100-1000 settings are possible!
Comes from Allard Siemelink, Spark 1.0!
Also a great attacker with very aggressive pawns after opening book moves and a great king safty with many pieces on board!
I wish me such or a comparable UCI parameter for one of the next Wasp versions!
My personal christmas wish I send John directly to Collorado!
Best
Frank
PS: Yesterday a nice won game vs. Shredder 13 in round 46/50.
thank you for the 1000x better information.
I build Wasp News-029.
Best
Frank
Hi AdminX,
John found really the genial playing style mix for the strength Wasp have.
King safty stats with many pieces on board are very very strong!!
I also hope that the style of play will not changed!
Can be see for Dragon-Komodo engine after complicated A80 / A81 opening systems.
In additional Dragon-Komodo is clearly stronger as Komodo 14.1 but for complicated opening systems the engine lost knowledge.
Same for lc0 or other NN engines. More holes!!
It's really an order to check NN ideas with complicated opening systems like dutch or kings indian lines.
Best
Frank
Back to John:
What I like a lot is this one:
http://www.amateurschach.de/t2021/engin ... %20x64.jpg
"eval.kingattack" ... standard = 100
100-1000 settings are possible!
Comes from Allard Siemelink, Spark 1.0!
Also a great attacker with very aggressive pawns after opening book moves and a great king safty with many pieces on board!
I wish me such or a comparable UCI parameter for one of the next Wasp versions!
My personal christmas wish I send John directly to Collorado!
Best
Frank
PS: Yesterday a nice won game vs. Shredder 13 in round 46/50.
-
- Posts: 130
- Joined: Fri Jun 17, 2016 4:14 pm
- Location: Colorado, USA
- Full name: John Stanback
Re: Wasp NN
Hi Frank!
I haven't implemented any UCI settings to vary the new eval terms yet, but I will probably add the ability to vary material values, pawn structure, passed pawns, and maybe piece activity.
John
I haven't implemented any UCI settings to vary the new eval terms yet, but I will probably add the ability to vary material values, pawn structure, passed pawns, and maybe piece activity.
John