← Back to all papers

AlphaGo: Mastering the Game of Go with Deep Neural Networks and Tree Search

DeepMind — Nature, January 2016

📄 Paper (Nature)

TL;DR: AlphaGo combined two neural networks — a policy network (what move to consider) and a value network (who’s winning) — with Monte Carlo tree search to become the first AI to defeat a professional Go player. It beat 18-time world champion Lee Sedol 4–1, proving that neural network intuition + guided search can solve problems where brute-force search is physically impossible (Go has ~10360 possible games). This became the template for every DeepMind project that followed.

Level 1 — Beginner

Why Go?

By 2016, AI had conquered chess (Deep Blue, 1997), checkers (solved, 2007), and Jeopardy (Watson, 2011). But Go remained the “grand challenge” of game-playing AI.

DimensionChessGo
Board size8×8 (64 squares)19×19 (361 intersections)
Legal positions~1047~10170
Avg moves per turn~35~250
Game tree complexity~10123~10360

10360 is more than the number of atoms in the observable universe (~1080) raised to the power of 4. Brute-force search — the approach that beat Kasparov — is physically impossible for Go.

The core problem

Chess engines work by searching ahead: evaluate millions of future positions, pick the best move. This fails in Go because:

  • Branching factor of 250 means you can’t search deep — 4 moves ahead = 2504 = 3.9 billion positions
  • No good hand-crafted evaluation — the value of a Go position depends on subtle, whole-board patterns that resist rule-based encoding

AlphaGo’s big idea

Replace both components with neural networks:

Traditional game engine:
  Hand-crafted evaluation → How good is this position?
  Exhaustive search       → What moves should I consider?

AlphaGo:
  Value network    → “How good is this position?” (learned)
  Policy network   → “What moves are worth considering?” (learned)
  MCTS             → Intelligent, guided search using both networks

Instead of searching everything, AlphaGo uses the policy network to focus search on promising moves (reducing breadth from 250 to ~10–20), and the value network to evaluate positions without searching to the end of the game (reducing depth).

The two neural networks

Policy network

Input: current board position (19×19 grid). Output: probability distribution over all 361 intersections.

Trained in two phases: (1) Supervised learning on 30 million positions from expert human games — predicts what the human played with 57% accuracy. (2) Reinforcement learning via self-play — discovers moves humans wouldn’t play. The RL policy wins 80% of games against the SL policy.

Value network

Input: current board position. Output: single number between −1 (black loses) and +1 (black wins).

Trained on 30 million self-play positions (one per game to avoid overfitting). Each position is labeled with the game’s eventual outcome.

Monte Carlo tree search — the glue

Current position
  Repeat 1600 times (simulations):
    1. SELECT   — Walk down tree, balancing exploitation and exploration
    2. EXPAND   — Use policy network for candidate moves + priors
    3. EVALUATE — Blend value network score + fast rollout result
    4. BACKUP   — Propagate evaluation back up the tree

  After all simulations: pick the most-visited move

The training pipeline

Phase 1: Learn from humans
  30M human games → SL policy network (57% accuracy)

Phase 2: Get better than humans
  SL policy plays itself → RL policy (wins 80% vs SL)

Phase 3: Learn to evaluate positions
  RL policy plays 30M self-play games → Value network

Phase 4: Combine everything
  Policy + Value + MCTS = AlphaGo

Results

494–1
vs other Go programs
5–0
vs Fan Hui
(European champion)
4–1
vs Lee Sedol
(18× world champion)

AlphaGo’s Move 37 in Game 2 against Lee Sedol — a shoulder hit on the fifth line that no human would play — is considered one of the most creative moves in Go history. Professional commentators initially called it a mistake. It won the game.

Key takeaway

AlphaGo proved that neural networks + search can solve problems that pure search and pure neural networks cannot solve alone. The policy network alone plays at strong amateur level. MCTS with random rollouts plays at intermediate level. Together: superhuman. This became the template for every DeepMind project that followed.

Quiz — Level 1
1. Go’s game tree complexity is ~10360. Why does this make the chess approach (minimax with alpha-beta pruning) infeasible?
Chess engines search deep and evaluate with hand-crafted rules. Go’s branching factor (250 vs 35) prevents deep search, and no hand-crafted evaluation works for Go’s subtle whole-board patterns.
2. AlphaGo trains its value network on 30M self-play games rather than the existing human game database. What goes wrong with human games?
Adjacent positions in a game share ~99% of their board state with the same outcome label. The network memorizes “I’ve seen this trajectory” instead of learning position evaluation. Self-play with one position per game breaks this correlation.
3. During MCTS, AlphaGo picks the move with the highest visit count rather than the highest value. Why?
Visit count is a robust proxy for move quality. High visit count means the move was repeatedly selected and confirmed. A rarely-visited node with high value might just be a lucky sample.
4. The policy network is trained in two phases: SL on human games, then RL via self-play. Consider:
I. SL teaches the network to predict human expert moves with 57% accuracy
II. RL optimizes for winning, discovering moves humans wouldn’t play
III. The RL policy wins 80% of games against the SL policy
IV. The SL phase is unnecessary — RL from random initialization matches the same result
IV is false. RL from random initialization would converge astronomically slowly in Go’s 361-action space. The SL phase gives RL a warm start from human-level play, which is critical for practical training.
5. AlphaGo’s Move 37 in Game 2 against Lee Sedol was initially called a mistake. What does this reveal?
Move 37 emerged from RL self-play, not human imitation. The policy network learned a novel strategy no human had discovered, and MCTS confirmed its value. It violated conventional wisdom but maximized winning probability.

Level 2 — Intermediate

Policy network architecture

A 13-layer convolutional neural network:

Input: 19×19×48 tensor
  └ 19×19 board (stone positions)
  └ 48 feature planes (liberties, ko, recency, color, edge distance)

→ Layer 1: 5×5 filters, 192 channels
→ Layers 2–12: 3×3 filters, 192 channels
→ Layer 13: 1×1 filter → 1 channel
→ Softmax over 361 positions
→ Output: P(a|s) — probability of playing each intersection

No pooling layers — spatial resolution must be preserved because the output is a move on the board. The 48 input features encode domain knowledge: liberties, ladder status, stone recency, ko rules. This is significant manual feature engineering despite the “deep learning” framing.

Supervised learning phase

Training data: 30 million position-move pairs from 160,000 games on the KGS Go server (6–9 dan amateur and professional games).

ModelPrediction Accuracy
Previous SOTA (2015)44.4%
AlphaGo SL policy (12 layers)55.7%
AlphaGo SL policy (13 layers)57.0%

57% sounds low, but when expanded to top-5 predictions, accuracy exceeds 85%. Multiple moves are often equally strong at any given position.

Fast rollout policy

A separate lightweight model for fast game simulations during MCTS:

Main SL PolicyRollout Policy
Architecture13-layer CNNLinear softmax over local patterns
Accuracy57%24.2%
Speed3ms per move2µs per move (1,500× faster)

Reinforcement learning phase

Starting from the SL policy, RL fine-tunes by self-play using the REINFORCE algorithm:

Repeat:
  1. Select opponent from pool of past RL versions
     (random selection prevents overfitting to one opponent)
  2. Play a full game: current RL policy vs. selected opponent
  3. Reward: z = +1 if won, -1 if lost
  4. Update: increase probability of moves that led to wins,
             decrease moves that led to losses

The opponent pool prevents policy collapse — co-evolving into a narrow strategy that beats only itself.

Value network

Same architecture as the policy network but outputs a single scalar via tanh (−1 to +1). Critically trained on self-play data with one position per game to avoid overfitting:

Training DataTrain MSETest MSE
Human games (all positions)0.190.37 (memorization!)
Self-play (1 position/game)0.2260.234 (generalizes)

A single forward pass (~3ms) achieves accuracy comparable to averaging ~10,000 rollouts (~20 seconds) — a ~7,000× speedup.

MCTS details

At each node, the selection formula balances exploitation and exploration (PUCT):

a = argmax[ Q(s,a) + c · P(s,a) · sqrt(sum_b N(s,b)) / (1 + N(s,a)) ]

Q(s,a) = average value from simulations (exploitation)
P(s,a) = prior from policy network (guides exploration)
N(s,a) = visit count (more visits = less exploration bonus)

Leaf evaluation blends value network and rollout: V(s) = (1−λ)·v(s) + λ·z, where λ=0.5.

Subtle detail: MCTS uses the SL policy (not the stronger RL policy) for tree priors. The SL policy models a broader distribution of reasonable human moves, providing better exploration diversity. The RL policy is too peaked toward its own play style.

Ablation — what each component contributes

ConfigurationElo
Raw RL policy (no search)2,181
MCTS + rollouts only2,077
MCTS + SL policy only2,890
MCTS + value network only3,062
MCTS + SL policy + value network3,492
Full AlphaGo (all components)3,739

No single component is sufficient — the synergy is the breakthrough.

Quiz — Level 2
1. AlphaGo’s input uses 48 hand-crafted feature planes. A purist argues this undermines the “deep learning” claim. What’s the most accurate response?
AlphaGo Zero (2017) proved raw stone positions alone are sufficient. The original AlphaGo used hand-crafted features to train efficiently with the data and compute available at the time.
2. The value network trained on human games achieves 99%+ train accuracy but ~50% test accuracy. Which failure mode is this?
Adjacent positions in a game are near-identical with the same outcome label. The network learns “this trajectory leads to a win” instead of evaluating positions independently.
3. MCTS uses the SL policy (not the stronger RL policy) for tree search priors. Why?
The RL policy is too peaked — it strongly prefers its own style, narrowing the search tree excessively. The SL policy considers a broader set of reasonable moves, enabling better exploration.
4. Leaf evaluation blends value network output with a fast rollout result using λ=0.5. Consider:
I. The value network provides biased but low-variance estimates
II. The rollout result provides unbiased but high-variance estimates
III. Blending exploits complementary error profiles from both estimators
IV. Setting λ=1.0 (rollouts only) outperforms the blend in AlphaGo’s ablations
IV is false — the full AlphaGo (blend) achieves Elo 3,739, outperforming any single-estimator version. The value network and rollouts have complementary error profiles that the blend exploits.
5. The ablation shows MCTS + value network alone (Elo 3,062) beats MCTS + rollouts only (Elo 2,077). What does this ~1,000 Elo gap imply?
Learned pattern recognition captures positional understanding that random play misses. But rollouts aren’t useless — the full system (both combined) still scores higher at Elo 3,739.

Level 3 — Expert

Why REINFORCE?

REINFORCE is the simplest policy gradient algorithm — and notoriously high-variance. Why not PPO or A2C?

  • PPO didn’t exist yet (published 2017)
  • The policy was warm-started from SL — RL only needs to fine-tune, reducing variance concerns
  • Binary win/loss rewards eliminate the need for complex reward shaping

The REINFORCE update with baseline: Δθ = α · Σt (zt − v̅) · ∇θ log πθ(at|st)

The baseline v̅ (typically the value function estimate) reduces variance by crediting moves that performed better than expected, rather than all moves in winning games.

Opponent pool — implicit population-based training

The RL policy maintains a pool of past checkpoints. Each game is played against a random past version, not the current self. Without this:

  • The policy develops a narrow strategy exploiting its own weaknesses
  • It never learns to handle diverse play styles
  • A human playing an unexpected opening could exploit the gap

The pool forces robustness against diverse opponents — an implicit form of population-based training.

Value network overfitting — the full experiment

ExperimentTrain MSETest MSEVerdict
Human games, all positions0.190.37Memorizes trajectories
Human games, held-out games0.190.34Still bad — similar positions across games
Self-play, 1 position/game0.2260.234Generalizes — no overfitting

General principle: When training examples are temporally correlated (adjacent timesteps, consecutive frames, nearby sentences), the network can memorize sequential patterns rather than learning the underlying function. Breaking correlation forces genuine learning. This applies to video understanding, RL, and any sequential prediction task.

Virtual losses in distributed MCTS

The distributed version runs many MCTS threads in parallel. Problem: without coordination, multiple threads explore the same promising branch simultaneously.

Thread 1 starts exploring move A:
  Q(s, A) temporarily decreased
  N(s, A) temporarily increased
  → Other threads see move A as less attractive
  → They explore moves B, C, D instead
  → Thread 1 finishes, removes virtual loss, updates real value

This spreads threads across different parts of the tree without explicit communication — an elegant lock-free parallelism technique.

Time management

AlphaGo uses adaptive time allocation based on position complexity:

  • Simple positions (policy confidence >90%): fewer simulations, move quickly
  • Complex positions (high policy entropy): more simulations, think carefully
  • Critical positions (search instability — best move keeps changing): extend time up to 4× normal

The symmetry trick

Go boards have 8-fold symmetry (4 rotations × 2 reflections). Each network evaluation randomly selects one of 8 transformations, effectively averaging over symmetries without extra compute. During training, all 8 symmetries are used for data augmentation.

Distributed architecture

Master (search control)
  └ 1,920 CPUs: rollouts, tree traversal
  └ 280 GPUs: policy + value network evaluation
  Asynchronous pipeline keeps both fully utilized
VersionHardwareElo
Single machine48 CPUs, 8 GPUs2,890
Distributed1,920 CPUs, 280 GPUs3,739

~850 Elo improvement from distribution alone — same networks, more search. Equivalent to 2–3 professional ranks.

Historical convergence

AlphaGo required the convergence of several advances: deep CNNs (2012–2015), GPU computing maturity, MCTS (Coulom, 2006), the UCT formula (Kocsis & Szepesvári, 2006), move prediction from CNNs (Clark & Storkey, 2014), and batch normalization (2015). Without any single one, AlphaGo couldn’t have been built.

Quiz — Level 3
1. The value network overfitting experiment shows train MSE 0.19 but test MSE 0.37 on human games. Switching to self-play with one position per game yields 0.226/0.234. What’s the key insight?
The self-play version has slightly worse train accuracy but dramatically better generalization. Breaking temporal correlation between training examples forces the network to learn position evaluation rather than memorize game trajectories.
2. Virtual losses in distributed MCTS serve which purpose?
When a thread starts exploring a branch, its statistics are temporarily worsened. Other threads naturally pick different branches, spreading exploration across the tree without explicit coordination.
3. AlphaGo uses REINFORCE instead of more modern RL algorithms. Consider these justifications:
I. PPO didn’t exist yet in 2016
II. Strong SL initialization means RL only fine-tunes, reducing variance concerns
III. Binary win/loss rewards eliminate the need for complex reward shaping
IV. REINFORCE consistently outperforms PPO in discrete action spaces
IV is false. PPO dominates REINFORCE in nearly every setting. AlphaGo used REINFORCE because PPO didn’t exist yet, and the strong SL initialization plus binary rewards made the simpler algorithm practical.
4. Distributed AlphaGo (1,920 CPUs, 280 GPUs) gains ~850 Elo over single-machine (48 CPUs, 8 GPUs) using identical networks. What does this imply?
More search with the same networks = stronger play. This suggests the networks hadn’t saturated the information available through search — there was still room to improve by exploring more.
5. A single value network forward pass (~3ms) matches ~10,000 rollouts (~20 seconds) in accuracy. A skeptic argues rollouts are obsolete. Using AlphaGo’s own data, what’s the counter?
The ablation proves the blend outperforms either alone. Value and rollouts have different error profiles that complement each other. The 247 Elo gap (3,739 vs 3,492) is significant.

Level 4 — Frontier

What AlphaGo got wrong

Human data dependency: The pipeline starts with 30M human expert games, creating a ceiling effect (inherits human blind spots), domain specificity (48 hand-crafted features don’t transfer to chess), limited data availability, and a bootstrap problem (needs human experts to exist first).

Rollout weakness: The fast rollout policy (24.2% accuracy) is most unreliable in tactically sharp positions where one wrong move changes the outcome — precisely when evaluation matters most. AlphaGo Zero later dropped rollouts entirely, and performance improved.

Compute: The Lee Sedol match system used 1,920 CPUs + 280 GPUs, estimated at over $1M total. A research demonstration, not a scalable product.

The AlphaGo family tree

AlphaGo (2016, Nature)
  Human data + hand-crafted features + rollouts + value + policy
  └→ AlphaGo Zero (2017, Nature)
  │     NO human data, NO features, NO rollouts. Beat AlphaGo 100-0.
  └→ AlphaZero (2017/2018, Science)
  │     Generalized to chess + shogi. Same algorithm, three games.
  └→ MuZero (2019/2020, Nature)
        Doesn’t know the rules. Learns world model from interaction.

Each step removed a dependency: human data → game specificity → game rules. AlphaGo Zero surpassed the Lee Sedol version after approximately 3 days (~72 hours) of pure self-play training, proving the human data was not just unnecessary — it was a bottleneck.

Beyond games — the template

AlphaGo’s architecture (neural network evaluation + tree search) became a blueprint for diverse domains:

DomainDescendantWhat It Does
Protein foldingAlphaFoldPredicts 3D protein structures from amino acid sequences
Chip designGoogle TPU layoutOptimizes component placement for wire length and power
Theorem provingAlphaGeometrySolves International Math Olympiad geometry problems
Matrix multiplicationAlphaTensorDiscovers faster algorithms for matrix operations
Code generationAlphaCodeGenerates competitive programming solutions

The insight: any problem frameable as sequential decisions over evaluable states can benefit from the AlphaGo paradigm.

The creativity question — Move 37

AlphaGo’s Move 37 in Game 2 — estimated by the policy network at 1-in-10,000 probability of being played by a human — sparked debate about machine creativity. It emerged from RL self-play, not human imitation. Professional commentators called it a mistake before realizing it was brilliant.

Lee Sedol’s counter-punch — Move 78

In Game 4, Lee Sedol played Move 78 — a wedge that the policy network also estimated at 1-in-10,000 probability. It exploited AlphaGo’s coverage problem: moves with near-zero policy priors are never explored deeply by MCTS, even if they’re brilliant. AlphaGo’s response was erratic. Lee Sedol won decisively.

The search-learning tradeoff

Pure learning (no search):  Fast but limited by network capacity. Strong amateur.
Pure search (no learning):  Slow but theoretically optimal. Intermediate.
Learning + Search:          Search amplifies learned knowledge. Superhuman.

Neural networks provide fast, approximate intuition. Search provides slow, precise verification. The combination is greater than either alone. This principle carries through to AlphaFold, AlphaTensor, AlphaGeometry, and beyond.

Historical significance

The Lee Sedol match (March 2016) generated 200 million Weibo pageviews and tens of millions of live stream viewers. Lee Sedol retired from professional Go in November 2019, citing AI’s dominance. The Ke Jie match (May 2017) saw AlphaGo win 3–0 against the world #1.

Final scorecard

DimensionRatingNotes
Novelty★★★★★First superhuman Go AI; combined known techniques in a new way
Impact★★★★★Spawned an entire research paradigm; changed public perception of AI
Reproducibility★★★Architecture is detailed but compute requirements make reproduction expensive
Technical depth★★★★Elegant integration of multiple components, each well-motivated
Writing quality★★★★★One of the best-written Nature papers in recent memory
Longevity★★★★★Search + learning paradigm is foundation of everything DeepMind has done since
Bottom line

The paper that made the world take AI seriously. Not the first superhuman game AI (Deep Blue, 1997), but the first to suggest that AI could develop genuine strategic intuition — and the first to hint that this intuition might transfer beyond games. The search + learning paradigm it established is now the foundation of DeepMind’s work in protein folding, mathematics, chip design, and beyond.

Quiz — Level 4
1. AlphaGo Zero eliminated human data and beat AlphaGo 100-0. What does this imply about AlphaGo’s supervised learning phase?
Human expert biases constrained what RL could discover. Starting from scratch allowed self-play to explore strategies no human had found, ultimately reaching a higher ceiling.
2. Lee Sedol’s Move 78 in Game 4 exploited a specific architectural weakness. Which one?
If the policy network gives a move near-zero probability, MCTS effectively never visits it — even if it’s brilliant. This coverage problem is a fundamental limitation of policy-guided search.
3. AlphaGo’s “search + learning” paradigm has been applied to protein folding, chip design, and theorem proving. What makes a domain suitable?
The paradigm requires: a definable state space, an action space, and a reward signal. It doesn’t need to be a game, have human data, or have a small state space — protein folding has none of these.
4. The AlphaGo lineage removed dependencies: human data (Zero), game specificity (AlphaZero), game rules (MuZero). Which claim is false?
Domain-specific knowledge doesn’t always hurt. It helped AlphaGo train faster — it just capped the ceiling. Each successor traded faster training for higher generality and ultimately higher peak performance.
5. A colleague claims AlphaGo is “just brute-force search with better heuristics.” Using Move 37 as evidence, what’s the strongest counter?
Move 37 wasn’t found by brute-force at game time. The RL policy learned a strategic concept no human had discovered in thousands of years. MCTS confirmed its value, but the insight was in the network, not the search.
← Back to all papers