MachineSex/results/kernel_sharpen/resolved_config.yaml
Giorgio Gilestro 871bc39ec6 knowledge: learning kernel — model the estimator bias, not just sampling
Revisiting Layer 1 against Layer 1.5 (and Riis 2026, arXiv:2604.08554):
neutral Wright-Fisher is a null that BOTH neural architectures deviate
from, in opposite directions. Add a learning kernel to the refit step,
p_{t+1} = T_theta(counts/n), with two population-genetics knobs -- reset u
(mutation toward a prior = smoothing) and temperature tau (sharpening =
mode-competition) -- both identity by default, so the histogram bridge and
all 68 scientific-validation/correctness tests are unchanged.

Result: neutral drift fails both neural models, oppositely.
- VAE regime (n=6000, K=30): neutral drift is inert (no collapse), yet the
  real VAE collapsed to one mode. Sharpening tau=0.8 reproduces it -- the
  estimator ADDS collapse pressure.
- RNN regime (n=200, K=256): neutral drives H->0, but the real RNN only
  partially collapses. Mutation u=0.006 reproduces the H-floor -- the
  estimator REMOVES collapse pressure. Honest caveat: uniform-mutation
  overshoots the RNN's forward-KL, evidence its smoothing prior is
  truth-like, not uniform (future refinement).

This mechanistically explains the architecture-generality result and the
softened neural g*, and develops the estimator axis Riis names as future
work. New: knowledge/kernel.py, configs/layer1/kernel_{sharpen,smooth}.yaml,
figures/plot_kernel.py (overlays analytic arms vs committed neural
endpoints), READMEs, tests/test_kernel.py (+6, 105 total green). Strategic
Riis positioning recorded in CLAUDE.md: concede "collapse=drift" as prior
art; lead with recombination, the kernel axis, and the Lamarckian society.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 10:23:33 +01:00

82 lines
1.4 KiB
YAML

experiment: kernel_sharpen
seed: 20260705
n_replicates: 24
source_config:
experiment: kernel_sharpen
kind: lineage
seed: 20260705
n_replicates: 24
truth:
K: 30
R: 1
tail: zipf
zipf_s: 1.5
tail_threshold: 0.01
init: truth
dynamics:
n: 6000
grounding:
m: 0
policy: proportional
kernel:
reset: 0.0
temperature: 1.0
floor: 0.0
generations: 15
metrics:
kl_floor: 1.0e-09
support_eps: 1.0e-09
sweep:
- param: dynamics.kernel.temperature
values:
- 1.0
- 0.8
output:
dir: results/kernel_sharpen
grid:
- label:
temperature: 1.0
lineage_cfg:
truth:
K: 30
R: 1
tail: zipf
zipf_s: 1.5
tail_threshold: 0.01
init: truth
dynamics:
n: 6000
grounding:
m: 0
policy: proportional
kernel:
reset: 0.0
temperature: 1.0
floor: 0.0
generations: 15
metrics:
kl_floor: 1.0e-09
support_eps: 1.0e-09
- label:
temperature: 0.8
lineage_cfg:
truth:
K: 30
R: 1
tail: zipf
zipf_s: 1.5
tail_threshold: 0.01
init: truth
dynamics:
n: 6000
grounding:
m: 0
policy: proportional
kernel:
reset: 0.0
temperature: 0.8
floor: 0.0
generations: 15
metrics:
kl_floor: 1.0e-09
support_eps: 1.0e-09