Wasp NN

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

User avatar
AdminX
Posts: 6347
Joined: Mon Mar 13, 2006 2:34 pm
Location: Acworth, GA

Wasp NN

Post by AdminX »

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
Alayan
Posts: 550
Joined: Tue Nov 19, 2019 8:48 pm
Full name: Alayan Feh

Re: Wasp NN

Post by Alayan »

If you want Wasp to lose its playing style, that would be a great way.
Frank Quisinsky
Posts: 6811
Joined: Wed Nov 18, 2009 7:16 pm
Location: Gutweiler, Germany
Full name: Frank Quisinsky

Re: Wasp NN

Post by Frank Quisinsky »

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:

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
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:

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
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
Last edited by Frank Quisinsky on Sat Nov 14, 2020 7:28 am, edited 8 times in total.
Frank Quisinsky
Posts: 6811
Joined: Wed Nov 18, 2009 7:16 pm
Location: Gutweiler, Germany
Full name: Frank Quisinsky

Re: Wasp NN

Post by Frank Quisinsky »

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
jstanback
Posts: 130
Joined: Fri Jun 17, 2016 4:14 pm
Location: Colorado, USA
Full name: John Stanback

Re: Wasp NN

Post by jstanback »

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
jstanback
Posts: 130
Joined: Fri Jun 17, 2016 4:14 pm
Location: Colorado, USA
Full name: John Stanback

Re: Wasp NN

Post by jstanback »

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
User avatar
AdminX
Posts: 6347
Joined: Mon Mar 13, 2006 2:34 pm
Location: Acworth, GA

Re: Wasp NN

Post by AdminX »

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
Frank Quisinsky
Posts: 6811
Joined: Wed Nov 18, 2009 7:16 pm
Location: Gutweiler, Germany
Full name: Frank Quisinsky

Re: Wasp NN

Post by Frank Quisinsky »

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.
jstanback
Posts: 130
Joined: Fri Jun 17, 2016 4:14 pm
Location: Colorado, USA
Full name: John Stanback

Re: Wasp NN

Post by jstanback »

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