diff options
| -rw-r--r-- | NOVELTY.md | 9 | ||||
| -rw-r--r-- | RESULTS.md | 21 | ||||
| -rw-r--r-- | REVIEW_SCORECARD.md | 1 | ||||
| -rw-r--r-- | ROADMAP.md | 9 | ||||
| -rw-r--r-- | experiments/analyze_oral_a_failure.py | 23 | ||||
| -rw-r--r-- | results/oral_a_failure_diagnosis.json | 12 | ||||
| -rw-r--r-- | results/oral_a_hierarchical_oracle.json | 238 |
7 files changed, 307 insertions, 6 deletions
@@ -50,6 +50,15 @@ BurstCCN already: Thus neither "apical dendrites carry vector errors", "the model reproduces Harnett Fig. 5", nor "a dendritic local rule scales to ImageNet" is a sufficient novelty claim. +Likewise, recursive spatial feedback, learned feedback convolutions, and local +ReLU-gated error propagation are not new by themselves. The post-failure +hierarchical oracle deliberately reconstructs a BP-like local adjoint and may +guide engineering, but it cannot be presented as an SDIL contribution. Any +trainable version must be compared directly with hierarchical FA, learned +feedback alignment/weight-mirroring methods, and BurstCCN. The Harnett-specific +claim remains the neutral-period somato-dendritic innovation operation under +mixed traffic. + ## Candidate SDIL contribution The candidate contribution is the combination @@ -707,6 +707,27 @@ toward informative hierarchical/high-level feedback context or a mechanism that addresses remaining cross-layer/parameter-space noise; it does not justify another rate or warmup sweep. +The next oracle follows the actual residual DAG instead of adding global +context. On separate 128-example BatchNorm graphs, a local map from the exact +child error fields to each of the first six hidden populations gives: + +| held-out feedback family | early-third alignment | +|:--|--:| +| direct output, channel gated | 0.031123 | +| plus ordinary downstream activation context | 0.032069 | +| hierarchical 1x1 | 0.440525 | +| hierarchical 1x1 + child ReLU gate | 0.505210 | +| hierarchical 3x3 | 0.819917 | +| hierarchical 3x3 + child ReLU gate | 0.999767 | + +The nearly exact final row is an oracle reconstruction of the local transpose +convolution/ReLU computation, not a non-backprop learning result. Its value is +diagnostic: spatially aligned child error fields contain the missing early +credit, whereas ordinary downstream activations do not. A credible next method +must learn these hierarchical feedback maps without copying forward weights +and must compare against fixed/random hierarchical FA and BurstCCN; merely +adding recursive feedback is established prior art. + ## How to run `experiments/run.py --mode {bp,fa,dfa,sdil} --dataset {mnist,fmnist,cifar10} --depth D --residual {0,1} --act {tanh,gelu,silu,relu}` Batteries: `experiments/run_v2.sh <ds> "<depths>" <res> <act> "<seeds>" <ep> <pfx>`. diff --git a/REVIEW_SCORECARD.md b/REVIEW_SCORECARD.md index 59fe99e..60c58d3 100644 --- a/REVIEW_SCORECARD.md +++ b/REVIEW_SCORECARD.md @@ -77,6 +77,7 @@ retroactively reopened by success on standard vision benchmarks. | 2026-07-22 / Oral-A-v2 V2-1 | Six clean frozen-forward records: structured calibration raises early/all-layer alignment to 0.0072/0.0527 but fails two frozen advancement checks | 5 → 5 | Confirms representable-subspace variance was real, while showing that early-layer causal credit remains below the standard-depth gate; V2-2 and confirmation stay closed | | 2026-07-22 / post-failure representation oracle | Current family has a 0.0240 cross-validated early-alignment ceiling on the fixed probe versus 0.0072 learned; unconstrained basis coefficients reach 0.0549 | 5 → 5 | Localizes both a causal-regression gap and an output-error-only capacity gap, but an oracle audit supplies no task-performance evidence | | 2026-07-22 / Oral-A-v3 V3-1 | Four clean frozen-forward records: vectorizer-space estimation raises all-layer alignment to 0.0626 but leaves early alignment at 0.0071 and fails three advancement checks | 5 → 5 | Exact lower-variance mechanics do not repair early credit; no full ResNet or confirmation evidence is opened | +| 2026-07-22 / hierarchical oracle | Held-out gated 3x3 maps from exact child error fields reach 0.9998 early alignment; ordinary activation context remains 0.0321 | 5 → 5 | Strongly localizes the missing information to spatial hierarchical error fields, but exact-gradient oracle inputs provide no evidence that the proposed local learner can obtain them | Future rows are appended only after an audited frozen stage. A score staying flat is informative: engineering, theory exposition, or visualization may make the paper more defensible without @@ -383,6 +383,15 @@ remains sealed. This closes learning-rate tuning of the same output-error-only channel-gated family; a further branch must make a substantive feedback-context or cross-layer-noise change. +The fixed post-failure hierarchical oracle identifies the substantive next +change. Ordinary downstream activation context moves early alignment only from +`0.031123` to `0.032069`, while held-out local maps from the actual residual-DAG +child error fields reach `0.440525` (1x1), `0.819917` (3x3), and `0.999767` +(3x3 plus the locally available child ReLU gate). This is not task evidence +and uses exact child gradients as oracle inputs. It establishes that future +development should learn spatial hierarchical feedback without weight copying, +with random/fixed hierarchical FA and BurstCCN as mandatory baselines. + Prepare convolutional local-update primitives and ResNet-20/32/56 protocols early. Queue frozen runs opportunistically on authorized idle GPUs. Because BurstCCN already reports CIFAR-10 and ImageNet scaling, dataset scale alone is not novel. The oral-level target is a memorable joint diff --git a/experiments/analyze_oral_a_failure.py b/experiments/analyze_oral_a_failure.py index 03549b8..b89951c 100644 --- a/experiments/analyze_oral_a_failure.py +++ b/experiments/analyze_oral_a_failure.py @@ -31,6 +31,9 @@ def main(): parser.add_argument( "--v3_gate", default="results/oral_a_v3_calibration_gate.json") parser.add_argument( + "--hierarchical_oracle", + default="results/oral_a_hierarchical_oracle.json") + parser.add_argument( "--out", default="results/oral_a_failure_diagnosis.json") args = parser.parse_args() @@ -40,6 +43,7 @@ def main(): v2_gate = load(args.v2_gate) representation = load(args.representation) v3_gate = load(args.v3_gate) + hierarchical = load(args.hierarchical_oracle) expected = { "mode": "sdil", "depth": 20, "epochs": 200, "vectorizer_mode": "channel_gated", "a_scale": 1.0, @@ -60,6 +64,8 @@ def main(): if (v3_gate["status"] != "failed" or v3_gate["confirmation_test_seeds_touched"]): raise ValueError("expected a failed v3 gate with untouched confirmation") + if hierarchical["probe"]["test_examples_touched"] != 0: + raise ValueError("hierarchical oracle touched test examples") calibration_rows = [] first_nonfinite_epoch = None @@ -108,6 +114,7 @@ def main(): "full": args.full, "short": args.short, "gate": args.gate, "v2_gate": args.v2_gate, "representation": args.representation, "v3_gate": args.v3_gate, + "hierarchical_oracle": args.hierarchical_oracle, }, "source_commits": { "full": full["provenance"]["git_commit"], @@ -174,6 +181,14 @@ def main(): ["all_layer_alignment"]), "vectorizer_subspace_gate_status": v3_gate["status"], }, + "post_failure_hierarchical_refinement": { + key: hierarchical["cosine"][key]["early_third_mean"] + for key in ( + "direct_output_channel_gated", + "downstream_activation_context", + "hierarchical_1x1_gated", + "hierarchical_3x3_gated") + }, "diagnosis": { "classification": ( "early_credit_limited_by_estimator_efficiency_and_feedback_capacity"), @@ -185,6 +200,7 @@ def main(): "structured learning reaches 0.0072 versus a 0.0240 cross-validated family oracle", "unconstrained coefficients raise the same spatial basis oracle only to 0.0549", "direct A/G estimation leaves early alignment unchanged at 0.0071", + "held-out gated 3x3 maps from exact child errors reach 0.9998", ], "interpretation_limit": ( "instantaneous target metrics alone do not prove zero conditional " @@ -195,10 +211,9 @@ def main(): "direct vectorizer-space estimation then improved only middle/late " "layers and also failed the frozen early-layer gate"), "next_design_constraint": ( - "do not add the tested naive local-average/channel-mean bases; " - "do not repeat the closed A/G rate grid; use a more informative " - "hierarchical or high-level contextual feedback signal and " - "audit remaining cross-layer noise"), + "do not add the tested activation contexts or repeat the closed " + "A/G rate grid; learn spatial hierarchical feedback without " + "weight copying and audit against hierarchical FA/BurstCCN"), }, } os.makedirs(os.path.dirname(os.path.abspath(args.out)), exist_ok=True) diff --git a/results/oral_a_failure_diagnosis.json b/results/oral_a_failure_diagnosis.json index b26d81e..79feb33 100644 --- a/results/oral_a_failure_diagnosis.json +++ b/results/oral_a_failure_diagnosis.json @@ -52,10 +52,11 @@ "matched frozen-forward unit targets later yield only 0.0011 early-layer alignment", "structured learning reaches 0.0072 versus a 0.0240 cross-validated family oracle", "unconstrained coefficients raise the same spatial basis oracle only to 0.0549", - "direct A/G estimation leaves early alignment unchanged at 0.0071" + "direct A/G estimation leaves early alignment unchanged at 0.0071", + "held-out gated 3x3 maps from exact child errors reach 0.9998" ], "interpretation_limit": "instantaneous target metrics alone do not prove zero conditional learning; structured v2 has low instantaneous cosine yet positive exact-gradient alignment", - "next_design_constraint": "do not add the tested naive local-average/channel-mean bases; do not repeat the closed A/G rate grid; use a more informative hierarchical or high-level contextual feedback signal and audit remaining cross-layer noise", + "next_design_constraint": "do not add the tested activation contexts or repeat the closed A/G rate grid; learn spatial hierarchical feedback without weight copying and audit against hierarchical FA/BurstCCN", "next_test_outcome": "representable-subspace perturbation improved alignment but failed; direct vectorizer-space estimation then improved only middle/late layers and also failed the frozen early-layer gate" }, "frozen_outcome": { @@ -76,6 +77,12 @@ "loss": null } }, + "post_failure_hierarchical_refinement": { + "direct_output_channel_gated": 0.031122580851844408, + "downstream_activation_context": 0.032068526988258954, + "hierarchical_1x1_gated": 0.50521034930192, + "hierarchical_3x3_gated": 0.9997667354251036 + }, "post_failure_representation_refinement": { "channel_gated_cv_oracle_early_third_alignment": 0.02396580002561188, "naive_local_context_cv_early_third_alignment": 0.022457713873793972, @@ -110,6 +117,7 @@ "source_paths": { "full": "results/oral_a_dev/sdil_full_r20_s0.json", "gate": "results/oral_a_full_gate.json", + "hierarchical_oracle": "results/oral_a_hierarchical_oracle.json", "representation": "results/oral_a_representation_diagnosis.json", "short": "results/oral_a_short/sdil_channel_gated_lr0.03.json", "v2_gate": "results/oral_a_v2_calibration_gate.json", diff --git a/results/oral_a_hierarchical_oracle.json b/results/oral_a_hierarchical_oracle.json new file mode 100644 index 0000000..545a492 --- /dev/null +++ b/results/oral_a_hierarchical_oracle.json @@ -0,0 +1,238 @@ +{ + "cosine": { + "direct_output_channel_gated": { + "early_third_mean": 0.031122580851844408, + "per_layer": [ + 0.014921543495746436, + 0.019894676282936723, + 0.0282271051699598, + 0.03533547855645916, + 0.04383726627872673, + 0.0445194153272376 + ] + }, + "downstream_activation_context": { + "early_third_mean": 0.032068526988258954, + "per_layer": [ + 0.015172893156451723, + 0.02093329244734575, + 0.03032952347243866, + 0.036240372930205864, + 0.043887546626221505, + 0.04584753329689023 + ] + }, + "hierarchical_1x1": { + "early_third_mean": 0.44052470743135946, + "per_layer": [ + 0.46788420886369614, + 0.3231655357294116, + 0.5899724506620518, + 0.3257336277626957, + 0.6199696177846528, + 0.3164228037856487 + ] + }, + "hierarchical_1x1_gated": { + "early_third_mean": 0.50521034930192, + "per_layer": [ + 0.5667462015924819, + 0.3611245555418099, + 0.6843671689570183, + 0.3570338150608624, + 0.7093727314925211, + 0.35261762316682654 + ] + }, + "hierarchical_3x3": { + "early_third_mean": 0.8199172772242803, + "per_layer": [ + 0.7459063715286154, + 0.8262732802772361, + 0.793522765424401, + 0.8599287817089369, + 0.8139193036048705, + 0.879953160801622 + ] + }, + "hierarchical_3x3_gated": { + "early_third_mean": 0.9997667354251036, + "per_layer": [ + 0.9993640919952334, + 0.999799566383427, + 0.9999004439090606, + 0.9998297253276784, + 0.9998818831563995, + 0.9998247017788229 + ] + } + }, + "fit": { + "hierarchical_relative_ridge": 1e-06, + "ridge_role": "fixed numerical conditioning, not endpoint selection" + }, + "interpretation": { + "direct_output_channel_gated": "current output-error-only family", + "downstream_activation_context": "current family plus ordinary next-node activation map", + "hierarchical": "local linear feedback from exact child error fields following the true residual DAG; gated variants multiply by child ReLU state", + "status": "post_failure_oracle_not_a_trainable_method_or_gate" + }, + "network": { + "depth": 20, + "forward_state": "deterministic_initialization_no_updates", + "normalization": "batchnorm", + "residual_scale": 1.0, + "seed": 0, + "width": 16 + }, + "prediction_energy_over_target_energy": { + "direct_output_channel_gated": { + "early_third_mean": 0.001537713589318464, + "per_layer": [ + 0.00048708346199335603, + 0.0008494185513749271, + 0.001249646051341693, + 0.001762353268497944, + 0.0023878024038859126, + 0.00248997779881695 + ] + }, + "downstream_activation_context": { + "early_third_mean": 0.0017585368373614592, + "per_layer": [ + 0.0005894725033945322, + 0.0011358088629614706, + 0.0014933947759630931, + 0.0019371272285281854, + 0.002642552679428714, + 0.0027528649738927592 + ] + }, + "hierarchical_1x1": { + "early_third_mean": 0.21093509531885588, + "per_layer": [ + 0.21368997518885788, + 0.10759142591349577, + 0.3482826378878522, + 0.10767558816021679, + 0.3861797202365838, + 0.1021912245261288 + ] + }, + "hierarchical_1x1_gated": { + "early_third_mean": 0.2791378873040979, + "per_layer": [ + 0.3157016623047377, + 0.1334361923772813, + 0.4681671742151389, + 0.1292411902995396, + 0.5023064159214083, + 0.12597468870648137 + ] + }, + "hierarchical_3x3": { + "early_third_mean": 0.6797097711665088, + "per_layer": [ + 0.5423770967465465, + 0.6985505551295879, + 0.6396710728617321, + 0.7498588674920689, + 0.6612808289892634, + 0.7865202057798534 + ] + }, + "hierarchical_3x3_gated": { + "early_third_mean": 1.0027014963437466, + "per_layer": [ + 0.9733409516366273, + 1.024496384636999, + 1.0067263938527884, + 1.008659614236897, + 0.9967422111022111, + 1.0062434225969583 + ] + } + }, + "probe": { + "evaluation_examples": 128, + "fit_examples": 128, + "layers": [ + 0, + 1, + 2, + 3, + 4, + 5 + ], + "residual_dag_children": [ + [ + 1, + 2 + ], + [ + 2 + ], + [ + 3, + 4 + ], + [ + 4 + ], + [ + 5, + 6 + ], + [ + 6 + ] + ], + "separate_batchnorm_graphs": true, + "source": "unaugmented first training-prefix examples", + "test_examples_touched": 0 + }, + "protocol": "oral_a_post_failure_hierarchical_oracle_v1", + "provenance": { + "git_commit": "45d2b57310d556c4d1e78ee185279eda14189585", + "git_tracked_dirty": false + }, + "split": { + "dataset": "cifar10", + "input_layout": "NCHW", + "input_shape": [ + 3, + 32, + 32 + ], + "loader_seed": 0, + "normalization_mean": [ + 0.49140000343322754, + 0.4821999967098236, + 0.4465000033378601 + ], + "normalization_std": [ + 0.24699999392032623, + 0.2434999942779541, + 0.26159998774528503 + ], + "split_from_training_only": true, + "split_seed": 2027, + "test_examples": 10000, + "train_examples": 10000, + "training_augmentation": "none", + "validation_class_counts": { + "0": 500, + "1": 500, + "2": 500, + "3": 500, + "4": 500, + "5": 500, + "6": 500, + "7": 500, + "8": 500, + "9": 500 + }, + "validation_examples": 5000, + "validation_index_sha256": "8328b206a97c420e49e54e3eca4abe3274c4756b084355784ea3fb8059e4515b" + } +} |
