Isn't the NNUE board representation incomplete? It just states where pieces are, completely ignoring attack information. I know that it works, I have built my own, on top of a new engine in JAVA, and it amazes me. Yes i know the dilemma, sparse inputs mean speedy incremental updates. Not having that kills nps. But still I wonder, if a half board representation is alreay that good, what is the potential of a richer more complete one? What about 2x768, the first 768 representing square contains piece, the second 768 square attacked by piece? Forget incremental updates (because nots sparse anymore), build inputs from scratch, with AVX. It would be slow, but it would not have crippled inputs. I'm probably going to try this at some point, seems like a nice experiment. Any thoughts?
Bas
NNUE incomplete?
Moderator: Ras
-
ZirconiumX
- Posts: 1362
- Joined: Sun Jul 17, 2011 11:14 am
- Full name: Hannah Ravensloft
Re: NNUE incomplete?
The term used for this is "threat inputs", to help your googling.
tu ne cede malis, sed contra audentior ito
-
phhnguyen
- Posts: 1540
- Joined: Wed Apr 21, 2010 4:58 am
- Location: Australia
- Full name: Nguyen Hong Pham
Re: NNUE incomplete?
I’m a NNUE document reader, but have yet to implement any NNUE. Firstly, I am confused about what you mentioned: "a half board representation", especially since you gave the number 768. 768 = 6 pieces x 2 colors x 64 squares. It is full board but not half. In HalfKP, we have 2 halves for white and black Kings, combined into a full board too.
On one hand, I agree that the NNUE board representation is incomplete. However, IMHO, the attack information, as you mentioned, as well as other information such as pin, threat… can actually be inferred from the locations of chess pieces. In other words, they are redundant in terms of encoding. Perhaps the NN itself can extract that information (the attack information) when being trained.
On the other hand, in the view of encoding, the input of NNUE is missing the following information:
* the side to move
* rule 50 move count
* en-passant
* castling rights
Even though missing the above information, plus applying incorrect board rotation (it should be a flip), the first architect, HalfKP of SF, can work well. It is really a big surprise!
On one hand, I agree that the NNUE board representation is incomplete. However, IMHO, the attack information, as you mentioned, as well as other information such as pin, threat… can actually be inferred from the locations of chess pieces. In other words, they are redundant in terms of encoding. Perhaps the NN itself can extract that information (the attack information) when being trained.
On the other hand, in the view of encoding, the input of NNUE is missing the following information:
* the side to move
* rule 50 move count
* en-passant
* castling rights
Even though missing the above information, plus applying incorrect board rotation (it should be a flip), the first architect, HalfKP of SF, can work well. It is really a big surprise!
https://banksiagui.com
The most features chess GUI, based on opensource Banksia - the chess tournament manager
The most features chess GUI, based on opensource Banksia - the chess tournament manager