Jump to content

Efficiently updatable neural network

From Wikipedia, the free encyclopedia

In computer strategy games, for example in shogi and chess, an efficiently updatable neural network (NNUE, a Japanese wordplay on Nue, sometimes stylised as ƎUИИ) is a neural network-based evaluation function whose inputs are piece-square tables, or variants thereof like the king-piece-square table.[1] NNUE is used primarily for the leaf nodes of the alpha–beta tree.[2]

NNUE was invented by Yu Nasu and introduced to computer shogi in 2018.[3][4] On 6 August 2020, NNUE was for the first time ported to a chess engine, Stockfish 12.[5][6] Since 2021, many of the top rated classical chess engines such as Komodo Dragon have an NNUE implementation to remain competitive.

NNUE runs efficiently on central processing units (CPU) without a requirement for a graphics processing unit (GPU).[7][8] In contrast, deep neural network-based chess engines such as Leela Chess Zero require a GPU.[9][10]

The neural network used for the original 2018 computer shogi implementation consists of four weight layers: W1 (16-bit integers) and W2, W3 and W4 (8-bit). It has 4 fully-connected layers, ReLU activation functions, and outputs a single number, being the score of the board.

W1 encoded the king's position and therefore this layer needed only to be re-evaluated once the king moved. It used incremental computation and single instruction multiple data (SIMD) techniques along with appropriate intrinsic instructions.[3]

See also

[edit]

References

[edit]
  1. ^ Gary Linscott (April 30, 2021). "NNUE". GitHub. Retrieved December 12, 2020.
  2. ^ "Stockfish 12". Stockfish Blog. Retrieved 19 October 2020.
  3. ^ a b Yu Nasu (April 28, 2018). "Efficiently Updatable Neural-Network-based Evaluation Function for computer Shogi" (PDF) (in Japanese).
  4. ^ Yu Nasu (April 28, 2018). "Efficiently Updatable Neural-Network-based Evaluation Function for computer Shogi (Unofficial English Translation)" (PDF). GitHub.
  5. ^ "Introducing NNUE Evaluation". 6 August 2020.
  6. ^ Joost VandeVondele (July 25, 2020). "official-stockfish / Stockfish, NNUE merge". GitHub.
  7. ^ "Stockfish FAQ: Can Stockfish use my GPU?". Stockfish. Retrieved 19 January 2025.
  8. ^ "nnue-pytorch/docs/nnue.md".
  9. ^ Dominik Klein, Neural Networks for Chess, p. 49
  10. ^ Monroe, Daniel; Chalmers, Philip A. (2024-10-28), Mastering Chess with a Transformer Model, doi:10.48550/arXiv.2409.12272, retrieved 2024-11-29
[edit]