id: 768f5b7df12d4230a1edbc9a347ca987
parent_id: fc7d006446d848508e1cc6ca6056dab8
item_type: 1
item_id: ec1518e71453490f8fe5ab75cff7180c
item_updated_time: 1786918024901
title_diff: "[]"
body_diff: "[{\"diffs\":[[0,\"08-1\"],[-1,\"6 midday\"],[1,\"7 night\"],[0,\" — E\"]],\"start1\":29,\"start2\":29,\"length1\":16,\"length2\":15},{\"diffs\":[[0,\"Net \"],[-1,\"iteration 2\"],[1,\"root cause found\"],[0,\")\\\n\\\n>\"]],\"start1\":49,\"start2\":49,\"length1\":19,\"length2\":24},{\"diffs\":[[0,\"rver\"],[-1,\" (idle)\"],[0,\".** \"]],\"start1\":100,\"start2\":100,\"length1\":15,\"length2\":8},{\"diffs\":[[0,\"Net \"],[-1,\"in training-iteration loop; v6.1 corpus collecting + equity_v5 training autonomously (persistent bgp_0093d6f85).\\\n\\\n## Overnight results (equity_v1-v4)\\\n\\\n**v1/v2 (natural sampling):** MW MAE 0.094-0.098, HU 0.34-0.36 — HU catastrophically bad. **Root cause 1**: corpus is 86.5% n=7-8 (loose pool keeps everyone in), only 1% HU → model ignored count feature, predicted global mean.\\\n\\\n**v3 (full equalization + fixed LR-schedule bug):** WORS\"],[1,\"v9 hit the multiway gate after fixing a label-semantics bug. v10 (big) training.\\\n\\\n## THE ROOT CAUSE (evening session, commit 678080e)\\\n\\\nGen3's `hs` = **current hand strength** (beat-all-now, before runout) — both HU `compute_vs_range` and multiway MC classify `before` on current hands (`compute_weighted_hs_ppot_npot:2251`). All prior training labels were **showdown equity over runouts** — a different quantity. Explains everything: river shadow MA\"],[0,\"E \"],[-1,\"(\"],[0,\"0.\"],[-1,\"374/0.108). Two sub-causes: (a) 59x HU oversample overfits 29k samples; (b) natural-distribution val checkpoint selection never saved anything after epoch-1 batch 4000 — learning HU raises natural val MAE, so \\\"best\\\" stayed an untrained snapshot.\\\n\\\n**v4 (sqrt weighting, working schedule, 6 epochs):** 0.0985 natural, slope 0.82 — best label-fit model.\\\n\\\n## Shadow validation findings (the decisive diagnostic)\\\n\\\n- **Label-noise floor discovery**: labels (equity vs actual holdings) are bimodal — river HU is 0/0.5/1 realizations. Bayes-optimal MAE for HU ≈ 0.3; the \\\"MAE ≤ 0.03 HU\\\" gate was mis-specified for label comparison. The conditional mean of these labels IS equity-vs-ra\"],[1,\"034 (definitions identical on river) vs flop 0.155 (maximally different), the mc=0.000/nn=0.3 monotone-flop divergences, and why more data/epochs never fixed it.\\\n\\\n**Fix**: `relabel_equity` bin recomputes hs from stored `opp_holes` as ternary beat-all-now (4.86M/7.39M changed, offline, no recollection). ppot/npot/nutpot/rpot already matched.\\\n\\\n## Model iterations (v8-v10)\\\n\\\n| ver | change | val (balanced) | shadow verdict |\\\n|---|---|---|---|\\\n| v8 | relabeled corpus, sigmoid+L1 | COLLAPSED (slope 0.000, constant output, 12 frozen epochs) | — |\\\n| v9 | identity head + MSE (sigmoid saturates under 87%-zero ternary labels) | 0.2025 | **MW hs 0.046 (gate 0.045!)**, nutpot 0.028, slope 0.63, HU 0.29 |\\\n| v10 | big model (enc 256/96, trunk 1024/384), 20ep | oscillati\"],[0,\"ng\"],[-1,\"e\"],[0,\" (\"],[-1,\"= what MC computes). Correct gate: NN-vs-MC divergence.\\\n- **v4 shadow (\"],[1,\"lr too high for 3x params), best 0.1988 | pending |\\\n\\\n## Shadow status (v9, \"],[0,\"fish\"]],\"start1\":114,\"start2\":114,\"length1\":1200,\"length2\":1305},{\"diffs\":[[0,\"eld, 661\"],[-1,\"2\"],[1,\"8\"],[0,\" decisio\"]],\"start1\":1422,\"start2\":1422,\"length1\":17,\"length2\":17},{\"diffs\":[[0,\"ons)\"],[-1,\"**: river MAE 0.034 (gate-quality!), turn 0.078, **f\"],[1,\"\\\n- hs: MW 0.0463 ✓(at gate), HU 0.286 ✗\\\n- s\"],[0,\"lop\"],[1,\"e\"],[0,\" 0.\"],[-1,\"155** with extreme 0.0-vs-0.57 divergences on monotone boards.\\\n- **Root cause 2 (architectural)**: folding combo-level ranges to 169 types discards suit/blocker info — on heart-heavy boards the NN can't see whether a type's weight is on heart combos. River unaffected (no corrector suit dynamics left), flop worst.\\\n\\\n## Fix in flight (v6.1, commit ac4e836)\\\n\\\n- Recorder now stores per-range **suit profiles** (4 floats: combo-weight share per suit) — captures corrector's board-suit concentration.\\\n- Encoder input 169+4=173; binary format v2; backward-compatible with v6.0 corpora (uniform default).\\\n- Trainer fixes: LR schedule spans actual weighted pool; sqrt bucket weighting; balanced (HU+MW)/2 checkpoint metric.\\\n- **Running**: 8-table collection → convert 3M → train equity_v5 (8 epochs). Done ~18:00. Then: `bash scripts/equity_shadow_run.sh 3000` (fish field) — ga\"],[1,\"634 ✗ — underpredicts hero-monster spots (mc 0.93 → nn 0.000): underfit tail, v10 hypothesis\\\n- mean pred 0.017 vs MC 0.057 — deployment-blocker bias (too passive) until fixed\\\n\\\n## Morning checklist\\\n1. v10 done? shadow it (`bash scripts/equity_shadow_run.sh 3000`, config points at v9 — repoint)\\\n2. If slope fixed → A/B g52 (replacement) + sanity gates\\\n3. If not: options — (a) lr 2e-4 stable big run, (b) high-hs sample weighting in loss, (c) 2-stage: train on natural corpus then fine-tune on hero-strong oversample\\\n4. HU gap (0.29): HU shadow n=307 small; check by-street breakdown first\\\n5. No\"],[0,\"te\"],[-1,\"s\"],[0,\": \"],[-1,\"NN-vs-MC MAE, slope 0.9-1.1, flop divergence check.\\\n\\\n## Corpus inventory\\\n- `/home/jan/gen5_data/equity_v6`: 10.4M samples, 169-dim ranges only (v6.0) — usable for label training, lacks suit info\\\n- `/home/jan/gen5_data/equity_v6_1`: collecting, 173-dim (suits)\\\n\\\n## Models\\\n- equity_v1..v4: experiments (v4 best label-fit); equity_v5 training (suit-aware\"],[1,\"val MAE vs ternary labels has high Bayes floor — judge ONLY by shadow (NN vs MC)\\\n\\\n## Infrastructure state\\\n- Corpus `/home/jan/gen5_data/equity_v6_1` (7.25M train, relabeled) + `_small` (1.27M) — train_full.bin current\\\n- equity_v1..v10 models; production candidate = best of v9/v10\\\n- Live 250K session: +30.6M/36 hands on Pound It II (AA cooler vs rivered full house — standard decisions)\\\n- Commits: c855c6a (round-robin), 678080e (relabel + collapse fixes\"],[0,\")\\\n\\\n#\"]],\"start1\":1438,\"start2\":1438,\"length1\":1292,\"length2\":1111},{\"diffs\":[[0,\"klog\"],[-1,\" unchanged\"],[0,\"\\\n7_6\"]],\"start1\":2554,\"start2\":2554,\"length1\":18,\"length2\":8},{\"diffs\":[[0,\"nNet\"],[-1,\" (#4)\"],[0,\" · l\"]],\"start1\":2584,\"start2\":2584,\"length1\":13,\"length2\":8},{\"diffs\":[[0,\"2 · \"],[-1,\"repo-wide fmt debt\\\n\\\n## Key notes\\\nIdeas `f3c42f44` | Roadmap `47031623` | Sanity `d632cea3` | Archive `283e98fe` | Plan `.kilo/plans/1786732427268-equitynet-plan.md`\"],[1,\"fmt debt\"]],\"start1\":2644,\"start2\":2644,\"length1\":168,\"length2\":12}]"
metadata_diff: {"new":{},"deleted":[]}
encryption_cipher_text: 
encryption_applied: 0
updated_time: 2026-08-16T22:15:41.718Z
created_time: 2026-08-16T22:15:41.718Z
is_locked: 0
type_: 13