Normal-Space Quotient Encoder
Implementation & benchmark of arXiv:2607.08939 — Diffeological Riemannian orbifolds
Source paper: Diffeological Riemannian orbifolds arXiv:2607.08939 ⓘ · analyzed Aug 30, 2026
AI-generated research hypothesis, automatically tested. Not peer-reviewed.
Idea description
Add a quotient-aware representation layer that separates changes caused by motion along a symmetry orbit from changes that are genuinely informative. The layer estimates orbit tangent directions from known group actions or a learned local transformation group, projects features onto the metric-orthogonal normal space, and trains the representation to be invariant along orbit directions. Unlike ordinary global pooling over augmentations, this construction is local and can adapt when orbit dimension changes at singular or highly symmetric inputs.
Formulas
Mathematical statement
The paper associates a Lie groupoid \(\mathcal{G}\rightrightarrows M\) with its Lie algebroid \(A=\ker(Ts)|_M\), where \(s\) is the source map, and anchor \(\rho=Tt|_M:A\to TM\), where \(t\) is the target map. The orbit tangent space at \(x\in M\) is \(T_x\mathcal{F}=\operatorname{im}(\rho_x)\). The extracted construction makes the bundle of Lie groups \(A\) act on an ambient tangent vector \(v\in T_xM\) by \(\xi\cdot v=\rho_x(\xi)+v\), for \(\xi\in A_x\). A Riemannian metric \(g_x\) splits the tangent space into orbit and normal components, \(T_xM=T_x\mathcal{F}\oplus T_x\mathcal{F}^{\perp}\). The neural adaptation treats the encoder Jacobian as an ambient tangent map and penalizes its orbit-tangent component. Here \(R_x\in\mathbb{R}^{n\times r}\) contains orbit tangent vectors, \(G_x\in\mathbb{R}^{n\times n}\) is a positive-definite metric matrix, \(J_f(x)\) is the Jacobian of the encoder \(f\), and \(P_{\mathrm{orb}}(x)\) is the metric-orthogonal projector onto the span of \(R_x\).
Implementation notes
Integrate this at the encoder output of an image, point-cloud, graph, or physical-state model. Let \(h=f_\theta(x)\in\mathbb{R}^d\) be the representation and let \(x\in\mathbb{R}^n\) be the input. Supply a matrix \(R_x\in\mathbb{R}^{n\times r}\) whose columns are orbit tangent vectors. For a known transformation family \(a\mapsto T_a x\), compute \(R_x[:,j]=\partial_{a_j}T_a x|_{a=0}\); for a finite symmetry group, use finite differences \((T_gx-x)/\delta\) for selected nonidentity transformations. Set \(G_x=I_n\) initially, or use a learned positive diagonal metric \(G_x=\operatorname{diag}(\operatorname{softplus}(q_\phi(x))+\varepsilon)\). Compute \(P_{\mathrm{orb}}=R_x(R_x^{\mathsf T}G_xR_x+\varepsilon I_r)^{-1}R_x^{\mathsf T}G_x\). Do not materialize the full encoder Jacobian: for each orbit vector \(r_j\), use automatic differentiation to obtain the Jacobian-vector product \(J_f(x)r_j\), then penalize \(\sum_j\|J_f(x)r_j\|_2^2\), which is equivalent to suppressing encoder sensitivity along the orbit. Add \(\lambda\mathcal{L}_{\mathrm{orbit}}\) to the task loss, and optionally add finite invariance loss \(\|f(T_gx)-f(x)\|_2^2\). Estimate orbit rank with an SVD of \(R_x\), dropping singular values below a threshold rather than padding with arbitrary directions. The paper provides the orbit/normal decomposition and quotient-compatibility principle; the damping \(\varepsilon\), metric parameterization, and loss weight \(\lambda\) are engineering choices. First test on rotated-MNIST or transformed CIFAR-10 using a small CNN. Compare a baseline, standard augmentation, and this regularizer at equal FLOPs. Measure clean accuracy, accuracy under unseen transformations, representation drift, and projector conditioning. Success means improved transformation robustness without clean-accuracy loss, lower drift, and stable training near rank-deficient orbit matrices.
Verification
Stage 1 · Toy mechanism gate: Passed ✓
Stage 2 · Mechanism transferred to benchmark: Confirmed ✓
Stage 2 · Practical benchmark result: No measurable effect
Methodology: 8 paired seeds, permutation test (p<0.05) against a learning-rate-tuned baseline. How verification works
Stage 1 — Mechanism check agent confidence 8/10
The quotient-aware orbit regularizer was implemented and numerically verified. Projector idempotence and orbit-preservation errors were about 1e-10, the singular-origin projector was zero, and three seeds showed substantially lower representation drift with no clean-accuracy loss. This is a promising toy-level result, not yet a broad benchmark win.
- Agent confidence
- 8/10
- Baseline
- Mean clean accuracy 0.9818, rotated accuracy 0.9816, representation drift 0.589.
- How to run
- /home/maxwelhelp/main/bin/python3 experiment.py && /home/maxwelhelp/main/bin/python3 multiseed.py
- Idea
- Mean clean accuracy 0.9853, rotated accuracy 0.9860, representation drift 0.107; drift reduced about 5.5x.
- Math
- Projector idempotence error 5.2e-11; orbit projection error 7.2e-11; singular-origin projector norm 0.
Limitations: Only a small synthetic 2D radial classification task with known SO(2) actions was tested. Rotated-MNIST/CIFAR, standard augmentation, learned transformations, full FLOP matching, and broad hyperparameter sweeps were not tested.
Stage 2 — Benchmark vs. tuned baseline (arXiv:2607.08939)
Ahead of the baseline (−1.0%) but not statistically significant (p=0.4225, wins 5 / 8 paired seeds).
- Benchmark
- Vision (image classification)
- Model
- cnn_small
- Paired seeds
- 8
- Baseline mean
- 0.7881
- Idea mean
- 0
- Effect (Δ)
- -0.0081 (−1.0%; negative = idea better)
- Wins
- 5 / 8 paired seeds
- p-value
- 0.4225 (permutation test, 20 000 shuffles)
- Smallest detectable effect
- ±2.2%
- Mechanism
- Confirmed ✓
- Practical effect
- No effect
- Baseline tuning
- swept over 3 configs
The shared GPU convolution engine failed, so the protocol ran on CPU. The run used 400 training examples, 200 test examples, and 8 epochs; only the vision track was tested. The implementation used finite-difference spatial rotations, not learned transformation groups, adaptive rank selection, or non-identity metrics.
How to run: python3 bench_experiment.py
Verdict computed by deterministic test code from paired-seed statistics — not by the language model.
Stage 2 — Benchmark latest Failed ✗
Agent confidence: 9/10
Built the Normal-Space Quotient Encoder as a local SO(2) finite-difference orbit regularizer for the bench vision CNN. It reduced test error slightly, from 0.788125 to 0.780000, and reduced trained-model representation drift by 37.6%, but the paired permutation test was not significant (delta=-0.008125, p=0.42255), so this is not a benchmark win.
- Baseline
- Test error mean 0.788125, std 0.047033; best lr 0.003.
- Idea
- Test error mean 0.780000, std 0.047893; best lr 0.003, lambda 0.1.
- Math
- Projector idempotence error 1.41e-12; orbit preservation error 1.00e-12; singular projector norm 0.
- Mechanism signature
- Baseline drift 1.663749; idea drift 1.037937; ratio 0.623854; confirmed=true.
- Paired delta
- -0.008125; 5/8 idea wins; permutation p=0.42255; verdict no significant win.
Benchmark result
Ahead of the baseline (−1.0%) but not statistically significant (p=0.4225, wins 5 / 8 paired seeds).
- Benchmark
- Vision (image classification)
- Model
- cnn_small
- Paired seeds
- 8
- Baseline mean
- 0.7881
- Idea mean
- 0
- Effect (Δ)
- -0.0081 (−1.0%; negative = idea better)
- Wins
- 5 / 8 paired seeds
- p-value
- 0.4225 (permutation test, 20 000 shuffles)
- Smallest detectable effect
- ±2.2%
- Mechanism
- Confirmed ✓
- Practical effect
- No effect
- Baseline tuning
- swept over 3 configs
The shared GPU convolution engine failed, so the protocol ran on CPU. The run used 400 training examples, 200 test examples, and 8 epochs; only the vision track was tested. The implementation used finite-difference spatial rotations, not learned transformation groups, adaptive rank selection, or non-identity metrics.
How to run: python3 bench_experiment.py
Artifacts
- bench_experiment.py 7.4 KB View Raw
- bench_report.json 3.0 KB View Raw
- experiment.py 4.2 KB View Raw
- multiseed.py 0.8 KB View Raw
- multiseed_results.json 1.1 KB View Raw
- report.md 1.3 KB View
- report_bench_2026-09-04T204007.md 4.0 KB View
- results.json 0.6 KB View Raw