MachineSex/configs/neural/grounding.yaml
Giorgio Gilestro b8da418034 neural: grounding refinement + all five Layer-1.5 figures
Grounding refinement (18 reps): forward-KL is the operative neural
collapse metric, not H or tail-survival. The RNN's smoothing keeps
spurious tail modes alive, so tail_truth_mass_alive is flat/non-monotone
in g and H stays ~0.8 of H*; only forward-KL falls monotonically (dry
2.08 -> g=0.2: 0.75, paired t up to 3.3). The sharp g* << 1 is an
exact-operator feature carried by the histogram bridge (0.047); the
trained RNN confirms the SIGN and softens the sharpness (half the KL gap
closes by g~0.04, but full recovery needs g~0.19). Blueprint 3.5's
directional claim holds; the pre-registered 95%-of-H*/tail falsifier is
not met because those are the wrong metrics for a smoothing model.

Robustness: a fully-degenerate RNN can emit only invalid codewords, so
measure_distribution now returns a terminal-collapse sentinel (fixation
on the dominant mode) instead of crashing a long sweep. Edge test added
(94 tests green).

Figures: plot_{bridge,collapse,grounding,architectures,recombination}.py,
each a pure function of its committed bundle, wired into `make figures`
(glob plot_*.py minus plot_E[1-6]/_*). bridge sits on the exact H_eq
curve (g*=0.047); recombination shows max-merge rising while mean-distill
stays flat; architectures shows the collapse/rescue signs across
histogram/GRU/MLP.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 08:14:19 +01:00

66 lines
2.4 KiB
YAML

experiment: grounding_phase_boundary
kind: gen_lineage
seed: 20260704
n_replicates: 18
# (Layer 1.5 headline, maps to Layer-1 E2): the grounding phase boundary in REAL weights.
# Sweep the grounding fraction g = m/(n+m) and locate the neural critical g* at which
# stationary diversity is restored. Layer 1 found g* = 0.048 << 1. The neural regime (finite
# model capacity, a smaller K so gen-0 fidelity holds) will not reproduce that value exactly
# -- the claim is directional (blueprint 3.5): a critical g* << 1 exists in trained weights,
# i.e. a little grounding protects most of the diversity.
#
# PHASE METRIC. H is a poor neural phase metric: the RNN's smoothing inductive bias partially
# resists H-collapse (dry H ~ 83% of H*), so H is flat/noisy in g. The sharp neural collapse
# metric is TAIL SURVIVAL (tail_truth_mass_alive) -- exactly the truth-mass-weighted tail
# coverage Layer-1 E2 used for its g* -- with forward_kl as the monotone cross-check. g* is
# defined (as in Layer 1) as the g at which stationary tail survival first reaches 95% of the
# grounded plateau (the g=0.2 saturation), bootstrap-CI over replicates.
#
# FALSIFIER (pinned before running, 2026-07-05): thesis holds iff a critical g* << 1 exists
# with g* < 0.1 AND its bootstrap CI upper bound < 0.5 (well below 1) -- i.e. a small dose of
# grounding restores most of the recoverable tail. Thesis REFUTED if stationary tail survival
# is flat in g (no monotone rise), or is only restored as g -> 1 (g* CI overlaps 1).
#
# Per-lineage variance is large under n=200 drift (the collapse fate is genuinely stochastic),
# so 18 replicates + n_eval=15000 are needed to pin the stationary means. 30 generations keeps
# lineages on the valid-token manifold (bounded forward-KL); pushing further drives the dry arm
# fully off-manifold, which adds bimodal variance rather than sharpening the boundary.
generations: 30
synthetic:
K: 256
R: 1
tail: zipf
zipf_s: 1.3
tail_frac: 0.5
tail_threshold: 1.0e-3
init: truth
style_len: 3
style_vocab: 5
id_base: 2
model:
kind: rnn
hidden: 128
embed: 24
epochs: 25
lr: 2.0e-3
batch_size: 256
n_eval: 15000
dynamics:
n: 200
grounding: {m: 0, policy: proportional} # m overwritten per g by the sweep
remint: {enabled: false, period: null, H_gate: null}
metrics:
kl_floor: 1.0e-9
support_eps: 1.0e-9
sweep:
- param: g
values: [0.0, 0.005, 0.01, 0.02, 0.035, 0.05, 0.075, 0.1, 0.2]
output:
dir: results/grounding