ViT-Tiny §1 fold — each emitted param-SGD op denotes the certified loss-descent step #
The ViT peer of MobileNetV2Fold/ConvNeXtFold/EfficientNetFold: for every
param-SGD op the vitTrainStepRenderV renderer emits, prove den(op) = θ − lr·(certified Jacobian · cotangent). Each is a one-or-few-line delegation to the already-proven render certs in
ViTVecLN (vector-[D] LN γ/β) and ViTClose (rowwise dense W/b, patch conv W/b, cls, pos); the
classifier head reuses the M2 Cifar8PoC.dense{W,B}_den. Together these cover EVERY parameter family
of the depth-12 ViT-Tiny train step (200 params), so the §1a tie (ViTStepTie) can thread them at the
real backward chain cotangents.
The op dens and the cert LHSs line up by construction (the core ops were built to denote exactly
these grads): veclnGammaSgd→vit_render_veclngamma_certified, rowDenseWeightSgd→
vit_render_rowdenseW_certified, rowDenseBiasSgd→vit_render_rowdenseb_certified (dense bias) and
vit_render_veclnbeta_certified (LN β — same op, different forward in the pdiv), patchEmbedWeightSgd
→vit_render_patchW_certified, patchEmbedBiasSgd→vit_render_patchb_certified, posEmbedSgd→
vit_render_pos_certified, cls (clsSliceF→denseBiasSgdB)→vit_render_cls_certified.
Vector-LN γ op denotes the certified step. den(veclnGammaSgd) = γ − lr·(Σ_tokens dy·x̂),
the certified ∂(rowwise vector-LN)/∂γ contraction. Covers all 25 LN-γ sites (LN1/LN2 × 12 + final).
One-line delegation to vit_render_veclngamma_certified (the den's sum IS vecLN_grad_gamma).
Per-token dense weight op denotes the certified step. den(rowDenseWeightSgd) (flat (i,j)) =
W_ij − lr·(Σ_tokens x·dy), the certified ∂(rowwise dense)/∂W contraction. Covers Wq/Wk/Wv/Wo/
Wfc1/Wfc2 (all 6 per-block denses). Delegation to vit_render_rowdenseW_certified.
Per-token dense bias op denotes the certified step (dense-bias forward). den(rowDenseBiasSgd)
= b − lr·(Σ_tokens dy). Covers bq/bk/bv/bo/bfc1/bfc2. Delegation to vit_render_rowdenseb_certified.
The SAME per-token bias op, certified against the vector-LN β forward. The LN β grad is
Σ_tokens dy — identical reduce to the dense bias — so rowDenseBiasSgd ALSO denotes the certified
∂(rowwise vector-LN)/∂β contraction. Covers all 25 LN-β sites. Delegation to vit_render_veclnbeta_certified.
Patch-embed conv weight op denotes the certified step. den(patchEmbedWeightSgd) (flat (d,c,kh,kw)) = W − lr·(certified patchify-conv weight grad). The ViT analogue of ConvNeXt's
stem 4×4/s4 weight — but here a VJP cert EXISTS, so it ties (vit has no even-kernel weight gap).
Delegation to vit_render_patchW_certified.
Patch-embed conv bias op denotes the certified step. den(patchEmbedBiasSgd) = b − lr·(Σ_patches dy) (CLS row 0 excluded). Delegation to vit_render_patchb_certified.
Positional-embed op denotes the certified step. den(posEmbedSgd) = pos − lr·dy (the pos
Jacobian is the identity — pos is added to every token). Delegation to vit_render_pos_certified.
Classifier head weight op denotes the certified step — the CLS-vector dense [D,nClasses],
covered VERBATIM by the M2 generic (single-vector dense, nothing to row-lift).
Classifier head bias op denotes the certified step. Peer of headW_den.
A per-token dense weight SGD node, tied (rowDenseWeightSgd_den).
Equations
- One or more equations did not get rendered due to their size.