diff options
| -rwxr-xr-x | experiments/plot_dynamic_stability.py | 5 | ||||
| -rw-r--r-- | results/figs/figureS_dynamic_stability_caption.md | 20 | ||||
| -rw-r--r-- | results/figs/figureS_dynamic_stability_manifest.json | 4 |
3 files changed, 28 insertions, 1 deletions
diff --git a/experiments/plot_dynamic_stability.py b/experiments/plot_dynamic_stability.py index 3c99260..1d6ac19 100755 --- a/experiments/plot_dynamic_stability.py +++ b/experiments/plot_dynamic_stability.py @@ -54,6 +54,9 @@ def main(): "--kp_gate", default="results/kp_short_gate.json") parser.add_argument( "--out", default="results/figs/figureS_dynamic_stability") + parser.add_argument( + "--caption", + default="results/figs/figureS_dynamic_stability_caption.md") args = parser.parse_args() dynamic = read(args.dynamic_train) @@ -202,6 +205,8 @@ def main(): "script": os.path.relpath(__file__), "script_sha256": sha256(__file__), "sources": {path: sha256(path) for path in sources}, + "caption": args.caption, + "caption_sha256": sha256(args.caption), "png": png, "png_sha256": sha256(png), "pdf": pdf, diff --git a/results/figs/figureS_dynamic_stability_caption.md b/results/figs/figureS_dynamic_stability_caption.md new file mode 100644 index 0000000..08613e8 --- /dev/null +++ b/results/figs/figureS_dynamic_stability_caption.md @@ -0,0 +1,20 @@ +**Figure S — Dynamic neutral projection repairs the multiplicative +mixed-traffic failure.** **a,** Training-only batch losses for the frozen D1 +dynamic controller and the earlier closed-form/frozen-predictor controller +lesion. The lesion curve is a labeled pre-grid diagnostic rather than a +preregistered endpoint; it visualizes the failure that motivated D1. Both +records use the same ResNet-20 family, four-to-one soma-coupled traffic, +momentum, learning rate, and 352-step boundary. **b,** Before each D1 update, +the neutral residual remaining after the slow predictor grows with the task +state. A fast affine projection based only on paired instruction-off local +soma/apical observations holds the post-projection residual below +`3.03e-8` of traffic RMS. The fast coefficient fit observes no task +instruction and leaves the slow predictor frozen. **c,** The separately +frozen 20-epoch D2 endpoint reaches `83.58%` validation accuracy, versus +`82.66%` for clean reciprocal KP and `10%` for each raw, norm-matched, and +original frozen-innovation MT-1 condition. The MT-1 bars do not receive the +new controller and are retained as historical failed controls. D2 uses one +seed, one final validation evaluation, zero test evaluations, zero task-loss +queries, and `1.326x` the matched BP affine-MAC estimate; the paired neutral +microphase and 4.070e12 elementwise operations are reported separately. + diff --git a/results/figs/figureS_dynamic_stability_manifest.json b/results/figs/figureS_dynamic_stability_manifest.json index 2d3029f..679e56c 100644 --- a/results/figs/figureS_dynamic_stability_manifest.json +++ b/results/figs/figureS_dynamic_stability_manifest.json @@ -1,4 +1,6 @@ { + "caption": "results/figs/figureS_dynamic_stability_caption.md", + "caption_sha256": "82f1146f42edafb16f47ce5c640a58b43125591c946824c4b05572b5e2233072", "fixed_predictor_curve_is_pre_grid_diagnostic": true, "manifest": "results/figs/figureS_dynamic_stability_manifest.json", "pdf": "results/figs/figureS_dynamic_stability.pdf", @@ -6,7 +8,7 @@ "png": "results/figs/figureS_dynamic_stability.png", "png_sha256": "2edb93c8589ffdaf3ef1d9d03f888d4da3ca895aeb25a7fddf6d140d07f18f47", "script": "experiments/plot_dynamic_stability.py", - "script_sha256": "4ba70bcc3f89c2a155e26dd8bafdfcb4d77e434349c91b09019207e7c27806ef", + "script_sha256": "7967b1e46c030d1877d46573767b37f25b98f667fb1d1144bed6232a3b8ee6fb", "sources": { "results/kp_dynamic_projection/dynamic.json": "44348f3a7225b972718e3048def3797dbb00bd0c900aa28e6314738741011a85", "results/kp_dynamic_projection_gate.json": "4a935510632e885aa10b56bfc55528a9272e8e9b7ad16f1cb63cda32caee4db7", |
