Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Evaluation function
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
===Neural networks=== While [[Artificial neural network|neural networks]] have been used in the evaluation functions of chess engines since the late 1980s,<ref>{{citation|title=Learning to Play the Game of Chess|last=Thurn|first=Sebastian|year=1995|publisher=MIT Press|url=https://proceedings.neurips.cc/paper/1994/file/d7322ed717dedf1eb4e6e52a37ea7bcd-Paper.pdf|access-date=12 December 2021}}</ref><ref>{{citation|title=A Self-Learning, Pattern-Oriented Chess Program|last=Levinson|first=Robert|year=1989|publisher=ICCA Journal|volume=12|issue=4}}</ref> they did not become popular in computer chess until the late 2010s, as the hardware needed to train neural networks was not strong enough at the time, and fast training algorithms and network topology and architectures had not been developed yet. Initially, neural network based evaluation functions generally consisted of one neural network for the entire evaluation function, with input features selected from the board and whose output is an [[integer]], [[Normalization (statistics)|normalized]] to the centipawn scale so that a value of 100 is roughly equivalent to a material advantage of a pawn. The parameters in neural networks are typically trained using [[reinforcement learning]] or [[supervised learning]]. More recently, evaluation functions in computer chess have started to use multiple neural networks, with each neural network trained for a specific part of the evaluation, such as pawn structure or endgames. This allows for hybrid approaches where an evaluation function consists of both neural networks and handcrafted terms. [[Deep neural networks]] have been used, albeit infrequently, in computer chess after Matthew Lai's Giraffe<ref name="Giraffe">{{citation|title=Giraffe: Using Deep Reinforcement Learning to Play Chess|last=Lai|first=Matthew|date=4 September 2015|arxiv=1509.01549v1}}</ref> in 2015 and [[Deepmind]]'s [[AlphaZero]] in 2017 demonstrated the feasibility of deep neural networks in evaluation functions. The [[distributed computing]] project [[Leela Chess Zero]] was started shortly after to attempt to [[Replication (statistics)|replicate]] the results of Deepmind's AlphaZero paper. Apart from the size of the networks, the neural networks used in AlphaZero and Leela Chess Zero also differ from those used in traditional chess engines as they have two outputs, one for evaluation (the '''value head''') and one for move ordering (the '''policy head'''), rather than only one output for evaluation.<ref name="leela-network-topology">{{Cite web|url=https://lczero.org/dev/backend/nn/|title=Neural network topology|date=|website=lczero.org|access-date=2021-12-12}}</ref> In addition, while it is possible to set the output of the value head of Leela's neural network to a [[real number]] to approximate the centipawn scale used in traditional chess engines, by default the output is the win-draw-loss percentages, a vector of three values each from the [[unit interval]].<ref name="leela-network-topology"/> Since deep neural networks are very large, engines using deep neural networks in their evaluation function usually require a [[graphics processing unit]] in order to efficiently calculate the evaluation function.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)