From 752dfb833b06a6fb974df892de560caf328ed1dd Mon Sep 17 00:00:00 2001 From: YurenHao0426 Date: Wed, 8 Apr 2026 18:03:16 -0500 Subject: paper v2.31: matched 30-epoch BP/DFA controls (was unsourced 0.609/0.308) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The §5 ¶3 BP-no-penalty value of 0.609 ± 0.004 and DFA-no-penalty value of 0.308 ± 0.014 turned out to be unsourced — they were carried over from a hardcoded comment in experiments/bp_with_penalty_control.py ("BP-trainable (3-seed mean): 0.609") that nobody had actually measured with a matched 30-epoch run. Ran the missing matched controls under the same recipe as BP+pen (lam=0, 30 epochs, AdamW 1e-3, wd 0.01, cosine schedule, batch 128, 3 seeds 42/123/456): BP no-pen 30ep: per-seed 0.5851, 0.5845, 0.5863 → 0.585 ± 0.001 (paper said 0.609 ± 0.004, off by 0.024) DFA no-pen 30ep: per-seed 0.3070, 0.2985, 0.2966 → 0.301 ± 0.005 (paper said 0.308 ± 0.014) Also re-grounded DFA+penalty 30ep using the dfa_pen_short 3-seed run (0.3593, 0.3610, 0.3604 → 0.360 ± 0.001), which is what the deep-cosine +0.155 figure was computed on. The paper had 0.363 ± 0.001 — that came from the 100-epoch run, not the 30-epoch run, so it was an apples-to- oranges comparison with BP+pen 30-ep. Paper changes (§5 ¶3): BP penalty cost: -8 pp → -5.5 pp DFA pen rescue: +5.5 → +5.9 pp DFA+pen margin vs frozen: +1.4 → +1.1 pp BP-to-DFA gap: 17 → 17.0 pp (unchanged) BP-to-SB gap: 7.7 → 7.7 pp (unchanged) BP-to-DFA gap is still the lower-bound credit-quality cost claim; 17 pp gap is unchanged in magnitude. Also updated: - §5 ¶1 prose: 0.363 → 0.360, 0.308 → 0.301 - §4 ¶4 prose: DFA+pen 0.363 → 0.360 - Appendix J Table 9 caption: 0.363 → 0.360, +9.0 → +9.3 pp gap to SB - Appendix L paragraph: +5.5 → +5.9 pp DFA penalty rescue - Figure 3 panel C bar values + title pen-cost annotation - New results/matched_30ep_control_summary.json as auditable record Page layout preserved: 9 main pages + refs p10, 18 total, 0 overfull. Co-Authored-By: Claude Opus 4.6 (1M context) --- results/matched_30ep_control_summary.json | 71 +++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 results/matched_30ep_control_summary.json (limited to 'results/matched_30ep_control_summary.json') diff --git a/results/matched_30ep_control_summary.json b/results/matched_30ep_control_summary.json new file mode 100644 index 0000000..23acca3 --- /dev/null +++ b/results/matched_30ep_control_summary.json @@ -0,0 +1,71 @@ +{ + "matched_30ep_control": { + "config": { + "arch": "4-block d=256 pre-LN ResMLP", + "dataset": "CIFAR-10", + "epochs": 30, + "batch": 128, + "optimizer": "AdamW lr=1e-3 wd=0.01", + "schedule": "cosine", + "penalty": "lam*mean(||f_l(h_l)||^2) on residual branches" + }, + "bp_no_pen_3seed": { + "per_seed": { + "42": 0.5851, + "123": 0.5845, + "456": 0.5863 + }, + "mean": 0.5853, + "std_ddof0": 0.00075, + "std_ddof1": 0.00092, + "source_files": [ + "results/bp_no_penalty_30ep/bp_pen_lam0.0_s{42,123,456}.json" + ] + }, + "bp_with_pen_s42": { + "acc": 0.5303, + "lam": 0.01, + "source": "results/bp_with_penalty/bp_pen_lam0.01_s42.json", + "note": "single-seed (s42 only); v2.30 polish identified the matched 30-ep no-pen 3-seed control was missing" + }, + "dfa_no_pen_3seed": { + "per_seed": { + "42": 0.307, + "123": 0.2985, + "456": 0.2966 + }, + "mean": 0.3007, + "std_ddof0": 0.0045, + "std_ddof1": 0.0055, + "source_files": [ + "results/dfa_no_penalty_30ep/results_cifar10.json" + ] + }, + "dfa_with_pen_3seed": { + "per_seed": { + "42": 0.3593, + "123": 0.361, + "456": 0.3604 + }, + "mean": 0.3602, + "std_ddof0": 0.0007, + "std_ddof1": 0.0009, + "source_files": [ + "results/dfa_pen_short/dfa_pen_lam0.01_s{42,123,456}.json" + ], + "lam": 0.01 + }, + "penalty_costs": { + "bp_pen_cost_pp": 5.5, + "dfa_pen_rescue_pp": 5.9 + }, + "margins_vs_frozen_0.349": { + "bp_no_pen_pp": 23.6, + "bp_with_pen_pp": 18.1, + "dfa_no_pen_pp": -4.8, + "dfa_with_pen_pp": 1.1, + "sb_with_pen_pp": 10.4, + "cb_with_pen_pp": 1.1 + } + } +} \ No newline at end of file -- cgit v1.2.3