Paper Breakdowns  /  AlphaGo
Paper 71~11 min readNature 2016worked math + runnable code
Paper Breakdown

AlphaGo,
explained.

Go was supposed to be safe from computers for another decade. Its board has more possible positions than there are atoms in the universe, so brute-force search — the thing that cracked chess — simply can't reach the bottom. AlphaGo won anyway, by teaching search where to look: a policy network to whisper "these are the moves worth considering," a value network to judge "here's who's ahead," and a tree search to weave them into a plan. It beat a world champion, and its recipe reshaped how machines make decisions. Here's the search, the networks, and the rule that balances them.

Video breakdown
The animated walkthrough is in production.
Read the full breakdown below in the meantime ↓
01

Why Go resisted

Chess programs win by searching: look ahead many moves, evaluate the resulting positions with a hand-crafted scoring function, and pick the line that leads somewhere good. Go breaks this on two axes. Its branching factor is enormous — around 250 legal moves per turn versus chess's ~35 — so the tree explodes far faster. And no one knew how to write a good evaluation function for a Go position; the value of a board is famously subtle, resisting the tidy piece-counting that works in chess.

So AlphaGo's problem was really two problems: the tree is too wide to search fully, and positions are too subtle to score by rule. Its answer was to learn both from data. A policy network learned which moves are worth considering — narrowing the tree — and a value network learned to score positions — replacing the missing evaluation function. Deep learning supplied the intuition; tree search supplied the calculation. Neither alone was enough; together they were superhuman.

The one-sentence version

Learn a policy network to narrow the search to promising moves and a value network to judge positions, then let Monte Carlo Tree Search combine them into strong play.

02

Policy and value

Two deep networks read the board. The policy network outputs a probability over moves — a prior saying which moves look good before any search. This is what tames the branching factor: instead of considering all ~250 moves seriously, the search concentrates on the handful the policy rates highly. The value network outputs a single number — an estimate of the probability that the current player wins from this position. This is the learned evaluation function Go never had.

Both are crucial to making search tractable. Earlier Go programs evaluated a position by playing it out to the end with fast random moves (Monte Carlo rollouts) — noisy and slow. AlphaGo's value network estimates the outcome directly from the position, and its policy network makes any rollouts it does far smarter. The networks turn an impossible search into a guided one.

03

Tree search + PUCT

Monte Carlo Tree Search grows a search tree one simulation at a time. Each simulation: select a path down the tree, expand a new leaf, evaluate it with the value network, and back up the result to update every node on the path. The heart is the selection rule, PUCT, which decides at each node which move to explore by balancing exploitation against exploration:

score(a) = Q(a) + c · P(a) · √( Σ N ) / ( 1 + N(a) )

The first term Q(a) = W/N is the move's average result so far — pure exploitation, pick what's been working. The second rewards moves with high policy prior P(a) and few visits N(a) — exploration, try promising or under-explored moves. Early on, the prior dominates and search follows the policy network's intuition; as a move accumulates visits, its exploration bonus shrinks and the choice increasingly trusts its measured value. Each simulation backs up its leaf value, incrementing visit counts and refining Q. After thousands of simulations, the most-visited move at the root is played. The runnable version below shows PUCT favoring the prior early and the value late.

04

How it learned

AlphaGo's networks were trained in stages, each building on the last:

The training pipeline
Imitate humansSupervised learning: policy net predicts expert moves from a database of human games.
Self-play RLThe policy improves by playing itself and reinforcing moves that led to wins.
Value from self-playThe value net learns to predict the winner of self-play games.
Search at play timeMCTS uses both networks to choose moves in real games.

Starting from human games gave the policy a strong initialization; self-play then pushed it past human play by discovering moves no human database contained. The value network, trained on the outcomes of these self-play games, learned to judge positions the way a strong player would. Its successor, AlphaGo Zero, later removed the human data entirely — learning from pure self-play, tabula rasa, and surpassing the original.

RUN IT YOURSELF

PUCT: exploit vs explore

The engine of AlphaGo's search is one selection formula. This computes PUCT — Q(a) plus an exploration bonus that grows with the policy prior P and shrinks with visits N. Watch it in action: the mean value is Q = W/N, the exploration term collapses as a move is visited more (3.75 at one visit, 0.15 at fifty), so early in the search two equally-tried moves are separated by their prior (the policy network's hunch), while late in the search — with thousands of visits — the higher-Q move wins even if its prior was low. Backing up a result increments the visits and updates Q. Change the priors, values, or visit counts and watch the balance tip.

CPython · WebAssembly
05

Beating a champion

In March 2016, AlphaGo beat Lee Sedol, one of the world's top players, 4–1 — a milestone most had expected to be a decade away:

ResultSignificance
First to beat a Go proDefeated a top human at a game long considered AI's grand challenge.
Creative playMove 37 in game 2 — a move no human would play — was later judged brilliant, a sign of genuine originality.
Search + learningNeither deep nets nor tree search alone sufficed; the combination did.
Cultural momentA landmark that put deep RL, and AI broadly, in the public eye.

The technical lesson outlasted the match: learned intuition plus deliberate search is a powerful pattern. The networks provided fast, pattern-based judgment; the search provided slow, careful lookahead; each covered the other's weakness. That division — System-1 nets guiding System-2 search — became a template far beyond Go.

06

What it became

AlphaGo's lineage generalized fast. AlphaGo Zero dropped human data and learned Go from scratch by self-play; AlphaZero generalized the same algorithm to chess and shogi with no game-specific knowledge; MuZero learned the rules themselves, planning in a learned model of the environment. The through-line is a single algorithm — search guided by learned policy and value, improved by self-play — applied ever more generally.

Its deepest influence, though, is the idea of scaling test-time search. AlphaGo showed that spending more compute at decision time — running more MCTS simulations — makes a system stronger, separately from training. That principle, learned intuition amplified by deliberate search, is exactly what today's reasoning models revive: generate and evaluate many lines of thought before answering. From a board game to self-improving reasoners, the same bet — think longer, search guided by learned judgment — keeps paying off.

Worth knowing

The exploration constant c in PUCT is the knob that sets how boldly the search tries the policy's suggestions versus trusting measured results — too low and it under-explores, too high and it wastes simulations. Tuning it is part of making MCTS work.

Frequently asked

Quick answers

What made AlphaGo work?

Combining Monte Carlo Tree Search with a policy network (which moves to try) and a value network (how good a position is) — learned intuition guiding deliberate search.

What is PUCT?

The selection rule Q(a) + c·P(a)·√ΣN/(1+N(a)): exploit high average value Q, explore moves with high prior P and few visits N.

Why couldn't brute force solve Go?

Its branching factor (~250) and lack of a good hand-written position evaluator make full search infeasible; AlphaGo learned both a move filter and an evaluator.

What came after?

AlphaGo Zero (self-play only), AlphaZero (chess/shogi too), and MuZero (learns the rules) — and the test-time-search idea now central to reasoning models.

Mastering the Game of Go with Deep Neural Networks and Tree Search · Silver, Huang, Maddison, et al. · DeepMind · Nature 2016 · read the original paper → · Vibe Engines · 2026
Finished this one? 0 / 101 Paper Breakdowns done

Explore the topic

See this alongside everything else on the same subject — handbooks, system designs, challenges and tools, in one place.

More Paper Breakdowns