Deep Learning and the Game of Go teaches you how to apply the power of deep learning to complex reasoning tasks by building a Go-playing AI. After exposing you to the foundations of machine and deep learning, you'll use Python to build a bot and then teach it the rules of the game.

Using the game of Go as a way to teach machine learning is inspired and inspiring. Highly recommended!

The ancient strategy game of Go is an incredible case study for AI. In 2016, a deep learning–based system shocked the Go world by defeating a world champion. Shortly after that, the upgraded AlphaGo Zero crushed the original bot by using deep reinforcement learning to master the game. Now, you can learn those same deep learning techniques by building your own Go bot!

Deep Learning and the Game of Go introduces deep learning by teaching you to build a Go-winning bot. As you progress, you’ll apply increasingly complex training techniques and strategies using the Python deep learning library Keras. You’ll enjoy watching your bot master the game of Go, and along the way, you’ll discover how to apply your new deep learning skills to a wide range of other scenarios!

E.1 Registering and activating your bot at OGS

A.2 Calculus in five minutes: derivatives and finding maxima

13.5 Practical considerations for training your own AlphaGo

9.3.4 Loading and saving your agent from disk

9.2 What goes into experience?

8.6.1 Registering a bot at the Online Go Server (OGS)

8.5.2 Let your bot play against other Go programs

8.5.1 When a bot should pass or resign

8.4 Talking to other bots: the Go Text Protocol

8.3 Training and deploying a Go bot in the cloud

8.2.1 An end-to-end Go bot example

7.2.1 Replaying a Go game from an SGF record

7.1.2 Downloading and replaying Go game records from KGS

6.7 Putting it all together for a stronger Go move prediction network

6.5.1 Using the softmax activation function in the last layer

6.3.4 Go move prediction with feed-forward neural networks in Keras

6.3.3 Running a familiar first example with Keras

5.5.3 Dense layers in Python as building block for feed-forward networks

5.2.2 Networks with more than one output dimension

4.5.3 Practical considerations for applying Monte Carlo tree search to Go

4.5.2 How to select which branch to explore

3.4 Creating your first bot: the weakest Go AI imaginable

3.1.3 Placing and capturing stones on a go board

3.1.2 Connected groups of stones in Go: Strings

2.5.3 Reducing the number of moves to consider

2.4 Where to learn more

1.4 What you will learn in this book

1.1.2 What you can and cannot do with machine learning

1.1.1 How does machine learning relate to AI?

takes you straight to the book

All you need are basic Python skills and high school–level math. No deep learning experience required.

About the authors

Max Pumperla and Kevin Ferguson are experienced deep learning specialists skilled in distributed systems and data science. Together, Max and Kevin built the open source bot BetaGo.

We interviewed Kevin as a part of our Six Questions series. Check it out here.