# Plain-CNN crossover protocol ## Scope and source freeze This is the family-specific realization of `CROSS_ARCHITECTURE_CROSSOVER.md` for CIFAR-10 miniCNN, VGGlike, and VGG16. It contains all nine registered methods. No method or architecture may be removed after an endpoint, and a nonfinite or chance result remains a cell. The forward topologies and data pipeline come from Høier and Zach's Dual Propagation repository at revision `7b2595b34421e1483a721dbfdeff8cdabda3a1ff`. Native DP-transpose VGG16 was first reproduced from that clean revision at 92.46% test accuracy versus the paper's `92.41 +/- 0.07%`. Crossover development occurs on the tracked `sdil-vgg16-crossover` worktree. Its modifications keep the author-compatible defaults and add explicit switches rather than altering the native command. The PEPITA equations and initialization are checked against `GiorgiaD/PEPITA` revision `3fe03d80b642fa6df8ed23fc1c6dc9247f98c63b`. Forward-Forward uses candidate label overlay, input-length normalization, the softplus goodness objective, and greedy layerwise Adam training from the public reference protocol. Equilibrium Propagation uses the original hard-sigmoid state function, synchronous leaky free/nudged dynamics, random nudge sign, squared output cost, and local contrastive correlations. These three are architecture-compatible adaptations to the author CNN parameterization, not claims that their original papers evaluated VGG16. ## Completed P0 mechanics and compilation gate The deterministic float64 suite must pass before any selection endpoint: - FA with `B=W` reproduces exact BP through convolution, ReLU, max-pool, and dense layers to relative error below `2e-12`; - actual FA feedback is independently initialized, and detached local objectives have zero cross-layer gradient leakage; - DFA direct maps preserve the norm of an output teaching vector in expectation rather than scaling with feature-map size; - the PEPITA second-pass readout correlation matches its explicit equation to absolute error below `2e-12`; - FF's local objective matches the explicit positive/negative goodness equation, and every non-target layer receives exactly zero gradient during a greedy update; - EP's contrastive readout correlation matches the explicit free-minus-nudged equation to absolute error below `2e-12`; - KP forward and reciprocal correlations agree below `2e-12`, changing Q after activities are fixed changes its correlation by exactly zero, and `Q=W` remains exact after two momentum-plus-decay steps; - dynamic SDIL's paired-neutral projection leaves the clean instruction unchanged to relative error below `2e-12`, observes zero instruction examples, and leaves absolute soma slope below `2e-12`. The audited errors are respectively `2.31e-16`, `3.47e-17`, `0`, `5.55e-17`, `0`, `0`, and `1.27e-15`; all gates pass. Every method also completed a one-epoch miniCNN GPU smoke. These smokes exposed test only to verify the inherited author's save/restore path and cannot select settings. Formal runs use `--test-policy none`, `--early-stop-policy none`, `--gradient-diagnostics none`, and `--spectral-diagnostics none`. ## P1 bounded validation-only selection P1 uses miniCNN, seed 0, feedback seed 1729, traffic seed 4000, the author's 90/10 train/validation split, batch 100, augmentation, float32 parameters and states, momentum 0.9, and weight decay `5e-4`. It evaluates validation but never test. BP and methods with a cited canonical setting are fixed: | Method | P1 setting | |---|---| | BP | author peak LR 0.025 | | PEPITA | LR 0.01, He-uniform input projection times 0.05 | | Forward-Forward | Adam LR 0.03, threshold 2, score from layer 1 | | Dual Propagation | DP-transpose, alpha 0, beta 0.1, 16 `fwK` nudged passes, LR 0.025 | Ordinary FA, DFA, clean-KP, and SDIL each run the complete peak-LR grid `{0.003, 0.01, 0.03}`. SDIL uses the same candidate rate as clean-KP, four RMS soma-predictable traffic, one 64-example closed-form neutral predictor fit, and paired-neutral projection on every task minibatch. EP runs the complete LR grid `{0.003, 0.01, 0.03}` with beta 0.5, `dt=0.5`, 20 free and 4 nudged steps. BP, FA, DFA, clean-KP, SDIL, PEPITA, EP, and DP run 10 global epochs in P1; FF runs 10 epochs per greedy layer. P1 keeps each candidate rate constant for all 10 epochs (the PEPITA 60/90 boundaries are therefore not reached), with no warmup. This makes the selector compare the declared rates rather than different portions of a long-run decay schedule. For each gridded method select maximum best validation accuracy, then finite final loss, then the lower LR. If every candidate is nonfinite, retain and select the lowest LR; do not invent a recovery grid. The selected rate is copied unchanged to VGGlike and VGG16. P1 records are development artifacts, not cells in the primary 27-cell panel. ## P2 complete 27-cell validation panel P2 uses seed 0 and the same split, initialization, method seeds, minibatch order, augmentation, precision, and validation-only policy. BP, FA, DFA, clean-KP, SDIL, and Dual Propagation use the author 130-epoch schedule: batch 100, 10 warmup epochs from 0.001, the P1-selected peak rate, final rate `2e-6`, cosine decay ending at epoch 120, momentum 0.9, and weight decay `5e-4`. DP keeps alpha 0, beta 0.1, and 16 `fwK` nudged passes. PEPITA uses 100 epochs, LR 0.01, and the paper/reference-code drops by 0.1 at epochs 60 and 90, with the same two-presentation projection and no dropout. FF uses 40 epochs per greedy layer, Adam LR 0.03, threshold 2, and candidate goodness from all but the first layer. EP uses 100 epochs at the selected rate with beta 0.5, `dt=0.5`, 20 free steps, 4 nudged steps, and random beta sign. The different inference and presentation counts are part of each method and are charged. Every record contains final and best validation accuracy, selection epoch, completed epochs, first nonfinite epoch, training and validation wall time, peak memory, forward/relaxation/presentation counts, affine work, feedback correlation work, task-loss queries, physical GPU, environment freeze, dataset hashes, command, source revision, tracked-dirty state, and the P1 selector hash. KP/SDIL additionally record per-layer Q/W cosine and reciprocal-correlation error. SDIL records the realized traffic ratio, slow-predictor residual ratio, pre/post fast-projection traffic ratio, post-projection soma slope, and instruction-free observation count. The P2 analyzer fails completeness unless all 27 cells are present. A nonfinite record is retained with its last finite validation metric and a failure marker. There is no validation-drop early stopping. The only early termination is a nonfinite training trajectory or a predeclared 48-hour per-cell wall cap; a capped record remains a timeout cell. ## P3 untouched complete confirmation P3 is not opened until all P2 cells and its analyzer are committed. Before any P3 endpoint, a separate commit fixes the untouched seed identities and test policy. Every one of the 27 cells receives the same seeds and its P1-selected settings; no winner-only confirmation is permitted. Test is evaluated once from the validation-selected checkpoint. Native author multi-seed intervals remain separately labelled and cannot substitute for a missing matched cell. ## Prespecified family conclusions The plain-CNN scaling view reports miniCNN, VGGlike, and VGG16 separately for every method. It includes accuracy versus wall, accuracy versus hardware-independent work, smallest-to-largest paired change, divergence and timeout markers, and hidden teaching/BP alignment from an independent fixed probe. A result can support SDIL's scaling/Pareto claim only if the complete panel is present; clean-KP equality in the clean task is expected and cannot be relabelled as an innovation advantage.