Game of Go
This is not about golang, but about the Game of Go.
If you don’t know what it is about, you can discover the game of go on Sensei’s Library - What is Go? and interactively discover the rules of the game by following the tutorial at The Interactive Way to Go (also available in a lot of other languages).
Game resources
- Sensei’s Library, and its Fuseki pages for the opening
- Guo Juan’s Internet Go School
Computer Go
Go is interesting for a computer scientist because 1) the possible combinations of valid positions outrun by far any computer or computer cluster, forbidding bruteforce approaches and 2) comparative evaluation of two positions is very difficult for a computer.
Traditionally, people tried to make computers play go with algorithms that mimic human reflection and strategy, achieving very poor results (any good beginner could beat the strongest bot). Two approaches changed that. From 2006, “Monte Carlo” tree search (bots that evaluate a position from the statistics of a high number of random games played out from it, which parallelises across independent machines). From 2014, convolutional networks trained on databases of professional games. AlphaGo combined the two, beat Fan Hui in October 2015 and Lee Sedol in March 2016.
- AlphaGo vs Fan Hui: British Go Association - DeepMind 2016 Summary
- AlphaGo vs Lee Sedol: Wikipedia - AlphaGo versus Lee Sedol
Convolutional Neural Networks
- Clark and Storkey, Teaching Deep Convolutional Neural Networks to Play Go (2014)
- Maddison, Huang, Sutskever and Silver, Move Evaluation in Go Using Deep Convolutional Neural Networks (ICLR 2015, PDF)