Dragon engine

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

Moderators: hgm, Rebel, chrisw

cma6
Posts: 219
Joined: Thu May 29, 2014 5:58 pm

Dragon engine net

Post by cma6 »

gaard,
Thanks for the insights. I had assumed that when it comes to neural nets, bigger is better, so that LK would soon give us huge NNs, e.g., 100MB.
lkaufman
Posts: 5960
Joined: Sun Jan 10, 2010 6:15 am
Location: Maryland USA

Re: Dragon engine net

Post by lkaufman »

cma6 wrote: Sun Feb 14, 2021 1:10 am gaard,
Thanks for the insights. I had assumed that when it comes to neural nets, bigger is better, so that LK would soon give us huge NNs, e.g., 100MB.
We have tried several different size nets for Dragon, but so far the current default size still looks best. For NNUE bigger is not necessarily better, because bigger net means fewer nodes per second. We have improved Dragon, but not yet by enough to justify a release. Hopefully we'll make enough further gains to justify it soon. Note also that best parameters for regular Komodo aren't necessarily best for Dragon, and that some of the parameters like King Safety and Dynamism have very little effect in Dragon since they are eval params, and we normally use NNUE eval in Dragon, more so than Stockfish does.
Komodo rules!
User avatar
towforce
Posts: 11589
Joined: Thu Mar 09, 2006 12:57 am
Location: Birmingham UK

Re: Dragon engine net

Post by towforce »

lkaufman wrote: Sun Feb 14, 2021 3:52 am
cma6 wrote: Sun Feb 14, 2021 1:10 am gaard,
Thanks for the insights. I had assumed that when it comes to neural nets, bigger is better, so that LK would soon give us huge NNs, e.g., 100MB.
We have tried several different size nets for Dragon, but so far the current default size still looks best. For NNUE bigger is not necessarily better, because bigger net means fewer nodes per second. We have improved Dragon, but not yet by enough to justify a release. Hopefully we'll make enough further gains to justify it soon. Note also that best parameters for regular Komodo aren't necessarily best for Dragon, and that some of the parameters like King Safety and Dynamism have very little effect in Dragon since they are eval params, and we normally use NNUE eval in Dragon, more so than Stockfish does.

I'm stating up front that I've only trained small NNs - nothing like chess position evaluation - but here's my opinion:

* I've found that if a smaller NN can do what's required, then it's a lot easier to train than a bigger NN. For some reason, training an NN that's bigger than necessary can often (but not always) be devilishly difficult

* how big an NN (or any other machine learning model) needs to be to attain a particular standard of chess at ply 1 depends critically on the underlying nature of chess itself - which we still don't know yet. Let me explain...

We know that as search depth increases, a large amount of knowledge can be removed from the evaluation function (EF), because the search itself exposes that knowledge (the opposite is also therefore true: some things that can be exposed by greater search depth can also be uncovered by increased knowledge, reducing the need for search depth for the same playing strength).

In the same way, it also seems very likely that "deep knowledge" will reduce the need for "shallow knowledge" ("shallow knowledge" would be things that are easy to spot and easy to explain, "deep knowledge" would be things that only a strong player would know, and may not be able to explain).

To play strong chess at 1 ply would require deep knowledge. Once a system has this knowledge, it won't need all of the shallow knowledge, and some of it can be disposed, making for a smaller net (or other knowledge base).

As I've stated before in discussions about the underlying nature of chess, the evidence suggests to me that:

1. the actual amount of knowledge required to play strong chess is probably a lot less than most people believe

2. ultimately, NN technology might not be the best way to get to the core deep knowledge needed: I think that NNs can get to great strength at 1 ply, but they won't do it in a minimal way, and it's not obvious to me how you would then prune the redundant shallow knowledge from it. I have discussed alternatives to NNs in previous threads
Writing is the antidote to confusion.
It's not "how smart you are", it's "how are you smart".
Your brain doesn't work the way you want, so train it!
cma6
Posts: 219
Joined: Thu May 29, 2014 5:58 pm

Re: Dragon engine net

Post by cma6 »

We normally use NNUE eval in Dragon, more so than Stockfish does.

LK: Thanks for clarification about NN size.
Looking at Dragon parameters, I don't see one for "use NNUE", so I don't know what you mean by "normally use NNUE eval".