Drop7 Research
value-policy-learning

Phase distillation

rejectedevidence: task-record onlypublic information

Watch a slow but reliable search play, and train a fast network to make the same choices — once by copying the column it picked, once by copying the numbers behind the pick.

Take the exact depth-3 phase policy, which is trustworthy but expensive, and compress it into a network that answers instantly.

rejectedevidence: task-record onlypublicreads only what a player can see

Nothing privileged is involved. The teacher is itself a public-information search, so the student never has access to anything a player could not see — this is compression, not the oracle shortcut used elsewhere in the repository.

The intuition

A search that looks three of the player's own moves ahead and averages five representative chance outcomes at every dealt disc has to evaluate a very large number of boards for one decision. If its decisions are a function of the visible position — and they are, since it reads nothing else — then in principle a network can learn that function and reproduce the decisions at a fraction of the cost. Cheap decisions are not a footnote here: everything the research would like to do (longer horizons, more chance samples, more games) is bounded by how long one decision takes.

Two ways to copy a teacher, and this directory tries both.

  • Copy the choice. Ask only "which column did the teacher play?" and train a classifier over the seven columns. Simple, and it throws away everything the teacher knew about the six columns it rejected.
  • Copy the numbers. Ask the teacher for the value it assigned each column and regress those values. Richer, and it keeps the near-misses — the positions where two columns were nearly equal are exactly the ones a classifier learns nothing useful from.

How it works

  1. Generate positions. Games are played by the reference exact depth-3, five-stratum phase policy. Trajectories are restricted to the training seed partition (0x3d70…) so evaluation lanes stay untouched.
  2. Canonicalize. Each position is reflected into whichever of its two horizontal orientations sorts first, and the teacher's column is reflected with it, so the student cannot waste capacity learning that the board is symmetric.
  3. Extract inputs.
    • phase-student.cpp feeds the network a sparse encoding of the public board: a separate indicator for every cell and token, the visible next disc, the rise phase, and column-height and row-count summaries, into a 128/128 network with seven outputs.
    • phase-q-student.cpp builds a 112-number feature vector describing the current position and the chosen action, together with summaries of five common-random, stratified one-ply successors, into a 128/64 network with a single output.
  4. Fit. The action student is trained to reproduce the teacher's column; the value student is trained to reproduce the teacher's scalar action value.
  5. Play. The action student plays its highest-scoring legal column directly; the value student scores every legal column and plays the best.

The second design deserves a note: giving the model common-random one-ply successors is an early, cheap version of the idea that eventually became the afterstate corpus — judge a move by the position it leaves behind, under futures shared across all the candidates so the comparison between them is fair.

What happened

Both were retired. The index records that the action student's agreement with its teacher on held-out positions was poor and its whole-game play was poor with it; and that the value student fit its training targets but did not turn into a policy that could stand on its own.

There is no ledger entry, no cohort table and no retained number for either program. That is the whole of the retained evidence, and it is thin: the outcome is recorded, the measurement is not.

The technical record

Two rows in the experiment index, both labelled task-record only — the referenced research conversation reports the outcome but it was never promoted into the ledger:

  • "Policy distillation … Clones the exact phase D3/s5 action policy from public board tokens. Rejected — task-record only; held-out top-action agreement and whole-game play were poor."
  • "Q distillation … Regresses scalar teacher Q from phase features and common one-ply successor summaries. Rejected — task-record only; training fit did not translate to a viable standalone policy."

A search of the ledger for either source file returns nothing, so no retained result exists beyond those two sentences: no agreement percentage, no cohort, no paired comparison. Everything above about architecture, canonicalization, feature counts and seed partitions is read from the sources themselves and is repository-verified, not evidence of strength.

For a distillation attempt against the same teacher family that does carry ledger numbers, see the D4 root-Q clone.

What this taught us, and what is still open

The recurring shape of every cloning attempt in this repository is a large gap between agreement on the teacher's own positions and agreement on positions the student generated for itself. Once the student plays a slightly different move, it drifts into boards the teacher never visited, and its imitation quality there is unmeasured — the same coverage problem as the sibling trap, arriving through a different door.

What this does not rule out: distillation as an engineering step. If a policy ever qualifies, compressing it is a separate, well-defined problem with its own gate — and one that would be judged on decision agreement and speed, not on whether the student invents strength its teacher never had.

Source files

  • README.mdx
  • phase-q-student.cpp
  • phase-student.cpp