Difference between revisions of "CrazyAra"
GerdIsenberg (talk | contribs) |
GerdIsenberg (talk | contribs) |
||
Line 6: | Line 6: | ||
an [[UCI]] compatible [[Chess#Variants|chess variant]] [[:Category:Open Source|open source]] engine licensed under the [[Free Software Foundation#GPL|GPL v3.0]]. | an [[UCI]] compatible [[Chess#Variants|chess variant]] [[:Category:Open Source|open source]] engine licensed under the [[Free Software Foundation#GPL|GPL v3.0]]. | ||
CrazyAra started as a [https://en.wikipedia.org/wiki/Academic_term#Synonyms semester] project by [[Johannes Czech]], [[Moritz Willig]] and [[Alena Beyer]] for the course ''Deep Learning: Methods and Architectures'' at the [[Darmstadt University of Technology|TU Darmstadt]] in summer 2018, headed by [[Kristian Kersting]] and [[Johannes Fürnkranz]]. | CrazyAra started as a [https://en.wikipedia.org/wiki/Academic_term#Synonyms semester] project by [[Johannes Czech]], [[Moritz Willig]] and [[Alena Beyer]] for the course ''Deep Learning: Methods and Architectures'' at the [[Darmstadt University of Technology|TU Darmstadt]] in summer 2018, headed by [[Kristian Kersting]] and [[Johannes Fürnkranz]]. | ||
− | The project was inspired by the [[Deep Learning|deep learning]] and [[Monte-Carlo Tree Search|MCTS]] techniques described in [[DeepMind|DeepMind's]] | + | The project was inspired by the [[Deep Learning|deep learning]] and [[Monte-Carlo Tree Search|MCTS]] techniques described in [[DeepMind|DeepMind's]] [[AlphaZero]] papers |
<ref>[[David Silver]], [[Thomas Hubert]], [[Julian Schrittwieser]], [[Ioannis Antonoglou]], [[Matthew Lai]], [[Arthur Guez]], [[Marc Lanctot]], [[Laurent Sifre]], [[Dharshan Kumaran]], [[Thore Graepel]], [[Timothy Lillicrap]], [[Karen Simonyan]], [[Demis Hassabis]] ('''2017'''). ''Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm''. [https://arxiv.org/abs/1712.01815 arXiv:1712.01815]</ref> | <ref>[[David Silver]], [[Thomas Hubert]], [[Julian Schrittwieser]], [[Ioannis Antonoglou]], [[Matthew Lai]], [[Arthur Guez]], [[Marc Lanctot]], [[Laurent Sifre]], [[Dharshan Kumaran]], [[Thore Graepel]], [[Timothy Lillicrap]], [[Karen Simonyan]], [[Demis Hassabis]] ('''2017'''). ''Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm''. [https://arxiv.org/abs/1712.01815 arXiv:1712.01815]</ref> | ||
<ref>[[David Silver]], [[Thomas Hubert]], [[Julian Schrittwieser]], [[Ioannis Antonoglou]], [[Matthew Lai]], [[Arthur Guez]], [[Marc Lanctot]], [[Laurent Sifre]], [[Dharshan Kumaran]], [[Thore Graepel]], [[Timothy Lillicrap]], [[Karen Simonyan]], [[Demis Hassabis]] ('''2018'''). ''[http://science.sciencemag.org/content/362/6419/1140 A general reinforcement learning algorithm that masters chess, shogi, and Go through self-play]''. [https://en.wikipedia.org/wiki/Science_(journal) Science], Vol. 362, No. 6419</ref>, | <ref>[[David Silver]], [[Thomas Hubert]], [[Julian Schrittwieser]], [[Ioannis Antonoglou]], [[Matthew Lai]], [[Arthur Guez]], [[Marc Lanctot]], [[Laurent Sifre]], [[Dharshan Kumaran]], [[Thore Graepel]], [[Timothy Lillicrap]], [[Karen Simonyan]], [[Demis Hassabis]] ('''2018'''). ''[http://science.sciencemag.org/content/362/6419/1140 A general reinforcement learning algorithm that masters chess, shogi, and Go through self-play]''. [https://en.wikipedia.org/wiki/Science_(journal) Science], Vol. 362, No. 6419</ref>, |
Revision as of 22:42, 22 May 2021
CrazyAra,
an UCI compatible chess variant open source engine licensed under the GPL v3.0.
CrazyAra started as a semester project by Johannes Czech, Moritz Willig and Alena Beyer for the course Deep Learning: Methods and Architectures at the TU Darmstadt in summer 2018, headed by Kristian Kersting and Johannes Fürnkranz.
The project was inspired by the deep learning and MCTS techniques described in DeepMind's AlphaZero papers
[2]
[3],
the goal to train a deep convolutional neural network to play Crazyhouse trained by supervised learning on human data - the initial version of CrazyAra entirely written in Python [4].
As subject of his master thesis [5],
Johannes Czech continued the development in porting the engine to C++ and to further apply reinforcement learning to Crazyhouse and other chess variants including Chess960.
While the initial version uses Python-chess by Niklas Fiekas, the C++ version uses a multi variant Stockfish fork by Daniel Dugovic [6]
for move generation, board representation and Syzygy parsing.
Contents
Network
CrazyAra uses MXNet as it's deep learning framework - with three NN back-ends to run the NN inference available, Nvidia's TensorRT built on CUDA (GPU only), MXNet and Torch [7]. The input representation is a hybrid between chess and Shogi and compared to the AlphaZero description avoids the history of past board representations [8]. In CrazyAra v0.2.0 a newly designed architecture was used which is called RISE (ResneXt, Inception, Squeeze, Excitation). The model uses mixed depth-wise convolutional kernels, efficient squeeze excitation modules, use of 5x5 convolutions in deeper layers, and hard sigmoid instead of sigmoid activation functions. The proposed model architecture has fewer parameters, faster inference and training time while maintaining an equal amount of depth compared to the architecture proposed by DeepMind (19 residual layers with 256 filters) [9]. Similar to AlphaZero, the output is represented by a value and policy head, the latter implemented as vector of moves [10] [11].
Monte-Carlo Graph Search
CrazyAra optionally features an improvement of AlphaZero's MCTS / PUCT algorithm, considering transpositions - dubbed Monte-Carlo Graph Search based on a directed acyclic graph (DAG) instead of a tree structure [12] [13].
ClassicAra
ClassicAra is a version of CrazyAra to play classical chess as well as Chess960. ClassicAra had its tournament debut as TCEC Season 21 in Spring 2021.
See also
- AlphaZero
- Crazyhouse
- Deep Learning
- Leela Chess Zero
- Monte-Carlo Tree Search
- Parrot
- Reinforcement Learning
- Supervised Learning
Publications
- Johannes Czech (2019). Deep Reinforcement Learning for Crazyhouse. Master thesis, TU Darmstadt, pdf (German)
- Johannes Czech, Moritz Willig, Alena Beyer, Kristian Kersting, Johannes Fürnkranz (2019). Learning to play the Chess Variant Crazyhouse above World Champion Level with Deep Neural Networks and Human Data. arXiv:1908.06660
- Johannes Czech, Moritz Willig, Alena Beyer, Kristian Kersting, Johannes Fürnkranz (2020). Learning to Play the Chess Variant Crazyhouse Above World Champion Level With Deep Neural Networks and Human Data. Frontiers in Artificial Intelligence
- Johannes Czech, Patrick Korus, Kristian Kersting (2020). Monte-Carlo Graph Search for AlphaZero. arXiv:2012.11045
Forum Posts
- CrazyAra Crazyhouse UCI running on WinBoard 4.8.0? by Norbert Raimund Leisner, CCC, May 30, 2019
- Re: New engine releases 2019 by Graham Banks, CCC, August 21, 2019
- Re: New engine releases & news 2021 by Günther Simon, CCC, April 05, 2021
- ClassicAra Chess Engine..World Record Download!! by supersharp77, CCC, April 06, 2021
External Links
Chess Engine
- CrazyAra - Crazyhouse Chess Engine
- Rise of light - CrazyAra - Chess Engine
- GitHub - QueensGambit/CrazyAra: A Deep Learning UCI-Chess Variant Engine written in C++ & Python
- Home · QueensGambit/CrazyAra Wiki · GitHub
- GitHub - QueensGambit/CrazyAra-Engine: CrazyAra - A Deep Learning UCI-Chess Variant Engine written in C++
Misc
References
- ↑ Red-and-green macaw in Brookfield Zoo, Photo by Nimesh M, July 05, 2008, Wikimedia Commons
- ↑ David Silver, Thomas Hubert, Julian Schrittwieser, Ioannis Antonoglou, Matthew Lai, Arthur Guez, Marc Lanctot, Laurent Sifre, Dharshan Kumaran, Thore Graepel, Timothy Lillicrap, Karen Simonyan, Demis Hassabis (2017). Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm. arXiv:1712.01815
- ↑ David Silver, Thomas Hubert, Julian Schrittwieser, Ioannis Antonoglou, Matthew Lai, Arthur Guez, Marc Lanctot, Laurent Sifre, Dharshan Kumaran, Thore Graepel, Timothy Lillicrap, Karen Simonyan, Demis Hassabis (2018). A general reinforcement learning algorithm that masters chess, shogi, and Go through self-play. Science, Vol. 362, No. 6419
- ↑ GitHub - QueensGambit/CrazyAra: A Deep Learning UCI-Chess Variant Engine written in C++ & Python
- ↑ Johannes Czech (2019). Deep Reinforcement Learning for Crazyhouse. Master thesis, TU Darmstadt, pdf
- ↑ GitHub - ddugovic/Stockfish: BETA multi-variant fork of popular UCI chess engine; final release for now
- ↑ 2. Build neural network inference library · QueensGambit/CrazyAra Wiki · GitHub
- ↑ Input representation · QueensGambit/CrazyAra Wiki · GitHub
- ↑ Model architecture · QueensGambit/CrazyAra Wiki · GitHub
- ↑ Output representation · QueensGambit/CrazyAra Wiki · GitHub
- ↑ Network visualization · QueensGambit/CrazyAra Wiki · GitHub
- ↑ Johannes Czech, Patrick Korus, Kristian Kersting (2020). Monte-Carlo Graph Search for AlphaZero. arXiv:2012.11045
- ↑ Engine settings · QueensGambit/CrazyAra Wiki · GitHub