Since you’re here...

We hope you will consider supporting us today. We need your support to continue to exist, because good entries are more and more work time. Every reader contribution, however big or small, is so valuable. Support "Chess Engines Diary" even a small amount– and it only takes a minute. Thank you.
============================== My email: jotes@go2.pl



Chess engine: Little Goliath 3.16 NNUE

 


Little Goliath - Neural Network Version, UCI chess engine.
Author: Michael Borgstädt  Rating CEDR=3204

Little Goliath ("Evolution") - Neural Network Version
The engine uses a neural network for positional evaluation. In direct comparison with the old engine, which uses manually generated evaluation functions, this engine achieves almost 100% in over 1000 test games (only a few draw games). This is obviously significantly more than other programmes have achieved when switching to neural networks. 
However, it does not seem to be due to the net itself but to its effect on a pruning system, which I call "path finding pruning" and which seems to depend essentially on an exact position evaluation. If this pruning is deactivated in both engines, the NN version "only" wins with about 70%. If I leave the pruning activated in the classic engine and play against the same version without it, the version with pruning is only just ahead (approx. 52%). 
On fast hardware, this also corresponds to the results from about 16 years ago. Consequently, the neural network or the more exact positional evaluation seems to have an extreme effect here. 
This is an important approach for future programme versions, perhaps much more can be achieved by tuning (also other techniques). Another effect is the significantly lower search depth overall. Here, too, the network seems to have an effect, the search is shallower, but more accurate. Again, it will be an approach to pruning even more aggressively. I always thought the pruning in Little Goliath was very aggressive. 
However, when I look at Stockfish, it doesn't come close to being aggressive either. I rejected similar approaches at the time, because as a chess player I was of the opinion that tactical variants are of decisive importance for the strength of the game and that the pruning here should not be too intensive. Obviously a misjudgement, which I will look at more closely. In addition, "Sigular Extensions" are now activated by default. 
This was not the case before. Here, too, the net seems to have a positive effect. Since I am often asked, here is the information that I use singular extensions in the classic form. That is, as described by Hsu with regard to Deep Blue. 
I have only changed the conditions and considerably reduced the effort for testing for singularity (at the expense of accuracy). The method of controlling singular extensions via the hash tables, which is apparently used as "state-of-the-art" today, was already tested by me 20 years ago in many programme versions without success. 
Even today, with a 1:1 implementation as in Stockfish, I cannot achieve any improvement with Little Goliath (the opposite is rather the case). Why this is so will certainly be the subject of further investigation. Apart from that, I have not made any changes. As I said, my initial aim is to highlight the differences between the two versions (classic and NN). Unfortunately, that's why all the bugs (there were some back then, I didn't keep track) of the old version (from 2006) are still included then. The engine is available as a 32-bit version, which should also run on old hardware. There is also a 64-bit version that is about 25% faster. 
 A completely revised version will follow in a few weeks, then also with the extended networks. I am personally very curious to see what will be possible here.

v.3.16:
Many minor changes, bug fixes and optimisations of the code (for more speed).
Major improvement is the introduction of neural networks for extension and pruning decisions.
I have also experimented with networks for move ordering. Unfortunately without significant success (too much overhead).
Still no bitboard technology or smp. 
In the next step, I will probably integrate my pattern recognition from the old "Goliath Pro". Together with the bitboard structure there, as this should bring a lot of performance for move ordering (quality) and many other things (e.g. SEE).
My special thanks goes to Kurt Utzinger (especially for his excellent game analyses) and Jörg Burwitz for the many tests, matches and constructive feedback.  

Little Goliath 3.16 download

Individual statistics: Little Goliath 3.15.4 - 129 games (+ 71,= 37,- 21), 69.4 %

Andscacs 0.95092              :   2 (+  1,=  1,-  0), 75.0 %
Critter 1.6a                  :   2 (+  0,=  1,-  1), 25.0 %
Vajolet2 2.8                  :   2 (+  0,=  0,-  2),  0.0 %
Fizbo 2                       :   2 (+  0,=  0,-  2),  0.0 %
Deuterium 2019.2.37.73        :   2 (+  1,=  1,-  0), 75.0 %
Dimitri 5.2.3                 :   1 (+  1,=  0,-  0), 100.0 %
Fritz 17                      :   2 (+  0,=  1,-  1), 25.0 %
SeeChess 1.2                  :   2 (+  2,=  0,-  0), 100.0 %
Jinx 1.0                      :   2 (+  2,=  0,-  0), 100.0 %
Asymptote 0.8                 :   1 (+  0,=  0,-  1),  0.0 %
NoC 4.20                      :   2 (+  2,=  0,-  0), 100.0 %
Badchess 0.4.4                :   2 (+  2,=  0,-  0), 100.0 %
Devel 4.0.2.3                 :   1 (+  0,=  1,-  0), 50.0 %
Lozza 2.2                     :   2 (+  2,=  0,-  0), 100.0 %
Barbarossa 0.6.0              :   2 (+  2,=  0,-  0), 100.0 %
Zahak 10.0                    :   2 (+  0,=  1,-  1), 25.0 %
Hiarcs 15.5                   :   4 (+  0,=  4,-  0), 50.0 %
Admete 1.5.0                  :   2 (+  2,=  0,-  0), 100.0 %
Expositor 2WQ23               :   2 (+  1,=  1,-  0), 75.0 %
Protej 0.6.2                  :   2 (+  1,=  0,-  1), 50.0 %
CT800 1.43                    :   2 (+  2,=  0,-  0), 100.0 %
FoxSEE 7.35.0                 :   2 (+  2,=  0,-  0), 100.0 %
Waxman 2020                   :   2 (+  2,=  0,-  0), 100.0 %
Loki 3.5.0                    :   2 (+  2,=  0,-  0), 100.0 %
Galjoen 0.41.2                :   2 (+  2,=  0,-  0), 100.0 %
MagiC 2                       :   1 (+  1,=  0,-  0), 100.0 %
Cosette 5.1                   :   3 (+  3,=  0,-  0), 100.0 %
Ceechess 1.4                  :   2 (+  2,=  0,-  0), 100.0 %
MinimalChess 0.6              :   2 (+  2,=  0,-  0), 100.0 %
FrankyGo 1.0.3                :   2 (+  2,=  0,-  0), 100.0 %
Blunder 7.6                   :   2 (+  2,=  0,-  0), 100.0 %
Eubos 2.10                    :   2 (+  2,=  0,-  0), 100.0 %
Tinman 0.41 dev               :   2 (+  2,=  0,-  0), 100.0 %
ChessKISS 1.8                 :   2 (+  2,=  0,-  0), 100.0 %
Cinnamon 2.4                  :   2 (+  2,=  0,-  0), 100.0 %
Hopper 1.7                    :   2 (+  2,=  0,-  0), 100.0 %
Pawn 2021-09-22               :   2 (+  2,=  0,-  0), 100.0 %
Gunborg 1.65                  :   2 (+  2,=  0,-  0), 100.0 %
Xoron b196                    :   2 (+  2,=  0,-  0), 100.0 %
Coiled 1.1                    :   2 (+  0,=  0,-  2),  0.0 %
Combusken 2.0.0               :   2 (+  0,=  1,-  1), 25.0 %
Slowchess 2.9                 :   2 (+  0,=  1,-  1), 25.0 %
Protej 0.6.3                  :   2 (+  1,=  1,-  0), 75.0 %
Journeyman 2.1                :   1 (+  1,=  0,-  0), 100.0 %
Nirvanachess 2.5              :   2 (+  1,=  1,-  0), 75.0 %
Demolito 2021-10-21           :   2 (+  0,=  2,-  0), 50.0 %
Beef 0.3.6                    :   1 (+  1,=  0,-  0), 100.0 %
FabChess 1.16                 :   2 (+  0,=  2,-  0), 50.0 %
Gargantua 1.0                 :   2 (+  0,=  2,-  0), 50.0 %
Odonata 0.6.2                 :   2 (+  1,=  1,-  0), 75.0 %
ISA 2.0.83                    :   2 (+  2,=  0,-  0), 100.0 %
Smallbrain 5.0                :   1 (+  0,=  1,-  0), 50.0 %
Dumb 1.11                     :   1 (+  0,=  1,-  0), 50.0 %
Velvet 4.1.0                  :   2 (+  0,=  2,-  0), 50.0 %
Devre 4.0                     :   2 (+  0,=  1,-  1), 25.0 %
Revenge 3.0                   :   2 (+  0,=  0,-  2),  0.0 %
Alexandria 2.4                :   1 (+  1,=  0,-  0), 100.0 %
Fornax 3.0                    :   1 (+  1,=  0,-  0), 100.0 %
Weiss 2.1 dev                 :   2 (+  0,=  2,-  0), 50.0 %
StockNemo 5.6.0.0             :   1 (+  1,=  0,-  0), 100.0 %
StockNemo 5.7.0.0             :   2 (+  0,=  1,-  1), 25.0 %
Marvin 6.1.0                  :   2 (+  1,=  1,-  0), 75.0 %
Caissa 1.1                    :   2 (+  0,=  2,-  0), 50.0 %
Frozenight 5.1.0              :   2 (+  2,=  0,-  0), 100.0 %
Caissa 1.3                    :   2 (+  0,=  1,-  1), 25.0 %
Alexandria 3.0.2              :   2 (+  0,=  2,-  0), 50.0 %
Mayhem 7.7                    :   1 (+  1,=  0,-  0), 100.0 %
RubiChess 20221120            :   2 (+  0,=  1,-  1), 25.0 %
Seer 2.4.0                    :   2 (+  0,=  0,-  2),  0.0 %


Comments