# RESULT — 047 frame-dictionary: FrameNet-supervised frame basis vs unsupervised k=32 SAE atoms

**Tier: T3-exploratory.** EXT row; data option 1 (NLTK framenet_v17) worked — no fallback
needed. tmux c100_047, GPU CVD=0→phys0 only (guarded, 35 MiB pre-claim), full chain
05:38:38→05:41:29 UTC (~3 min: FrameNet scan ~100 s, SONAR encode 5000 in 14.6 s, analysis
9 s), smoke passed first, DONE, SELF-HARVESTED in-session 2026-08-03.

**Verdict: mixed, informative. (i) The supervised frame basis explains LESS z-variance than
the unsupervised SAE (P2 TRUE) — but everything explains little on this corpus, and plain
PCA-50 beats BOTH (FVU 0.770 < SAE 0.822 < frame-span 0.839); frame membership per se is a
tiny variance direction (between-frame variance ≈ 3.3% of total). (ii) Yet atoms ARE
frame-aligned: 46/50 frames have an atom firing selectively above the permutation null
(median best-F1 0.22 vs null 0.09; Food 0.59, Clothing 0.48, Sounds 0.44), and frame identity
is linearly decodable from z at 23× chance (0.455, 50-way). (iii) 043's pattern extends to
frame labels: the k=32 dictionary keeps roughly half the frame decodability (acts 0.253 /
x_hat 0.242 vs z 0.455) and the residual carries more than the reconstruction (0.346 > 0.242,
P4 TRUE). Frames are real, atom-detectable meanings — but they are a sparse annotation on z,
not its organizing basis. Mean Brier 0.2005 (P1 FALSE at 0.80 — the one bad miss).**

## Data (built this run, seed 47)
FrameNet v17 exemplars via NLTK on box (1221 frames, 200,751 exemplars). Filters: 4–60
words, unique texts, texts annotated in >1 frame dropped (label purity); top-50 frames by
remaining pool × exactly 100 sentences each = **5000 sentences, perfectly balanced**
(chance = 0.02). Frames span motion/perception/communication/judgment/artifacts
(Self_motion, Statement, Food, Clothing, Judgment, Cause_motion, Attack, …). Per-frame mean
length 15.5–27.0 words. 70/30 stratified split.

## Gates (all PASS)
- **G1 ckpt identity**: pile-4k FVU **0.7312** (band 0.731±0.02; ≡045/046).
- **G2 positive control (in-regime)**: frame 50-way acc from x_n **0.4553** ≥ 0.25.
- **G3 nulls**: shuffled-label probe 0.0227 ≤ chance+0.03 (chance 0.02); permutation nulls
  for alignment well-behaved (median null-max F1 0.090; null MI-top50 max 0.382).
- **G4 norm lint**: mean ‖x_n‖ FrameNet 41.2 vs pile 40.0, ratio 1.03 < 5.

## (a) Reconstruction ladder — test FVU in x_n space (denominator: train-mean-centered)
| basis | rank | FVU | var. explained |
|---|---|---|---|
| D1 frame-centroid assignment (labels used) | ≤50 | 0.9671 | 3.3% |
| D2 centroid-span projection (supervised) | 50 | 0.8386 | 16.1% |
| PCA-32 (unsupervised, train-fit) | 32 | 0.8160 | 18.4% |
| **SAE x_hat (k=32 of 16384 atoms)** | adaptive | **0.8219** | 17.8% |
| PCA-50 (unsupervised, rank-matched) | 50 | **0.7704** | 23.0% |

- **P2 TRUE**: supervised frame basis (0.839) < SAE (0.822) — frame supervision buys less
  variance than the atoms. **P2b TRUE**: PCA-50 beats the frame basis by 6.8 FVU pts.
- Unregistered but notable: **PCA-50 also beats the SAE**, and PCA-32 ≈ SAE at matched
  per-sample rank. Off its training distribution (pile 0.731 → FrameNet 0.825; cf. 043's
  battery 0.826) the 16384-atom dictionary has no variance advantage over a 32–50-dim
  global linear subspace.
- D1 says frame LABEL is a weak variance coordinate: knowing the frame pins only ~3.3% of
  z-variance. The frame-decodability below (23× chance) lives in a small, well-separated
  subspace, not in bulk variance — same geometry as 062's language-offset story.

## (b) Atom↔frame alignment (top-32 firing, 1961 atoms firing ≥20; null = max of 20 label permutations)
- **46/50 frames have a selective atom** (best-F1 > that frame's null max) — P3 TRUE.
  Median best-F1 0.2215 vs null median 0.0903. Per-atom MI top-50 sum **1.307 nats vs null
  max 0.382** (3.4×).
- Top aligned: Food (F1 0.586, atom 9395), Clothing (0.484, a13429), Sounds (0.442, a5421),
  Social_interaction_evaluation (0.405), Body_movement (0.356). The 4 non-selective frames
  are the abstract/quantificational ones: **Statement, Aggregate, Removing, Quantified_mass**.
- Reading: concrete, topical frames get dedicated atoms; abstract relational frames do not —
  consistent with atoms being topic/lexical-field detectors (046: meaning-indexed) rather
  than detectors of frame STRUCTURE.

## (c) Probes — 50-way frame classification, test acc (chance 0.02)
| channel | acc | | control | acc |
|---|---|---|---|---|
| x_n (full z) | **0.4553** | | shuffled labels | 0.0227 |
| SAE acts a | 0.2527 | | length-only (words/chars) | 0.0367 |
| x_hat | 0.2420 | | | |
| residual r | **0.3460** | | | |

- **P4 TRUE**: r > x_hat by 10.4 pts — the dictionary loses frame info to the residual,
  channel-for-channel the same picture as 043 (acts ≈ x_hat, as expected: same info).
- Length confound small: length-only 0.037 (1.8× chance vs probe 23×); accuracy FALLS with
  length (x: 0.582/0.438/0.349 short→long terciles; r: 0.451/0.329/0.261) — long multi-clause
  sentences are harder, the opposite of a length-shortcut. Frame mean-lengths span
  15.5–27.0 words (confound reported, not partialled beyond the length-only floor).

## Predictions → Brier (frozen probabilities)
| pred | P | outcome | Brier |
|---|---|---|---|
| P1 frame acc from x_n ≥ 0.55 | 0.80 | **FALSE** (0.4553) | 0.6400 |
| P2 FVU(D2) > FVU(SAE) | 0.70 | **TRUE** (0.839 > 0.822) | 0.0900 |
| P2b FVU(PCA-50) < FVU(D2) | 0.85 | **TRUE** (0.770 < 0.839) | 0.0225 |
| P3 ≥25/50 frames selective | 0.60 | **TRUE** (46/50) | 0.1600 |
| P4 acc(r) > acc(x_hat) | 0.70 | **TRUE** (0.346 > 0.242) | 0.0900 |

**Mean Brier = 0.2005.** P1 was overconfident: 50-way over closely-related frames
(Emotion_directed vs Experiencer_obj vs Experiencer_focus; Make_noise vs Sounds vs
Communication_noise) with real BNC sentences is harder than the "lexically cued" intuition
suggested; 0.455 is still 23× chance and clears the gate comfortably.

## Limitations / what did NOT run
- Nothing truncated; all preregistered cells + gates ran. Data options 2/3 unused (option 1
  verified before prereg froze).
- Frame ≈ lexical trigger by construction (exemplars chosen per LU): both the probe and the
  atom-F1 cells may read the trigger word / lexical field, not abstract frame structure.
  The Food/Clothing-top, Statement-bottom pattern actively suggests the lexical reading.
- Exact-duplicate texts removed, but near-duplicate BNC sentences within a frame could
  straddle the split (probe accs possibly a touch optimistic).
- Single SAE (h16384 k32 s0), single encoder, linear probes/bases only, no CIs, P2's margin
  (0.017 FVU) is small and un-bootstrapped. All FVUs in the 0.77–0.97 regime: NO basis here
  explains most of z. T3-exploratory.

## Follow-up worth funding? **Y (one specific).**
PCA-50 > SAE off-distribution (this corpus AND 043's battery FVU 0.826) suggests the SAE's
advantage over cheap global bases is pile-specific — a small "FVU vs corpus" grid
(pile/FrameNet/battery/FLORES × {SAE, PCA-k, frame/label bases}) would say whether the
dictionary's variance story generalizes at all. The abstract-vs-concrete frame split (b) is
also a clean handle on WHAT KIND of meanings atoms are (046 follow-up: content vs topic).

## Provenance / hygiene
Box .../campaign100/047-frame-dictionary/ (20 MB total: corpus json + z npz kept on box; no
ckpts created; NLTK data at /workspace/HOME/guest/nltk_data, ~150 MB, reusable). Repo out/:
results_047_{full,smoke}.json, run.log. GPUs left idle; tmux c100_047 killed (ours only).
Local commit, no push.
