diff options
Diffstat (limited to 'experiments')
| -rw-r--r-- | experiments/analyze_oral_a_failure.py | 23 |
1 files changed, 19 insertions, 4 deletions
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) |
