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>
This commit is contained in:
Giorgio Gilestro 2026-07-05 10:23:33 +01:00
parent 79bbc45f41
commit 871bc39ec6
21 changed files with 660 additions and 3 deletions

View file

@ -0,0 +1,29 @@
experiment: kernel_sharpen
kind: lineage
seed: 20260705
n_replicates: 24
# (Learning-kernel bridge, pro-collapse arm): does neutral Wright-Fisher explain the VAE's
# collapse on MNIST? NO -- and that is the point. This matches the MNIST regime (K=30, n=6000,
# Zipf) where drift is nearly inert: neutral (temperature=1.0) barely moves (H stays ~H*, ~all
# modes alive), yet the real VAE collapsed to a SINGLE mode (results/mnist_collapse). Adding the
# estimator's sharpening / mode-competition (temperature<1: p ~ p^(1/tau)) reproduces the
# catastrophic collapse. tau=0.8 is calibrated to reproduce collapse-to-one-mode. This is the
# axis Riis (2026) names as future work: the estimator, not the sampling, drives VAE collapse.
truth: {K: 30, R: 1, tail: zipf, zipf_s: 1.5, tail_threshold: 0.01, init: truth}
dynamics:
n: 6000 # huge vs K=30 -> neutral drift is essentially inert
grounding: {m: 0, policy: proportional}
kernel: {reset: 0.0, temperature: 1.0, floor: 0.0}
generations: 15
metrics: {kl_floor: 1.0e-9, support_eps: 1.0e-9}
sweep:
- param: dynamics.kernel.temperature
values: [1.0, 0.8] # neutral (no collapse) vs sharpened (catastrophic collapse)
output: {dir: results/kernel_sharpen}