585
edits
Changes
no edit summary
the computer chess community bursts out enthusiastically due to its rapidly raising [[Playing Strength|playing strength]] with different networks trained using a mixture of [[Supervised Learning|supervised]] and [[Reinforcement Learning|reinforcement learning]] methods. Despite the approximately halved search speed, Stockfish NNUE became stronger than its original <ref>[http://www.talkchess.com/forum3/viewtopic.php?f=2&t=74484 Can the sardine! NNUE clobbers SF] by [[Henk Drost]], [[CCC]], July 16, 2020</ref>.
In August 2020, [[Stockfish#Fishtest|Fishtest]] revealed Stockfish NNUE was stronger than the classical one at least 80 Elo <ref>[https://blog.stockfishchess.org/post/625828091343896577/introducing-nnue-evaluation Introducing NNUE Evaluation], August 06, 2020</ref>. In July 2020, the playing code of NNUE was put into the official Stockfish repository as a branch for further development and examination. In August that playing code merged to the master branch and become an official part of the engine. However, the The training code still remained in Nodchip's repository <ref>[https://github.com/official-stockfish/Stockfish/issues/2823 NNUE merge · Issue #2823 · official-stockfish/Stockfish · GitHub] by [[Joost VandeVondele]], July 25, 2020</ref> <ref>[https://github.com/nodchip/Stockfish GitHub - nodchip/Stockfish: UCI chess engine] by [[Hisayori Noda|Nodchip]]</ref> for a while then replaced by [https://en.wikipedia.org/wiki/PyTorch PyTorch] NNUE training<ref>[http://www.talkchess.com/forum3/viewtopic.php?f=7&t=75724 Pytorch NNUE training] by [[Gary Linscott]], [[CCC]], November 08, 2020</ref><ref>[http://talkchess.com/forum3/viewtopic.php?f=7&t=79020 Why NNUE trainer requires an online qsearch on each training position?] by [[nkg114mc]], [[CCC]], January 01, 2022</ref>. On September 02, 2020, '''Stockfish 12''' was released with a huge jump in playing strength due to the introduction of [[NNUE]] and further tuning <ref>[https://blog.stockfishchess.org/post/628172810852925440/stockfish-12 Stockfish 12], The Stockfish Team, [https://blog.stockfishchess.org/ Stockfish Blog], September 02, 2020</ref>.
=NNUE Structure=
==HalfKA==
In subsequent Stockfish versions the network architecture was further improved by [[Tomasz Sobczyk]] et al.. The '''HalfKA''' architecture uses 12x64x64 = 45056 inputs for each of the 12 piece types times 64 squares for each of the 64 own king squares, times two, for both the side to move and other side perspective, further using the [[Vertical Flipping|vertical flip]] instead of the HalfKP rotate.
'''HalfKv2HalfKAv2''' of as applied in Stockfish '''14''' saves some space considering the king square redundancy using 11x64x64 = 45056 inputs per side, mapped to a 2x520 linear feature transformer, <ref>[https://github.aom/official-stockfish/Stockfish/commit/e8d64af1230fdac65bb0da246df3e7abe82e0838 New NNUE architecture and net · official-stockfish/Stockfish@e8d64af · GitHub]</ref> <ref>[https://github.com/official-stockfish/Stockfish/pull/3474 Update default net to nn-8a08400ed089.nnue by Sopel97 · Pull Request #3474 · official-stockfish/Stockfish · GitHub]</ref> <ref>[https://github.com/glinscott/nnue-pytorch/blob/master/docs/nnue.md#halfkav2-feature-set HalfKAv2 feature set | nnue-pytorch/nnue.md at master · glinscott/nnue-pytorch · GitHub]</ref>, further feeding 8x2 outputs of this feature transformer directly to the output for better learning of unbalanced material configurations <ref>[https://github.com/glinscott/nnue-pytorch/blob/master/docs/nnue.md#a-part-of-the-feature-transformer-directly-forwarded-to-the-output A part of the feature transformer directly forwarded to the output | nnue-pytorch/nnue.md at master · glinscott/nnue-pytorch · GitHub]</ref>. Another improvement was using eight 512x2->16->32->1 output sub-networks discriminated by (piece_count-1) div 4 in the 0 to 7 range
<ref>[https://github.com/glinscott/nnue-pytorch/blob/master/docs/nnue.md#multiple-psqt-outputs-and-multiple-subnetworks Multiple PSQT outputs and multiple subnetworks | nnue-pytorch/nnue.md at master · glinscott/nnue-pytorch · GitHub]</ref>.
[[FILE:HalfKAv2.png|none|border|text-bottom|1024px658px]] HalfKAv2 architecture by [[Tomasz Sobczyk]] <ref>[https://user-images.githubusercontent.com/8037982/118656988-553a1700-b7eb-11eb-82ef-56a11cbebbf2.png HalfKAv2.png] Image courtesy by [[Tomasz Sobczyk]]</ref>
=Network=
=Hybrid=
Being attracted by new advantages as well as being encouraged by some impressive successes, many developers joined or continued to work. The [[#Source|Official Stockfish]] repository shows the numbers of commits, ideas increased significantly after merging NNUE.
=Elo gain=
[[Joost VandeVondele]] has created a graph to show how Stockfish gains Elo with NNUE after a year:<ref>[https://github.com/official-stockfish/Stockfish/discussions/3628#discussioncomment-1047728 One year of NNUE.... · official-stockfish/Stockfish · GitHub] by [[Joost VandeVondele]], July 26, 2021</ref>
[[FILE:NNEUOneYearEloGain.png|none|border|text-bottom|1024px]]
=Suggestions=
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=76844 NNUE ranking] by Jim Logan, [[CCC]], March 12, 2021
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=77344 Stockfish with new NNUE architecture and bigger net released] by [[Stefan Pohl]], [[CCC]], May 19, 2021 <ref>[https://github.com/official-stockfish/Stockfish/pull/3474 Update default net to nn-8a08400ed089.nnue by Sopel97 · Pull Request #3474 · official-stockfish/Stockfish · GitHub] by [[Tomasz Sobczyk]]</ref>
* [http://talkchess.com/forum3/viewtopic.php?f=7&t=79020 Why NNUE trainer requires an online qsearch on each training position?] by [[nkg114mc]], [[CCC]], January 01, 2022
=External Links=
* [https://hxim.github.io/Stockfish-Evaluation-Guide/?p=nnue Stockfish Evaluation Guide] <ref>[http://www.talkchess.com/forum3/viewtopic.php?f=2&t=74681 You can now look inside NNUE and look at its Per square value estimation] by [[Henk Drost]], [[CCC]], August 04, 2020</ref>
* [https://github.com/glinscott/nnue-pytorch/blob/master/docs/nnue.md NNUE Guide (nnue-pytorch/nnue.md at master · glinscott/nnue-pytorch · GitHub)] hosted by [[Gary Linscott]]
* [https://github.com/official-stockfish/Stockfish/discussions/3628 One year of NNUE.... · official-stockfish/Stockfish · GitHub] by [[Joost VandeVondele]], July 26, 2021
==Source==
* [https://github.com/official-stockfish/Stockfish GitHub - Official-stockfish]
==Rating==
* [https://github.com/glinscott/fishtest/wiki/Regression-Tests Regression Tests]
* [http://ccrl.chessdom.com/ccrl/404/cgi/engine_details.cgi?match_length=30&each_game=1&print=Details&each_game=1&eng=Stockfish%2014%2064-bit%208CPU#Stockfish_14_64-bit_8CPU Stockfish 14 64-bit 8CPU] in [[CCRL|CCRL Blitz]]* [http://ccrl.chessdom.com/ccrl/404/cgi/engine_details.cgi?print=Details&each_game=1&eng=Stockfish%2012%2064-bit#Stockfish_12_64-bit Stockfish 12 64-bit] in [[CCRL|CCRL Blitz]]
* [http://computerchess.org.uk/ccrl/404/cgi/engine_details.cgi?print=Details&each_game=1&eng=Stockfish%2BNNUE%20150720%2064-bit%204CPU#Stockfish%2BNNUE_150720_64-bit_4CPU Stockfish+NNUE 150720 64-bit 4CPU] in [[CCRL|CCRL Blitz]]
==Misc==
* [https://en.wikipedia.org/wiki/Stockfish Stockfish from Wikipedia]
* [https://en.wikipedia.org/wiki/Nue Nue from Wikipedia]
* [[:Category:Hiromi UeharaSenri Kawaguchi|HiromiSenri Kawaguchi]] - [https://en.wikipediaameliaray.org/wikinet/Spectrum_(Hiromi_album) Spectrumquarantuned The Quarantuned Music Festival], 2019May 2020, [https://en.wikipedia.org/wiki/YouTube YouTube] Video: {{#evu:https://www.youtube.com/watch?v=A8RCz_RoefMjO8VlSqw7do|alignment=left|valignment=top}}
=References=
[[Category:Mac]]
[[Category:Fish]]
[[Category:Hiromi UeharaSenri Kawaguchi]]