summaryrefslogtreecommitdiff
path: root/PLAIN_CNN_CROSSOVER.md
blob: 42c74b72fa13e3e886e3ad44e9a33eacc25b9606 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
# 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.