⭐⭐ efficientnetInputGradB_full IS the certified whole-net PAPER EfficientNet-B0 gradient #
EfficientNetWholeBackCertifiedTie.lean closed this for the three-block representative. This
file closes it for the net efficientnetForwardB_full actually is: all sixteen MBConv
blocks, the T6 row of planning/archive/proofs_tier_to_paper_nets.md §3.3(c) — and closes it one
step further than the representative's, against the concrete efficientnetForwardB_full_has_vjp
and, through efficientnetForwardB_full_has_vjp_correct, against the Jacobian of the committed
nested-application forward itself.
Nothing here is new mathematics. The two endpoint stage ties (stemBBack_eq_vjp_backward,
headFwdBBack_eq_vjp_backward) are the representative's, reused verbatim at the paper widths
(head 320→1280 at 7×7); the sixteen blocks stay opaque in the tie, entering as HasVJP
witnesses whose .backward is what the reverse chain's block slots are pinned to, so the
composition is checked between variables. As on B0's representative and unlike MobileNetV2's,
there is no smooth point: swish and the SE sigmoid are differentiable everywhere.
The three pieces #
efficientnetB_full_has_vjp— the generic eighteen-stage apexhead ∘ b16 ∘ … ∘ b1 ∘ stem, seventeenvjp_comps and nothing else, andopaqueA0 … A16, one prefixdefper running activation (the MobileNetV2 paper file's answer to the quadratic writing of nested applications; plaindefs so the closingrflsees through them).efficientnetInputGradB_full_eq_efficientnetB_full_vjp— the tie with the stem and head concrete and the sixteen blocks opaque:unfold, tworws,rfl.efficientnetInputGradB_full_eq_efficientnetForwardB_full_vjp— the tie instantiated at the sixteen concrete blocks (mbNoExpW,mbStridedW,mbResidW,mbExpWatB0Weights's widths) and carried toefficientnetForwardB_full_has_vjpbyHasVJP.backward_unique: two witnesses for one map have one backward, so the tactic-built whole-net witness never has to be unfolded. ⭐ That is what the representative's file could not do — it stopped at a▸-transported_committedwitness that the kernel could not reduce through — and the difference is not depth butbackward_unique, which was proved for ConvNeXt-T's tie.efficientnetInputGradB_full_correctthen reads the result throughefficientnetForwardB_full_has_vjp_correct, whose proof IS the shape checkefficientnetForwardB_full_eq_chain: the hand-written chain is thepdiv-contracted Jacobian ofefficientnetForwardB_fullat every input, every cotangent and every pixel.
⭐ General N. bnBatchLA_has_vjp exists at every batch size, so the tie does; this is
the certified chain's property, not the float chain's (EfficientNetBackFloatBudget.lean's
number is at N = 1 for a reason that does not apply here).
⛔ No backward number at sixteen blocks. b0_full_back_chain's certified window at the
shipped leaves is 9.112·10²⁶⁴⁸; the float file this imports says why it is not written down.
Whole-network paper EfficientNet-B0 VJP. The VJP of the eighteen-stage chain
head ∘ b16 ∘ … ∘ b1 ∘ stem — seventeen vjp_comps, dimension-generic and parametric in
every component, HasVJP everywhere (no smooth point: every activation on this path is
differentiable on all of ℝ).
Equations
- One or more equations did not get rendered due to their size.
Instances For
⭐⭐ THE TIE — efficientnetInputGradB_full IS the certified whole-net paper-B0 gradient.
The committed backward chain, with its stem/head BatchNorm and swish slots filled by the
certified per-op backwards and its sixteen MBConv blocks left opaque, equals the backward
of efficientnetB_full_has_vjp at those eighteen stages. unfold, two rws, rfl.
⭐⭐ The chain, at the sixteen concrete MBConv blocks, IS efficientnetForwardB_full_has_vjp's
backward. The tie above instantiated at mbNoExpW/mbStridedW/mbResidW/mbExpW at
B0Weights's widths, then HasVJP.backward_unique between the generic apex and the
tactic-built whole-net witness — both are VJPs of the same eighteen-stage composition, so
they have the same backward, and neither is unfolded.
⭐⭐ The hand-written sixteen-block chain IS the Jacobian-transpose of the committed
efficientnetForwardB_full — at every input, every loss cotangent and every input pixel.
The tie above read through efficientnetForwardB_full_has_vjp_correct, whose proof is the
shape check efficientnetForwardB_full_eq_chain: the nested-application forward the render
denotes and the ∘-chain the VJP was assembled on are one function.