Darkforest: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
No edit summary
copied from User:PeppyPistachio's sandbox
Line 1: Line 1:
{{About|Facebook's Go-playing computer program||Dark Forest (disambiguation){{!}}Dark Forest}}'''Darkforest''' is a [[computer go]] program developed by [[Facebook]], based on [[deep learning]] techniques using a [[convolutional neural network]]. Its updated version <!-- not a typo -->'''Darkfores2'''<!-- not a typo --> combines the techniques of its predecessor with [[Monte Carlo tree search]].<ref name="facebook-paper2">{{Cite arxiv|eprint=1511.06410v1|last1=Tian|first1=Yuandong|title=Better Computer Go Player with Neural Network and Long-term Prediction|last2=Zhu|first2=Yan|class=cs.LG|year=2015}}</ref><ref>{{Cite web|url=https://www.technologyreview.com/s/544181/how-facebooks-ai-researchers-built-a-game-changing-go-engine/|title=How Facebook’s AI Researchers Built a Game-Changing Go Engine|date=December 4, 2015|website=MIT Technology Review|access-date=2016-02-03}}</ref> The MCTS effectively takes tree search methods commonly seen in computer chess programs and randomizes them.<ref name=":1">{{Cite web|url=http://www.techtimes.com/articles/128636/20160128/facebook-ai-go-player-gets-smarter-with-neural-network-and-long-term-prediction-to-master-worlds-hardest-game.htm|title=Facebook AI Go Player Gets Smarter With Neural Network And Long-Term Prediction To Master World's Hardest Game|date=2016-01-28|website=Tech Times|access-date=2016-04-24}}</ref> With the update, the system is known as '''Darkfmcts3'''.<ref name=":2">{{Cite web|url=http://venturebeat.com/2016/01/26/facebooks-artificially-intelligent-go-player-is-getting-smarter/|title=Facebook’s artificially intelligent Go player is getting smarter|website=VentureBeat|access-date=2016-04-24}}</ref> The AI technology developed for these systems may eventually end up in a new AI assistant named M.<ref>{{Cite web|url=https://code.facebook.com/posts/1478523512478471|title=Teaching machines to see and understand: Advances in AI research|website=Facebook Code|access-date=2016-04-24}}</ref> Other applications include the News Feed and photo identification for visually impaired Facebook users.<ref>{{Cite web|url=http://www.wired.com/2015/11/facebook-is-aiming-its-ai-at-go-the-game-no-computer-can-crack/|title=Facebook Aims Its AI at the Game No Computer Can Crack|website=WIRED|language=en-US|access-date=2016-04-24}}</ref>
{{lowercase title}}
{{About|Facebook's Go-playing computer program||Dark Forest (disambiguation){{!}}Dark Forest}}
'''darkforest''' is a [[computer go]] program developed by [[Facebook]], based on [[deep learning]] techniques using a [[convolutional neural network]]. Its updated version <!-- not a typo -->'''darkfores2'''<!-- not a typo --> combines the techniques of its predecessor with [[Monte Carlo tree search]].<ref name=facebook-paper>{{Cite arxiv|eprint=1511.06410v1|last1=Tian|first1=Yuandong|title=Better Computer Go Player with Neural Network and Long-term Prediction|last2=Zhu|first2=Yan|class=cs.LG|year=2015}}</ref><ref>{{Cite web|title = How Facebook’s AI Researchers Built a Game-Changing Go Engine|url = https://www.technologyreview.com/s/544181/how-facebooks-ai-researchers-built-a-game-changing-go-engine/|website = MIT Technology Review|access-date = 2016-02-03|date = December 4, 2015}}</ref>


darkforest is of similar strength to programs like [[Crazy Stone (software)|CrazyStone]] and Zen.<ref>http://livestream.com/oxuni/StracheyLectureDrDemisHassabis</ref> It has not been tested a against professional human player, however, [[Google]]'s [[AlphaGo]] program won against a professional player in October 2015 using a similar combination of techniques .<ref>{{Cite news|title = No Go: Facebook fails to spoil Google's big AI day|url = http://www.theguardian.com/technology/2016/jan/28/go-playing-facebook-spoil-googles-ai-deepmind|newspaper = The Guardian|date = 2016-01-28|access-date = 2016-02-01|issn = 0261-3077|language = en-GB|first = HAL|last = 90210}}</ref>
Darkforest is of similar strength to programs like [[Crazy Stone (software)|CrazyStone]] and Zen.<ref>http://livestream.com/oxuni/StracheyLectureDrDemisHassabis</ref> It has not been tested a against professional human player, however, [[Google]]'s [[AlphaGo]] program won against a professional player in October 2015 using a similar combination of techniques .<ref>{{Cite news|url=http://www.theguardian.com/technology/2016/jan/28/go-playing-facebook-spoil-googles-ai-deepmind|title=No Go: Facebook fails to spoil Google's big AI day|last=90210|first=HAL|date=2016-01-28|newspaper=The Guardian|language=en-GB|issn=0261-3077|access-date=2016-02-01}}</ref>


darkforest is named after [[Liu Cixin]]'s science fiction novel ''[[The Dark Forest]]''.<ref>{{cite web|url=http://xw.qq.com/tech/20160301024236/TEC201603010242360D|language=Chinese |trans-title=FB Go Project Manager Discusses Man vs Machine Showdown|title=FB围棋项目负责人谈人机大战|date=2016-03-01|publisher=Tencent}}</ref>
Darkforest is named after [[Liu Cixin]]'s science fiction novel ''[[The Dark Forest]]''.<ref>{{cite web|url=http://xw.qq.com/tech/20160301024236/TEC201603010242360D|title=FB围棋项目负责人谈人机大战|date=2016-03-01|publisher=Tencent|language=Chinese|trans-title=FB Go Project Manager Discusses Man vs Machine Showdown}}</ref>


==See also==
== Background ==
Competing with top human players in the ancient game of Go has been a long-term goal of artificial intelligence. Go’s high [[branching factor]] makes traditional search techniques ineffective, even on cutting-edge hardware, and Go’s [[evaluation function]] could change drastically with one stone change. However, by using a Deep [[Convolutional neural network|Convolutional Neural Network]] designed for long-term predictions, '''Darkforest''' has been able to substantially improve the win rate for bots over more traditional [[Monte Carlo tree search|Monte Carlo Tree Search]] based approaches.
* [[Go and mathematics]]


==References==
=== Matches ===
Against human players, '''Darkfores2''' achieves a stable ''[[Go ranks and ratings|3d ranking]]'' on [[KGS Go Server]], which roughly corresponds to an advanced amateur human player. However, after adding [[Monte Carlo tree search|Monte Carlo Tree Search]] to '''Darkfores2''' to create a much stronger player named '''darkfmcts3,''' it can achieve a ''5d ranking'' on the KGS Go Server.
{{Reflist}}


==== Against other AI ====
'''darkfmcts3''' is on par with state-of-the-art Go AIs such as Zen, DolBaram and [[Crazy Stone (software)|Crazy Stone]] but lags behind AlphaGo<ref>{{Cite journal|last=Silver|first=David|last2=Huang|first2=Aja|last3=Maddison|first3=Chris J.|last4=Guez|first4=Arthur|last5=Sifre|first5=Laurent|last6=van den Driessche|first6=George|last7=Schrittwieser|first7=Julian|last8=Antonoglou|first8=Ioannis|last9=Panneershelvam|first9=Veda|date=2016-01-28|title=Mastering the game of Go with deep neural networks and tree search|url=http://www.nature.com/nature/journal/v529/n7587/full/nature16961.html|journal=Nature|language=en|volume=529|issue=7587|pages=484–489|doi=10.1038/nature16961|issn=0028-0836}}</ref>. It won 3rd place in [https://www.gokgs.com/tournEntrants.jsp?sort=s&id=1005 January 2016 KGS Bot Tournament] against other Go AIs.

=== News Coverage ===
After [[Google]]'s [[AlphaGo]] won against [[Fan Hui]] in 2015, [[Facebook]] made its AI's hardware designs public, alongside releasing the code behind DarkForest as open-source, along with heavy recruiting to strengthen its team of AI engineers.<ref name=":1" />

== Style of play ==
'''Darkforest''' uses a neural network to sort through the 10<sup>100</sup> board positions, and find the most powerful next move.<ref name=":0">{{Cite web|url=https://www.technologyreview.com/s/544181/how-facebooks-ai-researchers-built-a-game-changing-go-engine/|title=How Facebook’s AI Researchers Built a Game-Changing Go Engine|website=MIT Technology Review|access-date=2016-04-24}}</ref> However, neural networks alone cannot match the level of good amateur players or the best search-based Go engines, and so '''Darkfores2''' combines the neural network approach with a search-based machine. A database of 250,000 real Go games were used in the development of '''Darkforest''', with 220,000 used as a training set and the rest used to test the neural network's ability to predict the next moves played in the real games. This allows Darkforest to accurately evaluate the global state of the board, but local tactics were still poor. Search-based engines have poor global evaluation, but are good at local tactics. Combining these two approaches is difficult because search-based engines work much faster than neural networks, a problem which was solved in '''Darkfores2''' by running the processes in parallel with frequent communication between the two.<ref name=":0" />

=== Conventional Strategies ===
Go is generally played by analyzing the position of the stones on the board. Some advanced players have described it as playing in some part subconsciously. Unlike chess and checkers, where AI players can simply look farther forward at moves than human players, but with each round of Go having on average 250 possible moves, that approach is ineffective. Instead, neural networks copy human play by training the AI systems on images of successful moves, the AI can effectively learn how to interpret how the board looks, as many grandmasters do.<ref name=":3">{{Cite web|url=http://www.wired.com/2015/12/google-and-facebook-race-to-solve-the-ancient-game-of-go/|title=Google and Facebook Race to Solve the Ancient Game of Go With AI|website=WIRED|language=en-US|access-date=2016-04-24}}</ref> In November 2015, Facebook demonstrated the combination of MCTS with neural networks, which played with a style that "felt human".<ref name=":3" />

=== Flaws ===
It has been noted that Darkforest still has flaws in its play style. Sometimes the bot plays [[tenuki]] ("move elsewhere") pointlessly local powerful moves are required. When the bot is losing, it shows the typical behavior of MCTS, that plays bad moves and loses more. The Facebook AI team has acknowledged these as areas of future improvement.<ref>{{Cite web|url=http://www.bbc.com/news/technology-35419141|title=Facebook trains AI to beat humans at Go board game - BBC News|website=BBC News|language=en-GB|access-date=2016-04-24}}</ref>

== Program Architecture ==
The family of '''Darkforest''' computer go programs is based on [[Convolutional neural network|convolution neural networks]].<ref name=":1" /> The most recent advances in '''Darkfmcts3''' combined convolutional neural networks with more traditional [[Monte Carlo tree search]].<ref name=":1" /> Darkfmcts3 is the most advanced version of Darkforest, which combines Facebook's most advanced convolutional neural network architecture from Darkfores2 with a [[Monte Carlo tree search]].

'''Darkfmcts3''' relies on a [[Convolutional neural network|convolution neural networks]] that predicts the next k moves based on the current state of play. It treats the board as a 19x19 image with multiple channels. Each channel represents a different aspect of board information based upon the specific style of play. For standard and extended play, there are 21 and 25 different channels, respectively. In standard play, each players [[List of Go terms#Liberty|liberties]] are represented as six binary channels or planes. The respective plane is true if the player one, two, or three or more liberties available. [[List of Go terms#Ko|Ko]] (i.e. illegal moves) is represented as one binary plane. Stone placement for each opponent and empty board positions are represented as three binary planes, and the duration since a stone has been placed is represented as real numbers on two planes, one for each player. Lastly, the opponents rank is represented by nine binary planes, where if all are true, the player is a 9d level, if 8 are true, a 8d level, and so forth. Extended play additionally considers the boarder (binary plane that is true at the border), position mask (represented as distance from the board center, i.e. <math> x^{(-0.5 * distance^2)}</math>, where <math>x</math> is a real number at a position), and each player's territory (binary, based on which player a location is closer to).

Darkfmct3 uses a 12-layer full convolutional network with a width of 384 nodes without weight sharing or pooling. Each convolutional layer is followed by a [[Rectifier (neural networks)|rectified linear unit]], a popular activation function for deep neural networks.<ref>{{cite journal|last2=Bengio|first2=Yoshua|last3=Hinton|first3=Geoffrey|date=27 May 2015|title=Deep learning|journal=Nature|volume=521|issue=7553|pages=436–444|doi=10.1038/nature14539|last1=LeCun|first1=Yann}}</ref> A key innovation of Darkfmct3 compared to previous approaches is that it uses only one [[softmax function]] to predict the next move, which enables the approach to reduce the overall number of parameters.<ref name=":1" /> Darkfmct3 was trained against 300 random selected games from an empirical dataset representing different game stages. The learning rate was determined by vanilla [[stochastic gradient descent]].

Darkfmct3 [[Synchronization (computer science)|synchronously]] couples a convolutional neural network with a [[Monte Carlo tree search]]. Because the convolutional neural network is computationally taxing, the Monte Carlo tree search focuses computation on the more likely game play trajectories. By running the neural network synchronously with the Monte Carlo tree search, it is possible to guarantee that each node is expanded by the moves predicted by the neural network.

== Comparison to other systems ==
'''Darkfores2''' beats '''Darkforest''', it's neural network-only predecessor around 90% of the time, and Pachi, one of the best search-based engines around 95% of the time.<ref name=":0" /> On the [[Go ranks and ratings|Kyu rating system]], Darkforest holds a 1-2d level. '''Darkfores2''' achieves a stable 3d level on KGS Go Server as a ranked bot.<ref name="facebook-paper2" /> With the added [[Monte Carlo tree search]], '''Darkfmcts3''' with 5,000 rollouts beats Pachi with 10k rollouts in all 250 games; with 75k rollouts it achieves a stable 5d level in KGS server, on par with state-of-the-art Go AIs (e.g., Zen, DolBaram, CrazyStone); with 110k rollouts, it won the 3rd place in January KGS Go Tournament.<ref name=":2" />

== See also ==
* [[Go and mathematics]]

== References ==
{{Reflist}}{{compsci-stub}}{{go-stub}}
[[Category:Artificial intelligence]]
[[Category:Artificial intelligence]]
[[Category:Computer Go]]
[[Category:Computer Go]]
Line 18: Line 48:
[[Category:Machine learning]]
[[Category:Machine learning]]
[[Category:Facebook]]
[[Category:Facebook]]

{{compsci-stub}}
{{go-stub}}

Revision as of 02:19, 25 April 2016

Darkforest is a computer go program developed by Facebook, based on deep learning techniques using a convolutional neural network. Its updated version Darkfores2 combines the techniques of its predecessor with Monte Carlo tree search.[1][2] The MCTS effectively takes tree search methods commonly seen in computer chess programs and randomizes them.[3] With the update, the system is known as Darkfmcts3.[4] The AI technology developed for these systems may eventually end up in a new AI assistant named M.[5] Other applications include the News Feed and photo identification for visually impaired Facebook users.[6]

Darkforest is of similar strength to programs like CrazyStone and Zen.[7] It has not been tested a against professional human player, however, Google's AlphaGo program won against a professional player in October 2015 using a similar combination of techniques .[8]

Darkforest is named after Liu Cixin's science fiction novel The Dark Forest.[9]

Background

Competing with top human players in the ancient game of Go has been a long-term goal of artificial intelligence. Go’s high branching factor makes traditional search techniques ineffective, even on cutting-edge hardware, and Go’s evaluation function could change drastically with one stone change. However, by using a Deep Convolutional Neural Network designed for long-term predictions, Darkforest has been able to substantially improve the win rate for bots over more traditional Monte Carlo Tree Search based approaches.

Matches

Against human players, Darkfores2 achieves a stable 3d ranking on KGS Go Server, which roughly corresponds to an advanced amateur human player. However, after adding Monte Carlo Tree Search to Darkfores2 to create a much stronger player named darkfmcts3, it can achieve a 5d ranking on the KGS Go Server.

Against other AI

darkfmcts3 is on par with state-of-the-art Go AIs such as Zen, DolBaram and Crazy Stone but lags behind AlphaGo[10]. It won 3rd place in January 2016 KGS Bot Tournament against other Go AIs.

News Coverage

After Google's AlphaGo won against Fan Hui in 2015, Facebook made its AI's hardware designs public, alongside releasing the code behind DarkForest as open-source, along with heavy recruiting to strengthen its team of AI engineers.[3]

Style of play

Darkforest uses a neural network to sort through the 10100 board positions, and find the most powerful next move.[11] However, neural networks alone cannot match the level of good amateur players or the best search-based Go engines, and so Darkfores2 combines the neural network approach with a search-based machine. A database of 250,000 real Go games were used in the development of Darkforest, with 220,000 used as a training set and the rest used to test the neural network's ability to predict the next moves played in the real games. This allows Darkforest to accurately evaluate the global state of the board, but local tactics were still poor. Search-based engines have poor global evaluation, but are good at local tactics. Combining these two approaches is difficult because search-based engines work much faster than neural networks, a problem which was solved in Darkfores2 by running the processes in parallel with frequent communication between the two.[11]

Conventional Strategies

Go is generally played by analyzing the position of the stones on the board. Some advanced players have described it as playing in some part subconsciously. Unlike chess and checkers, where AI players can simply look farther forward at moves than human players, but with each round of Go having on average 250 possible moves, that approach is ineffective. Instead, neural networks copy human play by training the AI systems on images of successful moves, the AI can effectively learn how to interpret how the board looks, as many grandmasters do.[12] In November 2015, Facebook demonstrated the combination of MCTS with neural networks, which played with a style that "felt human".[12]

Flaws

It has been noted that Darkforest still has flaws in its play style. Sometimes the bot plays tenuki ("move elsewhere") pointlessly local powerful moves are required. When the bot is losing, it shows the typical behavior of MCTS, that plays bad moves and loses more. The Facebook AI team has acknowledged these as areas of future improvement.[13]

Program Architecture

The family of Darkforest computer go programs is based on convolution neural networks.[3] The most recent advances in Darkfmcts3 combined convolutional neural networks with more traditional Monte Carlo tree search.[3] Darkfmcts3 is the most advanced version of Darkforest, which combines Facebook's most advanced convolutional neural network architecture from Darkfores2 with a Monte Carlo tree search.

Darkfmcts3 relies on a convolution neural networks that predicts the next k moves based on the current state of play. It treats the board as a 19x19 image with multiple channels. Each channel represents a different aspect of board information based upon the specific style of play. For standard and extended play, there are 21 and 25 different channels, respectively. In standard play, each players liberties are represented as six binary channels or planes. The respective plane is true if the player one, two, or three or more liberties available. Ko (i.e. illegal moves) is represented as one binary plane. Stone placement for each opponent and empty board positions are represented as three binary planes, and the duration since a stone has been placed is represented as real numbers on two planes, one for each player. Lastly, the opponents rank is represented by nine binary planes, where if all are true, the player is a 9d level, if 8 are true, a 8d level, and so forth. Extended play additionally considers the boarder (binary plane that is true at the border), position mask (represented as distance from the board center, i.e. , where is a real number at a position), and each player's territory (binary, based on which player a location is closer to).

Darkfmct3 uses a 12-layer full convolutional network with a width of 384 nodes without weight sharing or pooling. Each convolutional layer is followed by a rectified linear unit, a popular activation function for deep neural networks.[14] A key innovation of Darkfmct3 compared to previous approaches is that it uses only one softmax function to predict the next move, which enables the approach to reduce the overall number of parameters.[3] Darkfmct3 was trained against 300 random selected games from an empirical dataset representing different game stages. The learning rate was determined by vanilla stochastic gradient descent.

Darkfmct3 synchronously couples a convolutional neural network with a Monte Carlo tree search. Because the convolutional neural network is computationally taxing, the Monte Carlo tree search focuses computation on the more likely game play trajectories. By running the neural network synchronously with the Monte Carlo tree search, it is possible to guarantee that each node is expanded by the moves predicted by the neural network.

Comparison to other systems

Darkfores2 beats Darkforest, it's neural network-only predecessor around 90% of the time, and Pachi, one of the best search-based engines around 95% of the time.[11] On the Kyu rating system, Darkforest holds a 1-2d level. Darkfores2 achieves a stable 3d level on KGS Go Server as a ranked bot.[1] With the added Monte Carlo tree search, Darkfmcts3 with 5,000 rollouts beats Pachi with 10k rollouts in all 250 games; with 75k rollouts it achieves a stable 5d level in KGS server, on par with state-of-the-art Go AIs (e.g., Zen, DolBaram, CrazyStone); with 110k rollouts, it won the 3rd place in January KGS Go Tournament.[4]

See also

References

  1. ^ a b Tian, Yuandong; Zhu, Yan (2015). "Better Computer Go Player with Neural Network and Long-term Prediction". arXiv:1511.06410v1 [cs.LG].
  2. ^ "How Facebook's AI Researchers Built a Game-Changing Go Engine". MIT Technology Review. December 4, 2015. Retrieved 2016-02-03.
  3. ^ a b c d e "Facebook AI Go Player Gets Smarter With Neural Network And Long-Term Prediction To Master World's Hardest Game". Tech Times. 2016-01-28. Retrieved 2016-04-24.
  4. ^ a b "Facebook's artificially intelligent Go player is getting smarter". VentureBeat. Retrieved 2016-04-24.
  5. ^ "Teaching machines to see and understand: Advances in AI research". Facebook Code. Retrieved 2016-04-24.
  6. ^ "Facebook Aims Its AI at the Game No Computer Can Crack". WIRED. Retrieved 2016-04-24.
  7. ^ http://livestream.com/oxuni/StracheyLectureDrDemisHassabis
  8. ^ 90210, HAL (2016-01-28). "No Go: Facebook fails to spoil Google's big AI day". The Guardian. ISSN 0261-3077. Retrieved 2016-02-01. {{cite news}}: |last= has numeric name (help)
  9. ^ "FB围棋项目负责人谈人机大战" [FB Go Project Manager Discusses Man vs Machine Showdown] (in Chinese). Tencent. 2016-03-01.
  10. ^ Silver, David; Huang, Aja; Maddison, Chris J.; Guez, Arthur; Sifre, Laurent; van den Driessche, George; Schrittwieser, Julian; Antonoglou, Ioannis; Panneershelvam, Veda (2016-01-28). "Mastering the game of Go with deep neural networks and tree search". Nature. 529 (7587): 484–489. doi:10.1038/nature16961. ISSN 0028-0836.
  11. ^ a b c "How Facebook's AI Researchers Built a Game-Changing Go Engine". MIT Technology Review. Retrieved 2016-04-24.
  12. ^ a b "Google and Facebook Race to Solve the Ancient Game of Go With AI". WIRED. Retrieved 2016-04-24.
  13. ^ "Facebook trains AI to beat humans at Go board game - BBC News". BBC News. Retrieved 2016-04-24.
  14. ^ LeCun, Yann; Bengio, Yoshua; Hinton, Geoffrey (27 May 2015). "Deep learning". Nature. 521 (7553): 436–444. doi:10.1038/nature14539.