summaryrefslogtreecommitdiff
path: root/experiments
diff options
context:
space:
mode:
Diffstat (limited to 'experiments')
-rw-r--r--experiments/analyze_oral_a_failure.py23
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)