-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathresults.qmd
More file actions
356 lines (266 loc) · 24.8 KB
/
Copy pathresults.qmd
File metadata and controls
356 lines (266 loc) · 24.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
---
title: "Results"
subtitle: "Signal Landscape Parallel Exploration Findings"
---
Can a graph neural network recover the connectivity matrix of a neural assembly from its activity alone? This page collects the quantitative results of a closed-loop exploration in which an LLM proposes simulation configurations and training hyper-parameters, a GNN is trained on the resulting synthetic data, and the recovered connectivity is compared to ground truth. The exploration uses UCB tree search with 4 parallel slots per batch to efficiently map the simulation--training landscape.
::: {.callout-tip}
## Current status
**360 iterations completed** across 30 regimes. The number of frames is the dominant lever for dense supercritical networks: 300 and 600 neurons both achieve 100% convergence at 30k frames; **1000 neurons achieves 100% convergence (12/12) at 100k frames with connectivity=1.000** (block 30 breakthrough). Low gain (g=3) is rescued by 30k frames; g=2 is partially rescued (42% at 100 neurons/30k, 92% at 200 neurons/30k). Three structural limits confirmed: subcritical spectral radius (sparse 50%, connectivity~0.44), partial connectivity ceiling (fill=80%/90%, connectivity $\approx$ filling_factor), and fixed-point collapse (g=1, activity rank drops to 1 at 30k). The gain--activity rank relationship depends on network size: at 100 neurons, g=1→5, g=2→17, g=3→26, g=7→35; but at 200 neurons, g=2→35--38 (n compensates for gain reduction). ~99 principles established.
:::
## Outcomes
1. **The number of frames is the dominant lever**: Tripling the frame count from 10k to 30k transforms 300 neurons from 25% to 100% convergence, 600 neurons from 0% to 100%, and g=3 / 200 neurons from 0% to 100%. With sufficient frames, all training parameters become non-critical --- except when gain is too low (g≤2).
2. **Six difficulty axes identified**: Subcritical spectral radius (sparse), parameter count scaling (large n), data abundance (frame count), low gain (g≤3), partial connectivity (fill<100%), and fixed-point collapse (g=1). Four are solvable by increasing frames; two are structural limits; one is a new unsolvable axis.
3. **Three structural limits confirmed**: Sparse 50% (rho=0.746, connectivity~0.44 at both 10k and 30k), fill<100% (connectivity ceiling $\approx$ filling_factor --- confirmed across fill=50%, 80%, 90%, and 100%), and g=1 fixed-point collapse (activity rank=5 at 10k, drops to 1 at 30k --- more frames makes it worse).
4. **Activity rank is necessary but not sufficient**: High activity rank does not guarantee recovery if spectral radius is subcritical (sparse+noise: activity rank=91 but 0% convergence). More frames doubles activity rank for dense networks but has minimal effect on sparse and negative effect at g=1.
5. **L1 effect is n-dependent, non-monotonic, and vanishes at high frame counts**: Critical at 1E-6 for low-rank/heterogeneous at 100 neurons; harmful at $\leq$200 neurons; beneficial at 300 neurons/10k; harmful at $\geq$600 neurons/10k. At 30k frames, L1 sensitivity disappears entirely.
6. **Scale shifts boundaries**: Convergence boundary, optimal lr_W, and lr tolerance all change non-linearly with network size. At 30k frames, optimal lr_W shifts **lower** (5E-3 vs 1E-2 at 10k) because abundant data handles W while lower lr_W preserves MLP capacity.
7. **Low gain compounds with scale but is solvable (g≥2)**: g=3 reduces activity rank from 35 to 26 (100 neurons) and eliminates the lr_W cliff. g=3 / 200 neurons at 10k is universally degenerate (0% convergence), but 30k frames fully rescues it (100% convergence). g=2 requires inverse lr_W (5E-4, 100x lower than g=7) and is partially rescued at 30k (42% convergence).
8. **Gain modulates activity rank non-linearly, but neuron count compensates**: At 100 neurons the gain--activity rank relationship shows a sharp transition: g=1→5, g=2→17 (+240%), g=3→26, g=7→35. A critical threshold exists at activity rank ~10 (between g=1 and g=2). However, at 200 neurons/30k, g=2 achieves activity rank=35--38 --- matching g=7 / 100 neurons. Doubling the neuron count effectively compensates for the gain reduction, making g=2 / 200 neurons/30k much easier (88% convergence) than g=2 / 100 neurons/30k (42%).
9. **Partial connectivity creates a structural ceiling**: connectivity ceiling $\approx$ filling_factor, confirmed at four points: fill=50%→0.49, fill=80%→0.80, fill=90%→0.91, fill=100%→1.00. Complete parameter insensitivity at fill<100%, at both 10k and 30k frames.
10. **g=1 is a new unsolvable axis (fixed-point collapse)**: At g=1, tanh saturates weak-gain dynamics into stable fixed points. Activity rank=5 at 10k drops to 1 at 30k --- the only regime where frame count is anti-correlated with activity rank. More severe than sparse 50%. Connectivity_R^2^<0.02 regardless of training.
11. **Degeneracy is a critical diagnostic**: Two mechanisms: structural (subcritical spectral radius, g=1 fixed-point) and training-limited (fixable with more data/epochs). Abundant data (30k) eliminates training-limited degeneracy but amplifies g=1 degeneracy.
12. **1000 neurons at 100k frames is SOLVED (block 30 breakthrough)**: 100% convergence (12/12), connectivity=1.000, test_R^2^=0.882. lr_W=3E-3 optimal; batch=16 safe; 3 epochs sufficient. Confirms the frame-count scaling law: 1000 neurons needs ~100k frames, matching the pattern established at smaller n.
---
## Regime Landscape — Partitioned by Neuron Count
Three panels separate the landscape by network scale (100, 200--600, and 1000 neurons). Each data point shows the key mutation (parameter change) on hover.
```{=html}
<iframe src="assets/landscape_partitioned_interactive.html" width="100%" height="1450" style="border:none; border-radius:8px;"></iframe>
```
## Regime Summary
### Performance by Regime
| Block | Regime | frames | neurons | activity rank | Convergence | Best connectivity_R^2^ | Key Finding |
|:-----:|--------|:--------:|:---------:|----------|:-----------:|:---------------:|:------------|
| 1 | Chaotic | 10k | 100 | ~35 | **92%** (11/12) | 0.9999 | lr_W=4E-3 sweet spot; lr=1E-4 optimal |
| 2 | Low-rank (r=20) | 10k | 100 | ~12--14 | 75% (9/12) | 0.9997 | L1=1E-6 critical; lr_W=3E-3 |
| 3 | Dale (50/50 E/I) | 10k | 100 | ~12 | 67% (8/12) | 0.986 | Sharp lr_W cliff at 5E-3 |
| 4 | Heterogeneous (4 types) | 10k | 100 | ~38 | 17% FULL | 0.992 | Dual-objective; lr_emb=1E-3 critical |
| 5 | Noise (0.1--1.0) | 10k | 100 | 42--90 | **100%** (12/12) | 1.000 | Noise inflates activity rank |
| 6 | Scale | 10k | 200 | ~41--43 | 67% (8/12) | 0.956 | Boundary shifts up; lr=3E-4 safe |
| 7 | Sparse 50% | 10k | 100 | ~21 | **0%** (0/12) | 0.466 | Subcritical rho=0.746 |
| 8 | Sparse+Noise | 10k | 100 | ~91 | **0%** (0/12) | 0.490 | Structural data limit |
| 9 | 300 neurons (1--2ep) | 10k | 300 | ~44--47 | **0%** (0/12) | 0.890 | n_epochs=2 breakthrough |
| 10 | 300 neurons (2ep base) | 10k | 300 | ~44--47 | 25% (2/8) | 0.924 | L1=1E-6+3ep best |
| 11 | 200 neurons v2 | 10k | 200 | ~40--43 | **100%** (12/12) | 0.994 | lr_W=8E-3 optimal |
| 12 | 600 neurons | 10k | 600 | ~50 | **0%** (0/12) | 0.626 | Training-capacity-limited |
| 13 | 200 neurons + 4 types | 10k | 200 | ~42--44 | **100%** connectivity | 0.991 | Full dual convergence |
| 14 | Recurrent test | 10k | 200 | ~42--44 | 75% (3/4) | 0.993 | Connectivity-dynamics trade-off |
| 15 | **300 neurons (30k)** | **30k** | 300 | **79--80** | **100%** (12/12) | **1.000** | **Frames: 25%-->100%** |
| 16 | **600 neurons (30k)** | **30k** | 600 | **85--87** | **100%** (8/8) | **0.992** | **Frames: 0%-->100%** |
| 17 | **Sparse 50% (30k)** | **30k** | 100 | **~13** | **0%** (0/12) | **0.436** | **30k FAILS; activity rank DROPS** |
| 18 | **1000 neurons (30k)** | **30k** | 1000 | **~144** | **0%** (0/12) | **0.745** | **Needs ~100k frames** |
| 19 | **g=3 100 neurons** | 10k | 100 | **~26** | 42% (5/12) | **0.955** | **Low gain: new difficulty axis** |
| 20 | **g=3 200 neurons** | 10k | 200 | **~31** | **0%** (0/12) | **0.489** | **Gain x n compounds; universal degeneracy** |
| 21 | **g=3 200 neurons (30k)** | **30k** | 200 | **~53--57** | **100%** (12/12) | **0.996** | **30k rescues g=3; all params non-critical** |
| 22 | **fill=80%** | 10k | 100 | **~36** | **0%** (0/12) | **0.802** | **Connectivity plateau = filling_factor** |
| 23 | **fill=80% (30k)** | **30k** | 100 | **~48--49** | **0%** (0/12) | **~0.802** | **30k FAILS; structural ceiling; 12/12 at 0.802** |
| 24 | **fill=90%** | 10k | 100 | **~35--36** | **83%** (10/12) | **0.907** | **connectivity $\approx$ fill%; transitional regime; param insensitive** |
| 25 | **g=1 (10k)** | 10k | 100 | **~5** | **0%** (0/12) | **0.007** | **Fixed-point collapse; hardest regime; activity rank=5** |
| 26 | **g=1 (30k)** | **30k** | 100 | **~1** | **0%** (0/12) | **0.018** | **Activity rank DROPS 5→1; 30k makes g=1 WORSE** |
| 27 | **g=2 (10k)** | 10k | 100 | **~17** | **0%** (0/12) | **0.519** | **Inverse lr_W=5E-4; epoch scaling not diminishing** |
| 28 | **g=2 (30k)** | **30k** | 100 | **~16** | **42%** (5/12) | **0.997** | **30k partially rescues; inverse lr_W persists** |
| 29 | **g=2 200 neurons (30k)** | **30k** | 200 | **~35--38** | **92%** (11/12) | **0.979** | **n compensates gain: activity rank matches g=7 / 100 neurons** |
| 30 | **1000 neurons (100k)** | **100k** | 1000 | **~350** | **100%** (12/12) | **1.000** | **BREAKTHROUGH: 100k solves 1000 neurons; lr_W=3E-3** |
## Key Findings
### 1. Six Independent Difficulty Axes
::: {.callout-important}
## Key Insight
Six independent axes determine regime difficulty. Three are solvable by data (more frames); three are structural limits:
| Axis | Example | Solvable? | Mechanism |
|------|---------|:---------:|-----------|
| Subcritical spectral radius | Sparse 50% (rho=0.746) | **No** | rho < 1 limits information flow; activity rank drops at 30k |
| Partial connectivity ceiling | fill=80%/90% (rho~0.99) | **No** | connectivity ceiling $\approx$ filling_factor; 30k has no effect |
| Fixed-point collapse | g=1 (activity rank=5→1) | **No** | tanh saturates; activity rank drops at 30k; hardest regime |
| Parameter count scaling | 300, 600 neurons | **Yes** (30k) | More data reveals more signal dimensions |
| Low gain | g=2--3 (activity rank 17--26) | **Yes** (30k) | g=3: 100% at 30k; g=2: 42% at 30k |
| Training capacity | n_epochs, lr_W tuning | **Yes** (30k) | At 30k all training params become non-critical |
:::
### 2. Effective Rank Is Necessary but Not Sufficient
| neurons | frames | Regime | activity rank | Spectral radius | Convergence | Interpretation |
|:---------:|:--------:|--------|:--------:|:---------------:|:-----------:|:---------------|
| 100 | 10k | Noise=1.0 | 90 | >1.0 | **100%** | High activity rank + supercritical = easy |
| 100 | 10k | Sparse+Noise | 91 | <1.0 | **0%** | High activity rank + subcritical = hard |
| 100 | 10k | Chaotic | 35 | >1.0 | **92%** | Medium activity rank + supercritical = easy |
| 100 | 10k | fill=80% | 36 | 0.985 | **0%** | Medium activity rank + near-critical = plateau |
| 100 | 10k | Low-rank | 12 | ~1.0 | 75% | Low activity rank + critical = recoverable |
| 100 | 10k | g=3 | 26 | >1.0 | 42% | Reduced activity rank + supercritical = harder |
| 200 | 10k | g=3 | 31 | >1.0 | **0%** | Low activity rank + scale = training-limited |
| 200 | **30k** | g=3 | **55** | >1.0 | **100%** | **More frames restores activity rank** |
| 300 | **30k** | Chaotic | **80** | 1.03 | **100%** | **More frames doubles activity rank** |
| 600 | **30k** | Chaotic | **87** | 1.03 | **100%** | **More frames transforms 600 neurons** |
| 1000 | **30k** | Chaotic | **144** | ~1.0 | **0%** | **Highest activity rank but still insufficient** |
| 100 | **30k** | Sparse | **13** | 0.746 | **0%** | **Activity rank DROPS; rho controls activity rank** |
| 100 | **30k** | fill=80% | **49** | 0.985 | **0%** | **Activity rank rises but connectivity stuck** |
| 200 | **30k** | g=2 | **35--38** | >1.0 | **92%** | **n compensates: activity rank matches g=7 / 100 neurons** |
### 3. "Easy Mode" --- Chaotic Baseline (100 neurons)
- **Neuron count**: 100
- **Activity rank**: ~35
- **Tolerance**: lr_W range 1.5E-3 to 8E-3 all converge
- **Sweet spot**: lr_W=4E-3 (connectivity_R^2^=0.9999, test_R^2^=0.996)
- **lr=1E-4 is optimal**: increasing to 2E-4 or 3E-4 degrades dynamics
### 4. Low-Rank Breakthrough (100 neurons)
Low-rank connectivity (activity rank ~12) initially appeared much harder than chaotic, but a specific intervention unlocked near-chaotic performance:
```
Block 2 Progress (n=100):
Iter 13: lr_W=4E-3, L1=1E-5 → conn=0.999, test_R2=0.902 (dynamics poor)
Iter 18: lr_W=4E-3, L1=1E-6 → conn=1.000, test_R2=0.925 (improved!)
Iter 19: lr_W=3E-3, L1=1E-5 → conn=0.999, test_R2=0.943 (better lr_W)
Iter 21: lr_W=3E-3, L1=1E-6 → conn=0.993, test_R2=0.996 (BREAKTHROUGH)
```
::: {.callout-tip}
## Key Insight
For low-rank regimes (100 neurons), **reducing L1 from 1E-5 to 1E-6** is the critical enabler for dynamics recovery. Combined with lr_W=3E-3, this achieves chaotic-baseline-level performance (test_R^2^=0.996) despite activity rank=12.
:::
### 5. Dale's Law Creates Sharp Cliff (100 neurons)
Dale's law (excitatory/inhibitory constraint) reduces activity rank from 35 to 12 and introduces a sharp lr_W failure boundary:
| neurons | frames | lr_W | connectivity_R^2^ | Status |
|:---------:|:--------:|------|-----------|--------|
| 100 | 10k | 3.5E-3 | 0.958 | Converged |
| 100 | 10k | 4E-3 | 0.974 | Converged |
| 100 | 10k | 4.5E-3 | 0.986 | **Best** |
| 100 | 10k | 5E-3 | 0.458 | **FAILED** |
| 100 | 10k | 6E-3 | 0.555 | **FAILED** |
### 6. Noise Is Data Augmentation (100 neurons)
| neurons | frames | noise_level | activity rank | connectivity_R^2^ | Convergence |
|:---------:|:--------:|-------------|:--------:|-----------|:-----------:|
| 100 | 10k | 0 | 35 | 0.999 | 92% |
| 100 | 10k | 0.1 | 42 | 1.000 | **100%** |
| 100 | 10k | 0.5 | 84 | 1.000 | **100%** |
| 100 | 10k | 1.0 | 90 | 1.000 | **100%** |
### 7. Low Gain --- Independent Difficulty Axis (Blocks 19--21)
| neurons | frames | gain | activity rank | Convergence | Best connectivity | Key |
|:---------:|:--------:|:----:|:--------:|:-----------:|:---------:|:----|
| 100 | 10k | 3 | 26 | 42% (5/12) | 0.955 | New axis; no lr_W cliff; 3ep minimum |
| 200 | 10k | 3 | 31 | **0%** (0/12) | 0.489 | Gain x n compounds; universal degeneracy |
| 200 | **30k** | 3 | **55** | **100%** (12/12) | **0.996** | **30k rescues; all params non-critical** |
::: {.callout-tip}
## Key Insight
Low gain (g=3) eliminates the lr_W cliff seen at g=7, but compounds with network size to create severe difficulty (g=3 / 200 neurons/10k: 0% convergence with universal degeneracy). Unlike sparse connectivity, **30k frames fully rescues low gain** (0%-->100% convergence), with activity rank doubling from 31 to 55.
:::
### 8. Partial Connectivity --- Structural Ceiling (Blocks 22--23)
| neurons | frames | fill | activity rank | rho | Best connectivity | Key |
|:---------:|:--------:|:----:|:--------:|:---:|:---------:|:----|
| 100 | 10k | 50% | 21 | 0.746 | 0.466 | Subcritical; degenerate |
| 100 | 10k | 80% | 36 | 0.985 | 0.802 | Near-critical; no degeneracy |
| 100 | 10k | 100% | 35 | 1.065 | 0.999 | Supercritical; easy |
| 100 | **30k** | 50% | **13** | 0.746 | 0.436 | **Activity rank DROPS; not rescued** |
| 100 | **30k** | 80% | **49** | 0.985 | **0.802** | **Activity rank rises; connectivity stuck** |
::: {.callout-warning}
## Structural Limit
Connectivity ceiling $\approx$ filling_factor: fill=50%-->connectivity~0.49, fill=80%-->connectivity~0.80, fill=100%-->connectivity~1.00. At fill=80%, complete parameter insensitivity (lr_W, lr, L1, n_epochs, batch_size all irrelevant) at both 10k and 30k. The missing 20% of connections cannot be inferred from dynamics data regardless of volume.
{.lightbox}
:::
### 9. Fixed-Point Collapse --- g=1 Unsolvable (Blocks 25--26)
| frames | activity rank | Best connectivity | Degeneracy | Key |
|:--------:|:--------:|:---------:|:----------:|:----|
| 10k | 5 | 0.007 | 12/12 | Flat-line dynamics; universal degeneracy |
| **30k** | **1** | **0.018** | **12/12** | **Activity rank DROPS (5→1); 30k makes it WORSE** |
::: {.callout-warning}
## Structural Limit
g=1 produces fixed-point collapse: tanh saturates weak-gain dynamics into stable fixed points (flat lines). Activity rank=5 at 10k (catastrophically low) drops to 1 at 30k --- the only regime where frame count is negatively correlated with activity rank. Below the critical activity rank threshold (~10), no amount of training or data helps. More severe than sparse 50%.
:::
### 10. g=2 --- Inverse lr_W Regime (Blocks 27--28)
| frames | activity rank | Best connectivity | Convergence | Key |
|:--------:|:--------:|:---------:|:-----------:|:----|
| 10k | 17 | 0.519 | 0% (0/12) | Inverse lr_W=5E-4 (100x lower than g=7) |
| **30k** | **16** | **0.997** | **42%** (5/12) | **Partially rescued; inverse lr_W persists; activity rank flat** |
::: {.callout-tip}
## Key Insight
g=2 sits above the critical activity rank threshold (17 > 10) and is partially rescued by 30k frames (0%→42% convergence at 100 neurons). However, it requires **inverse lr_W** (~5E-4, 100x lower than g=7's 4E-3) --- a structural property that persists at 30k. Epoch scaling is not diminishing at g=2 (5ep→0.356, 8ep→0.397, 12ep→0.519 at 10k). At 30k/8ep, the Pareto-optimal config reaches connectivity=0.997.
**Block 29 update (g=2 / 200 neurons/30k)**: Scaling to 200 neurons dramatically changes the picture. Activity rank jumps from 16--17 (100 neurons) to 35--38 (200 neurons), matching g=7 / 100 neurons. Convergence rate rises to 92% (11/12), with best connectivity=0.979 at lr_W=3E-4/12ep. The inverse lr_W pattern persists but the ceiling is higher (1E-3 safe at 200 neurons vs catastrophic at 100 neurons). Epoch scaling remains strong but diminishes at 12ep (+0.3%). This confirms that neuron count compensates for gain reduction: g=2 / 200 neurons/30k is comparable in difficulty to g=7 / 200 neurons/10k.
:::
### 11. fill=90% --- Transitional Regime (Block 24)
| frames | activity rank | rho | Best connectivity | Convergence | Key |
|:--------:|:--------:|:---:|:---------:|:-----------:|:----|
| 10k | 35--36 | 0.995 | 0.907 | 83% (10/12) | connectivity $\approx$ fill%; above R^2^=0.9 convergence boundary |
The fill=90% regime extends the connectivity ceiling $\approx$ filling_factor relationship to a fourth data point: fill=50%→0.49, fill=80%→0.80, fill=90%→0.91, fill=100%→1.00. Unlike fill=80%, the 90% regime crosses the R^2^>0.9 convergence threshold, making it a transitional regime.
### 12. Sparse Connectivity --- Confirmed Unsolvable (Blocks 7, 8, 17)
| frames | activity rank | Best connectivity | Degeneracy | Key |
|:--------:|:--------:|:---------:|:----------:|:----|
| 10k | 21 | 0.466 | 12/12 | Universal degeneracy; rho=0.746 |
| 10k (noise) | 91 | 0.490 | 0/12 | Noise inflates activity rank; no rescue |
| **30k** | **13** | **0.436** | **12/12** | **Activity rank DROPS (21-->13); 30k useless** |
::: {.callout-warning}
## Structural Limit
Sparse 50% at 30k is the ONLY regime where activity rank **decreases** with more data (21-->13). Subcritical spectral radius (rho=0.746) determines activity rank, not data volume. Two-phase training provides marginal +15% but is insufficient. This regime requires architectural intervention.
:::
### 13. 1000 Neurons --- Scale Frontier (Blocks 18, 30)
**Block 18 (30k frames)**: Insufficient --- max connectivity=0.745 (0% convergence). lr=1E-4 Pareto-optimal; lr=2E-4 causes overtraining.
| frames | n_epochs | lr_W | connectivity | test_R^2^ | Key |
|:--------:|:--------:|:----:|:----:|:---------:|:----|
| 30k | 3 | 5E-3 | 0.666 | 0.795 | Baseline |
| 30k | 8 | 5E-3 | 0.745 | 0.829 | Best at 30k |
| **100k** | **3** | **3E-3** | **1.000** | **0.882** | **BREAKTHROUGH** |
| **100k** | **3** | **5E-3** | **1.000** | **0.836** | **Also converged** |
::: {.callout-tip}
## Block 30 Breakthrough
1000 neurons at 100k frames achieves **100% convergence** (12/12), connectivity=1.000. This confirms the frame-count scaling law: like 300 neurons (needs 30k) and 600 neurons (needs 30k), 1000 neurons needs ~100k frames. lr_W=3E-3 is optimal; batch=16 is safe; 3 epochs suffice. Activity rank ~350 at 100k frames. The 1000 neurons regime is now a **solved regime** --- joining 300 neurons/30k, 600 neurons/30k, and g=3 / 200 neurons/30k.
:::
### 14. Degeneracy --- When Dynamics Quality Misleads
| Block | Regime | frames | Degenerate iters | Max gap | Mechanism |
|:-----:|--------|:--------:|:----------------:|:-------:|-----------|
| 1 | Chaotic 100 neurons | 10k | 0/12 | 0.15 | Healthy |
| 2 | Low-rank 100 neurons | 10k | 1/12 | 0.45 | Stochastic at lr_W=5E-3 |
| 3 | Dale law 100 neurons | 10k | 4/12 | 0.53 | lr_W above Dale cliff |
| 7 | **Sparse 50%** | 10k | **12/12** | **0.82** | **Universal --- subcritical rho** |
| 9 | 300 neurons 1ep | 10k | 2/12 | 0.38 | Training-limited |
| 17 | **Sparse 50%** | **30k** | **12/12** | **~0.80** | **Still universal at 30k** |
| 19 | **g=3 100 neurons** | 10k | **4/12** | **0.75** | **Low gain at 1ep** |
| 20 | **g=3 200 neurons** | 10k | **12/12** | **~0.70** | **Gain x n = universal degeneracy** |
| 21 | **g=3 200 neurons (30k)** | **30k** | **0/12** | **0.01** | **30k eliminates degeneracy** |
| 22 | fill=80% | 10k | 0/12 | 0.20 | **Not degenerate** (connectivity stuck) |
| 24 | fill=90% | 10k | 0/12 | 0.09 | **Not degenerate** (connectivity stuck at 0.907) |
| 25 | **g=1 100 neurons** | 10k | **12/12** | **~0.99** | **Fixed-point collapse; flat-line dynamics** |
| 26 | **g=1 100 neurons (30k)** | **30k** | **12/12** | **~0.99** | **30k amplifies degeneracy; activity rank→1** |
| 27 | **g=2 100 neurons** | 10k | **12/12** | **0.48--0.90** | **Low gain; inverse lr_W needed** |
| 28 | **g=2 100 neurons (30k)** | **30k** | **5/12** | **0.003--0.80** | **Partially rescued; 42% convergence** |
| 29 | **g=2 200 neurons (30k)** | **30k** | **0/12** | **0.12** | **Healthy --- n compensates; activity rank=35--38** |
| 30 | **1000 neurons (100k)** | **100k** | **0/12** | **0.12** | **Healthy --- 100k eliminates degeneracy** |
| 15--16 | 300/600 neurons (30k) | 30k | 0/20 | -0.01 | Abundant data eliminates |
### 15. Frame Count Is the Dominant Lever (Blocks 15--16, 21)
| neurons | gain | frames | activity rank | Convergence | Best connectivity | Key |
|:---------:|:----:|:--------:|:--------:|:-----------:|:---------:|:----|
| 300 | 7 | 10k | 47 | 25% (3--4ep) | 0.924 | Training-sensitive |
| 300 | 7 | **30k** | **80** | **100%** (even 1ep) | **1.000** | All params non-critical |
| 600 | 7 | 10k | 50 | 0% (10ep) | 0.626 | Data-limited |
| 600 | 7 | **30k** | **87** | **100%** (2--4ep) | **0.992** | Solved |
| 200 | 3 | 10k | 31 | 0% | 0.489 | Gain x n |
| 200 | 3 | **30k** | **55** | **100%** (12/12) | **0.996** | **Gain rescued** |
| 100 | 2 | 10k | 17 | 0% (10k) | 0.519 | Inverse lr_W |
| 100 | 2 | **30k** | **16** | **42%** (5/12) | **0.997** | **Partially rescued** |
| 200 | 2 | **30k** | **35--38** | **92%** (11/12) | **0.979** | **n compensates gain** |
| **1000** | **7** | **30k** | **144** | **0%** (0/12) | **0.745** | **30k insufficient** |
| **1000** | **7** | **100k** | **~350** | **100%** (12/12) | **1.000** | **100k SOLVES 1000 neurons** |
::: {.callout-important}
## Key Finding
Frame count transforms the training landscape for dense supercritical networks:
1. **Activity rank scales with frame count**: 300 neurons: 47-->80 (30k); 600 neurons: 50-->87 (30k); 1000 neurons: 144-->~350 (100k); g=3 / 200 neurons: 31-->55 (30k)
2. **Convergence universalizes**: 300 neurons (25%-->100%), 600 neurons (0%-->100%), g=3 / 200 neurons (0%-->100%), **1000 neurons (0%-->100% at 100k)**
3. **Training params become non-critical**: lr_W safe range widens; batch_size=16 safe; 1--3 epochs suffice
4. **Optimal lr_W shifts lower**: 3--5E-3 at 30k vs 1E-2 at 10k; 3E-3 at 100k for 1000 neurons
**Exceptions**: sparse 50% (rho<1), fill=80%/90%, g=1 (fixed-point collapse). g=2 / 100 neurons is partially rescued (42% at 30k); g=2 / 200 neurons is mostly rescued (92% at 30k, activity rank=35--38)
:::
## Summary Statistics
### Overall Performance
::: {.feature-grid}
::: {.feature-card}
### 360 Iterations
Across 30 simulation regimes
:::
::: {.feature-card}
### ~99 Principles
Novel findings with 45--100% confidence
:::
::: {.feature-card}
### 10 Solved Regimes
100% convergence (chaotic, noise, 200 neurons, 200 neurons+4types, 300 neurons/30k, 600 neurons/30k, g=3 / 200 neurons/30k, **1000 neurons/100k**)
:::
::: {.feature-card}
### 3 Structural Limits
Sparse (rho<1), fill<100% (connectivity $\approx$ fill%), g=1 (fixed-point collapse)
:::
:::
## Next Steps
- [Epistemic Analysis](epistemic-analysis.qmd) --- How these findings were discovered
- [Exploration](exploration-gallery.qmd) --- Visual record per block
- [Case Study: Low-Rank](case-low-rank.qmd) --- Dedicated low-rank exploration
- [Case Study: Sparse](case-sparse.qmd) --- Dedicated sparse exploration with code modifications