Difference between revisions of "Giraffe"
GerdIsenberg (talk | contribs) (Created page with "'''Home * Engines * Giraffe''' FILE:The Burning Giraffe.jpg|border|right|thumb|240px|link=https://en.wikipedia.org/wiki/File:The_Burning_Giraffe.jpg| [[Ar...") |
GerdIsenberg (talk | contribs) |
||
(9 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
'''[[Main Page|Home]] * [[Engines]] * Giraffe''' | '''[[Main Page|Home]] * [[Engines]] * Giraffe''' | ||
− | [[FILE:The Burning Giraffe.jpg|border|right|thumb|240px|link=https://en.wikipedia.org/wiki/File:The_Burning_Giraffe.jpg| [[ | + | [[FILE:The Burning Giraffe.jpg|border|right|thumb|240px|link=https://en.wikipedia.org/wiki/File:The_Burning_Giraffe.jpg| [[:Category:Salvador Dalí|Salvador Dalí]] - [https://en.wikipedia.org/wiki/The_Burning_Giraffe The Burning Giraffe] <ref>[[:Category:Salvador Dalí|Salvador Dalí]] - The Burning Giraffe, 1937, [https://en.wikipedia.org/wiki/Oil_painting Oil on panel], [https://en.wikipedia.org/wiki/Kunstmuseum_Basel Kunstmuseum Basel], [https://en.wikipedia.org/wiki/The_Burning_Giraffe The Burning Giraffe from Wikipedia]</ref> ]] |
'''Giraffe''',<br/> | '''Giraffe''',<br/> | ||
− | an experimental [[Open Source | + | an experimental [[:Category:Open Source|open source chess engine]] by [[Matthew Lai]] under the [[Free Software Foundation#GPL|GNU General Public License]], compliant to the [[Chess Engine Communication Protocol]], written in [[Cpp|C++11]] and based on [[Deep Learning|deep learning]], which is topic of Matthew's master's thesis in August 2015 <ref>[[Matthew Lai]] ('''2015'''). ''Giraffe: Using Deep Reinforcement Learning to Play Chess''. M.Sc. thesis, [https://en.wikipedia.org/wiki/Imperial_College_London Imperial College London], [http://arxiv.org/abs/1509.01549v1 arXiv:1509.01549v1]</ref> <ref>[http://talkchess.com/forum/viewtopic.php?t=56913 *First release* Giraffe, a new engine based on deep learning] by [[Matthew Lai]], [[CCC]], July 08, 2015</ref> . Giraffe uses the [https://en.wikipedia.org/wiki/Eigen_%28C%2B%2B_library%29 Eigen linear algebra library] <ref>[http://eigen.tuxfamily.org/index.php?title=Main_Page Eigen, a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms]</ref> , and [[Pradu Kannan|Pradyumna Kannan's]] [[Magic Bitboards|magic move generator]] <ref>[http://www.open-aurec.com/wbforum/viewtopic.php?f=4&t=5452 Fastest Magic Move Bitboard Generator ready to use] by [[Pradu Kannan]], [[Computer Chess Forums|Winboard Forum]], August 25, 2006</ref> <ref>[[Pradu Kannan|Pradyumna Kannan]] ('''2007'''). ''Magic Move-Bitboard Generation in Computer Chess''. [http://www.pradu.us/old/Nov27_2008/Buzz/research/magic/Bitboards.pdf pdf]</ref>. As employee of [[Google]] [[DeepMind]], Matthew Lai announced the discontinuation of the Giraffe project in January 2016 <ref>[http://www.talkchess.com/forum/viewtopic.php?t=59003 Death of Giraffe, but hopefully not ML in chess!] by [[Matthew Lai]], [[CCC]], January 21, 2016</ref>. |
=Description= | =Description= | ||
− | Giraffe's [[Evaluation | + | Giraffe's [[Evaluation Function|evaluation function]] is a [[Neural Networks#Deep|deep neural network]] trained by [[Temporal Difference Learning#TDLeaf|TDLeaf]] <ref>[[Jonathan Baxter]], [[Andrew Tridgell]], [[Lex Weaver]] ('''1998'''). ''TDLeaf(lambda): Combining Temporal Difference Learning with Game-Tree Search''. [https://www.chatbots.org/journal/australian_journal_of_intelligent_information_processing_systems/ Australian Journal of Intelligent Information Processing Systems], Vol. 5 No. 1, [http://arxiv.org/abs/cs/9901001 arXiv:cs/9901001]</ref> . Its feature representation includes a map of [[Static Exchange Evaluation|static exchange evaluations]] for all squares and sides <ref>[http://www.talkchess.com/forum/viewtopic.php?t=57045 SEE Map] by [[Matthew Lai]], [[CCC]], July 20, 2015</ref> , a structure already proposed by [[Russell M. Church]] and [[Kenneth W. Church]] in ''Plans, Goals, and Search Strategies for the Selection of a Move in Chess'' <ref>[[Russell M. Church]], [[Kenneth W. Church]] ('''1977'''). ''Plans, Goals, and Search Strategies for the Selection of a Move in Chess''. [[Chess Skill in Man and Machine]]</ref> . Probability-based evaluation [[Score|scores]] are not in [[Centipawns|centipawns]] nor linear to [[Material|material]] , and span a +-10,000 range, with [[Checkmate#MateScore|mate scores]] of +- 30,000. The [[Search|search]] recently changed from traditional depth-based [[Iterative Deepening|iterative deepening]] to assigning number of nodes (or time) to child nodes <ref>[http://www.talkchess.com/forum/viewtopic.php?t=57092 Time assignment to children] by [[Matthew Lai]], [[CCC]], July 26, 2015</ref> . Node budget allocation will also become [[Neural Networks|neural network]] based. |
=See also= | =See also= | ||
− | |||
− | |||
− | |||
* [[Morph]] | * [[Morph]] | ||
* [[NeuroChess]] | * [[NeuroChess]] | ||
Line 40: | Line 37: | ||
* [http://www.hiarcs.net/forums/viewtopic.php?t=8421&start=1 Re: Why is it so hard for comps to play like people?] by Ben Redic, [[Computer Chess Forums|Hiarcs Forum]], June 03, 2017 | * [http://www.hiarcs.net/forums/viewtopic.php?t=8421&start=1 Re: Why is it so hard for comps to play like people?] by Ben Redic, [[Computer Chess Forums|Hiarcs Forum]], June 03, 2017 | ||
* [http://www.talkchess.com/forum/viewtopic.php?t=64929 Giraffe on Threadripper + newest GPUs] by John Margusen, [[CCC]], August 19, 2017 <ref>[https://en.wikipedia.org/wiki/Ryzen Ryzen from Wikipedia] (Threadripper)</ref> | * [http://www.talkchess.com/forum/viewtopic.php?t=64929 Giraffe on Threadripper + newest GPUs] by John Margusen, [[CCC]], August 19, 2017 <ref>[https://en.wikipedia.org/wiki/Ryzen Ryzen from Wikipedia] (Threadripper)</ref> | ||
+ | * [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=69175&start=86 Re: Alphazero news] by [[Matthew Lai]], [[CCC]], December 07, 2018 » [[AlphaZero]] | ||
=External Links= | =External Links= | ||
==Chess Engine== | ==Chess Engine== | ||
− | * [https:// | + | * [https://github.com/ianfab/Giraffe GitHub - ianfab/Giraffe: experimental chess engine based on temporal-difference reinforcement learning] hosted by [[Fabian Fichter]] |
− | * [https:// | + | * [https://web.archive.org/web/20170713091347/https://bitbucket.org/waterreaction/giraffe waterreaction / Giraffe — Bitbucket] ([https://en.wikipedia.org/wiki/Wayback_Machine Wayback Machine], July 13, 2017) |
− | |||
* [http://www.popularmechanics.com/technology/robots/a17339/chess-engine-plays-against-itself/ This Chess Engine Learns How to Beat Humans by Playing Against Itself] by [https://www.linkedin.com/in/rollinbishop Rollin Bishop], [https://en.wikipedia.org/wiki/Popular_Mechanics Popular Mechanics], September 15, 2015 | * [http://www.popularmechanics.com/technology/robots/a17339/chess-engine-plays-against-itself/ This Chess Engine Learns How to Beat Humans by Playing Against Itself] by [https://www.linkedin.com/in/rollinbishop Rollin Bishop], [https://en.wikipedia.org/wiki/Popular_Mechanics Popular Mechanics], September 15, 2015 | ||
− | * [ | + | * [https://hackaday.com/2015/10/02/computer-learns-to-hack-chess/#more-172231 Computer Learns to Hack Chess] by [http://hackaday.com/author/wd5gnr1/ Al Williams], [https://en.wikipedia.org/wiki/Hackaday Hackaday], October 02, 2015 <ref>[http://www.talkchess.com/forum/viewtopic.php?t=57817 Chess hackery] by [[Steven Edwards]], [[CCC]], October 02, 2015</ref> |
− | * [ | + | * [https://www.vice.com/en/article/d7ypaz/the-chess-engine-that-died-so-alphago-could-live-giraffe-matthew-lai The Chess Engine that Died So AlphaGo Could Live] by [https://www.linkedin.com/in/rollinbishop Rollin Bishop], [https://en.wikipedia.org/wiki/Vice_(magazine) Motherboard], March 14, 2016 » [[AlphaGo]] |
− | * [http://www.computerchess.org.uk/ccrl/404/cgi/engine_details.cgi?match_length=30&each_game=1&print=Details&each_game=1&eng=Giraffe%2020150908%2064-bit#Giraffe_20150908_64-bit Giraffe 20150908 64-bit] in [[CCRL|CCRL | + | * [http://www.computerchess.org.uk/ccrl/404/cgi/engine_details.cgi?match_length=30&each_game=1&print=Details&each_game=1&eng=Giraffe%2020150908%2064-bit#Giraffe_20150908_64-bit Giraffe 20150908 64-bit] in [[CCRL|CCRL Blitz]] |
==Misc== | ==Misc== | ||
* [https://en.wikipedia.org/wiki/Giraffe Giraffe from Wikipedia] | * [https://en.wikipedia.org/wiki/Giraffe Giraffe from Wikipedia] | ||
: [https://en.wikipedia.org/wiki/Giraffe#Internal_systems Giraffe - Internal systems] | : [https://en.wikipedia.org/wiki/Giraffe#Internal_systems Giraffe - Internal systems] | ||
− | * [[ | + | * [[:Category:Manu Dibango|Manu Dibango]] - [http://www.silent-watcher.net/billlaswell/discography/d/electricafrica.html Electric Africa], [https://en.wikipedia.org/wiki/YouTube YouTube] Video |
: {{#evu:https://www.youtube.com/watch?v=zK69LoCTYus|alignment=left|valignment=top}} | : {{#evu:https://www.youtube.com/watch?v=zK69LoCTYus|alignment=left|valignment=top}} | ||
Line 60: | Line 57: | ||
'''[[Engines|Up one Level]]''' | '''[[Engines|Up one Level]]''' | ||
− | [[Category: | + | [[Category:WinBoard]] |
+ | [[Category:XBoard]] | ||
+ | [[Category:Open Source]] | ||
+ | [[Category:GPL]] | ||
+ | [[Category:NN]] | ||
+ | [[Category:X86]] | ||
+ | [[Category:X64]] | ||
+ | [[Category:PC]] | ||
+ | [[Category:Windows]] | ||
+ | [[Category:Linux]] | ||
+ | [[Category:Thesis]] | ||
+ | [[Category:Mammal]] | ||
+ | [[Category:Salvador Dalí]] | ||
+ | [[Category:Manu Dibango]] |
Latest revision as of 17:56, 13 November 2020
Giraffe,
an experimental open source chess engine by Matthew Lai under the GNU General Public License, compliant to the Chess Engine Communication Protocol, written in C++11 and based on deep learning, which is topic of Matthew's master's thesis in August 2015 [2] [3] . Giraffe uses the Eigen linear algebra library [4] , and Pradyumna Kannan's magic move generator [5] [6]. As employee of Google DeepMind, Matthew Lai announced the discontinuation of the Giraffe project in January 2016 [7].
Contents
Description
Giraffe's evaluation function is a deep neural network trained by TDLeaf [8] . Its feature representation includes a map of static exchange evaluations for all squares and sides [9] , a structure already proposed by Russell M. Church and Kenneth W. Church in Plans, Goals, and Search Strategies for the Selection of a Move in Chess [10] . Probability-based evaluation scores are not in centipawns nor linear to material , and span a +-10,000 range, with mate scores of +- 30,000. The search recently changed from traditional depth-based iterative deepening to assigning number of nodes (or time) to child nodes [11] . Node budget allocation will also become neural network based.
See also
Publications
- Matthew Lai (2015). Giraffe: Using Deep Reinforcement Learning to Play Chess. M.Sc. thesis, Imperial College London, arXiv:1509.01549v1
- Jonathan Rosenthal (2016). Deep Learning for Go. B.Sc. thesis, ETH Zurich
Forum Posts
2015
- *First release* Giraffe, a new engine based on deep learning by Matthew Lai, CCC, July 08, 2015
- SEE Map by Matthew Lai, CCC, July 20, 2015 » Static Exchange Evaluation
- Time assignment to children by Matthew Lai, CCC, July 26, 2015
- Giraffe 20150801 by Matthew Lai, CCC, August 01, 2015
- Giraffe, new release (Aug 17) by Matthew Lai, CCC, August 17, 2015
- New Giraffe (Aug 28) by Matthew Lai, CCC, August 28, 2015
- Giraffe dissertation, and now open source by Matthew Lai, CCC, September 08, 2015
- New Giraffe (Sept 8) by Matthew Lai, CCC, September 08, 2015
2016
- Death of Giraffe, but hopefully not ML in chess! by Matthew Lai, CCC, January 21, 2016
- Re: Deep Learning Chess Engine ? by Matthew Lai, CCC, August 04, 2016 [12]
- Beginner's guide to graphical profiling by Matthew Lai, CCC, September 10, 2016 » Profiling
- New Giraffe by Matthew Lai, CCC, October 23, 2016
2017...
- Is AlphaGo approach unsuitable to chess? by Mel Cooper, CCC, May 27, 2017 » AlphaGo, Deep Learning
- Re: Is AlphaGo approach unsuitable to chess? by Peter Österlund, CCC, May 31, 2017 » Texel
- Re: Why is it so hard for comps to play like people? by Ben Redic, Hiarcs Forum, June 03, 2017
- Giraffe on Threadripper + newest GPUs by John Margusen, CCC, August 19, 2017 [13]
- Re: Alphazero news by Matthew Lai, CCC, December 07, 2018 » AlphaZero
External Links
Chess Engine
- GitHub - ianfab/Giraffe: experimental chess engine based on temporal-difference reinforcement learning hosted by Fabian Fichter
- waterreaction / Giraffe — Bitbucket (Wayback Machine, July 13, 2017)
- This Chess Engine Learns How to Beat Humans by Playing Against Itself by Rollin Bishop, Popular Mechanics, September 15, 2015
- Computer Learns to Hack Chess by Al Williams, Hackaday, October 02, 2015 [14]
- The Chess Engine that Died So AlphaGo Could Live by Rollin Bishop, Motherboard, March 14, 2016 » AlphaGo
- Giraffe 20150908 64-bit in CCRL Blitz
Misc
- Manu Dibango - Electric Africa, YouTube Video
References
- ↑ Salvador Dalí - The Burning Giraffe, 1937, Oil on panel, Kunstmuseum Basel, The Burning Giraffe from Wikipedia
- ↑ Matthew Lai (2015). Giraffe: Using Deep Reinforcement Learning to Play Chess. M.Sc. thesis, Imperial College London, arXiv:1509.01549v1
- ↑ *First release* Giraffe, a new engine based on deep learning by Matthew Lai, CCC, July 08, 2015
- ↑ Eigen, a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms
- ↑ Fastest Magic Move Bitboard Generator ready to use by Pradu Kannan, Winboard Forum, August 25, 2006
- ↑ Pradyumna Kannan (2007). Magic Move-Bitboard Generation in Computer Chess. pdf
- ↑ Death of Giraffe, but hopefully not ML in chess! by Matthew Lai, CCC, January 21, 2016
- ↑ Jonathan Baxter, Andrew Tridgell, Lex Weaver (1998). TDLeaf(lambda): Combining Temporal Difference Learning with Game-Tree Search. Australian Journal of Intelligent Information Processing Systems, Vol. 5 No. 1, arXiv:cs/9901001
- ↑ SEE Map by Matthew Lai, CCC, July 20, 2015
- ↑ Russell M. Church, Kenneth W. Church (1977). Plans, Goals, and Search Strategies for the Selection of a Move in Chess. Chess Skill in Man and Machine
- ↑ Time assignment to children by Matthew Lai, CCC, July 26, 2015
- ↑ Rectifier (neural networks) from Wikipedia
- ↑ Ryzen from Wikipedia (Threadripper)
- ↑ Chess hackery by Steven Edwards, CCC, October 02, 2015