Machine Learning in the Game of Go

The game of Go is one of the oldest and most popular board games in the world, combining simple rules with high strategic complexity. As the last remaining "computer-friendly" (finite, discrete, zero-sum, perfect information, etc.) game in which the world's best computer programs still play below amateur level, it is also considered one of the "grand challenges" of artificial intelligence.

We have collected millions of recorded Go games between human players. This rich source of data could be explored by machine learning in a number of ways. Interesting questions include:

Openings:
Can we build a good Go opening book from these recorded games?
Influence:
Can we learn an influence function that is optimized by the openings that humans play?
Life and Death:
Can we learn to predict which groups of stones will survive and which won't?
Evaluation:
Can we learn to predict the score from the current board position?
Scoring:
Can we learn to score a finished game? (Yes, even that's very hard for computers!)
Challenges include how to detect and reject contaminated data, how to organize very large, efficient data structures in limited memory, how to do efficient machine learning on large amounts of data, and how to recognize equivalent positions under reflection, rotation, and/or swapping the players' colors. You should be a proficient programmer and comfortable in a Unix/Linux environment. Prior knowledge of Go is not required; through this project you will learn much about this fascinating game.


06/06 - N. Schraudolph