Lab Notebook
Metric evolution, seed variance, and experimental verdicts for the depth-limited search layer. Every number is traced to a commit or a committed log (hover the ⎇ ref chips).
Why gates, seeds, and CIs
This project has a documented history of confident corrections invalidated by data — a distilled network that regressed head-to-head, richer card abstractions that only looked worse because of sample starvation, three independent “zero” results for river re-solving. So every mechanism is gated: it must beat the baseline on a measured, seed-replicated metric before it is kept.
The load-bearing lesson is seed variance. The same strategy measures anywhere from 544 to 1308 mbb/decision across seeds. A single-seed number is one draw, not a level — so verdicts use pooled means with CIs, and paired (CRN) deltas for A/B, never a lone seed.
Metric evolution — LBR proxy by blueprint
Comparability caveat: LBR is a lower-bound proxy, not true exploitability, and it is notcomparable across action-set sizes (a wider tree gives the exploiter a higher max) or across metric generations. Bars are shaded by role; compare only within a tree/metric group. Whiskers are ±1 stderr.
Metric generations
▤ project_exploitability_rewritebest-response saw the villain’s exact cards → measured deal variance, not strategy quality. Disagreed with head-to-head results.
⎇ 92f41ceopponent hand marginalised uniformly. Correct far from equilibrium, but floors near it — cannot separate a 0.22 strategy from a 0.08 one on Leduc.
⎇ 92f41ceBayes (reach-weighted) beliefs + stratified depth sampling + per-node samples for correct CRN-paired SE. Ordering restored (r=0.996 vs exact on Leduc).
CFV network generations — river-value holdout MAE
The ReBeL on-policy loop: the value net must be trained on the PBSs the depth-limited solver actually queries, not just blueprint self-play. The on-policy MAE (red) started 2.9× the base MAE and closed with each retraining generation.
| net | data | base MAE | on-policy MAE | note | src |
|---|---|---|---|---|---|
| b2 | 5k base | 0.046 | 0.134 | first river net; on-policy 2.9× base — solver-iterate ranges are sharper | ⎇ 5920077 |
| b4 | 15k base + 4.5k on-policy | 0.040 | 0.068 | ReBeL on-policy retraining halves the on-policy gap | ⎇ acff67d |
| b5 | 25k base + 10.5k on-policy | 0.038 | 0.062 | PRODUCTION CFV net; more data, best aggregate MAE | ▤ gate_b4_vs_b5.log |
Seed variance — the gate, replicated
The search layer’s gate: whole-strategy LBR of the depth-limited agent minus the v16c blueprint, CRN-paired per seed. Below Δ = 0 means the search agent is less exploitable. The result is replicated across two independent depth-sampling schemes — the discipline the whole page is about.
▤ gate_uniform_20seed.txtStratified sampling (stratified depth sampling · seeds 42–45 · ~28 override nodes/seed) lifts turn/river nodes from ~8 to ~28 per seed, tightening the paired SE. Both nets land at Δ ≈ −31, consistent with the uniform 20-seed −36.3 ± 16.4. ▤ gate_b4_vs_b5.log
Decision log
| verdict | measured basis | why | src |
|---|---|---|---|
| Unsafe re-solving kept (no gadget) | Leduc Phase 1: agent expl 1.365 < blueprint 1.562 (Δ −0.197) | unsafe re-solving already lowered exploitability; the safe gadget was only to be added if unsafe raised it — it did not. | ⎇ 6caadad |
| LBR metric: Bayes beliefs over uniform | Leduc: uniform belief floors near equilibrium (exact 0.22 & 0.08 both read ~0.31, order inverts); Bayes r=0.996 | uniform opponent belief cannot separate good from great near equilibrium; reach-weighting restores ordering. | ⎇ 92f41ce |
| River-only search abandoned | per-river-node Δ = +0.008 ± 0.121 (z=0.07); third independent zero | 4-action river decisions are already at the blueprint ceiling; the win had to come from turn + real ranges. | ⎇ 70e8436 |
| 2 raise sizes over 1 (v16b→v16c) | LBR v1 944±138 (2 sizes) vs 1194±177 (single) @2500 iters | richer action tree measurably lowered exploitability at equal budget. | ⎇ 91d2d02 |
| 3 raise sizes REJECTED (v16e) | LBR v2 1116±50 (3 sizes) vs 998±26 (2 sizes), 5 seeds | a still-richer tree lost — sample starvation at this budget outweighs the finer action grid. @5000-iter retest deferred. | ▤ gate_b4_vs_b5.log |
| b5 CFV net chosen over b4 | gate tie (b5 Δ −30.2±27.6, b4 −32.6±26.7); b5 better aggregate MAE | gates were a statistical tie; b5 wins the tiebreak on more data + lower holdout MAE. | ▤ gate_b4_vs_b5.log |
| Depth-limited turn+river search beats blueprint | uniform 20-seed Δ −36.3±16.4 (t=−2.22); stratified 4-seed ≈ −31 | the gate passes and replicates across two independent sampling methods — the search layer is a real, measured improvement. | ▤ gate_uniform_20seed.txt |