Learning to Play Go

Boardgames can be the proving ground for major technology breakthroughs, but even more importantly Go is just plain fun to play! If you haven’t heard the story of how Go and AlphaGo helped kick off the AI revolution we’re living through today, I’d encourage you to check out this documentary. Go on a full 19 by 19 board is massively complex (estimated to be about 10^170 possible board positions) with a high branching factor (324 squares) which had previously made it very hard for AIs to play Go. However, the innovation of AlphaGo was by having the AI play against itself using neural networks and a monte-carlo tree search algorithm it could use a neural network to efficiently pick which moves were likely right, and massively prune the computational complexity of the game. This idea allowed Deepmind, a subdivision of Google, to beat the long standing South Korean Go champion Lee Sedol 4-1 in a famous match in 2016. Prior to AlphaGo, AIs had only achieved intermediate-level play. The huge leap in performance shocked the Go world. AlphaGo had an impact well beyond the world of Go, however, because the same technique could be used for almost any strategy game. The AlphaGo approach has been adapted for chess, shogi, checkers, and so many more games. Although AlphaGo was first trained on human professional games to start the learning process, modern implementations can learn without any guidance from humans. By starting without any human games to bias their strategy, modern implementations can discover new strategies that humans haven’t developed previously.


The rules of Go are pretty straightforward to learn, but there is a steep learning curve for the strategy. When I first started playing Go online, I only won 3 out of the first 38 games I played. I didn’t give up though, and with practice I climbed up ranks. Overall I’m glad I learned how to play because it’s been a fun hobby that has improved my concentration and calculation skills under pressure. 


If you’re interested in learning to play, check out https://online-go.com/

About the author

I’m a high school student from the Bay Area. This blog is where I share my thoughts, experiences, and insights about computing, nature, and other interesting topics.

I’m interested in nature, the environment, biology, geology, and computers. I’ve been coding for 5 years and have been learning languages like Rust, Python, R, JavaScript, HTML, CSS, C++, and Java. I participate in my school’s robotics club and like finding applications of technology to learn about nature. I’m also an avid runner, participating in cross-country and track.