summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xexperiments/plot_dynamic_stability.py5
-rw-r--r--results/figs/figureS_dynamic_stability_caption.md20
-rw-r--r--results/figs/figureS_dynamic_stability_manifest.json4
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",