ψ Vikshep

The substrate

The math, end to end.

Every guarantee Vikshep makes is derived from one of six pieces of mathematics. Here they are.

§ 1 — The 1-D scattering transform

The cascade and its three guarantees.

The wavelet scattering transform is built from one mother wavelet — the analytic Morlet, a complex sinusoid windowed by a Gaussian and corrected to have zero mean. The correction term κ removes the DC component so that the filter is truly band-pass and the cascade remains energy-preserving.

1.1 — Morlet wavelet

ψ(t)=(eiξtκ)et2/(2σ2),κ=eξ2σ2/2\psi(t) = \big(e^{i\xi t} - \kappa\big)\,e^{-t^2/(2\sigma^2)}, \qquad \kappa = e^{-\xi^2\sigma^2/2}

ξ is the carrier frequency; σ controls the Gaussian envelope. Analytic: no negative-frequency content, so the modulus is a well-defined instantaneous amplitude.

The family is generated by dilation, giving J · Q band-pass filters logarithmically spaced in frequency plus a low-pass averaging kernel φ_J at scale 2^J. The scattering coefficients of orders 0, 1, and 2 are produced by a cascade of convolutions and moduli:

1.2 — Scattering coefficients S₀, S₁, S₂

S0x=xϕJS1[λ1]x=xψλ1ϕJS2[λ1,λ2]x=xψλ1ψλ2ϕJS_0\,x = x \star \phi_J \qquad S_1[\lambda_1]\,x = |x \star \psi_{\lambda_1}| \star \phi_J \qquad S_2[\lambda_1,\lambda_2]\,x = \big|\,|x \star \psi_{\lambda_1}| \star \psi_{\lambda_2}\big| \star \phi_J

The modulus |·| is the key non-linearity. It is 1-Lipschitz and breaks translation invariance of the intermediate representation in a controlled way — allowing finer-scale structure to propagate to S₂.

Energy decays geometrically with order, so we truncate at m = 2 and capture >99% of the signal energy. Three structural properties follow immediately from the architecture. Translation invariance holds at the scale of φ_J. Non-expansiveness follows because the cascade is built from a frame and the 1-Lipschitz modulus: ‖Sx − Sy‖ ≤ ‖x − y‖. The most important property is deformation stability — the Mallat bound:

1.3 — Mallat deformation stability bound

S(Lτx)Sx    C ⁣(τ+τ2J+Hτ)x\|S(\mathcal{L}_\tau x) - Sx\| \;\le\; C\!\left(\|\nabla\tau\|_\infty + \tfrac{\|\tau\|_\infty}{2^J} + \|H\tau\|_\infty\right)\|x\|

𝓛_τ is a diffeomorphic deformation of displacement field τ. ∇τ controls local stretching; ‖τ‖/2^J bounds large translations relative to the averaging scale; Hτ (Hessian) bounds bending. All three must be small — which they are for detector smearing and pile-up.

This is the property a physicist needs. Detector noise and small geometric warps produce only bounded changes in the representation. A learned feature extractor has no such guarantee — it may amplify or suppress any particular deformation pattern depending on what it saw during training.

Interactive — the cascade in action

xx
xψλ1|x \star \psi_{\lambda_1}|
S1S_1
j0j1j2j3
ψλ2|\cdot \star \psi_{\lambda_2}|
S2S_2

§ 2 — From 1-D to n-D: orientation is not optional

Why a tensor product fails, and what to use instead.

The naive n-D extension is a separable wavelet ψ(u) = ∏_k ψ(u_k). It has no orientation selectivity. In a calorimeter image, orientation is the signal — a 30° energy streak must be distinguished from a 60° one. Separable wavelets treat both identically because they decompose along coordinate axes only.

The correct generalisation is the oriented Morlet wavelet bank. A mother wavelet is dilated and rotated to produce filters at J · Q · L orientations:

2.1 — Oriented Morlet family

ψj,θ(u)=22jψ ⁣(2jRθu),θ{0,π/L,,(L1)π/L}\psi_{j,\theta}(u) = 2^{-2j}\,\psi\!\big(2^{-j} R_{-\theta}\,u\big), \qquad \theta \in \{0, \pi/L, \dots, (L-1)\pi/L\}

R_{-θ} rotates u by angle −θ before passing it to ψ. The bank now has J·Q·L filters. The cascade and all three structural properties of §1 carry over verbatim with u replacing t.

2.2 — Parseval frame condition

ϕ^J(ω)2+j,θψ^j,θ(ω)2=1|\hat\phi_J(\omega)|^2 + \sum_{j,\theta} |\hat\psi_{j,\theta}(\omega)|^2 = 1

The filters tile frequency space completely. No energy leaks out of the frame. This is what makes the scattering representation energy-preserving — a property that learned convolutional networks do not have in general.

Calorimeter geometry adds one subtlety. The azimuthal angle φ is genuinely periodic; the pseudorapidity η is not. FFT-based convolution is circular by default. The engine carries a per-axis pad policy: Circular for φ, ZeroPad (next power-of-two, halo discarded) for η. Using circular convolution on η contaminates the edge bins — a silent error that would not appear in unit tests checking only the bulk of the distribution.

Interactive — oriented Morlet filter bank

J4
L8

4×8 filter bank · 32 wavelets

The bank that the engine uses. Fixed analytic Morlets at log-spaced scales and uniformly-spaced orientations. Filters never change — that's the point.

§ 3 — Solid-harmonic wavelets and SO(3) covariance

Rotation invariance for 3-D fields, by construction.

For volumetric data — 3-D energy deposits, cosmological density fields, voxelised point clouds — oriented Morlet wavelets are insufficient because they are defined for 2-D images under SE(2). Three-dimensional rotation has a richer structure: SO(3). The natural basis for functions on the sphere is the spherical harmonics Y_ℓ^m, and solid-harmonic wavelets are built directly from them:

3.1 — Solid-harmonic wavelet family

ψm(u)=uYm(u^)eu2/(2σ2),ψj,m(u)=23jψm ⁣(2ju)\psi_\ell^m(u) = |u|^\ell\, Y_\ell^m(\hat u)\, e^{-|u|^2/(2\sigma^2)}, \qquad \psi_{j,\ell}^m(u) = 2^{-3j}\,\psi_\ell^m\!\big(2^{-j} u\big)

ℓ is the angular frequency (order of spherical harmonic); m ∈ [−ℓ, ℓ] is the orientation. The |u|^ℓ factor makes the wavelet exactly harmonic. Dilation by 2^j produces a log-spaced scale family with J · (L_max + 1)² filters.

Under rotation g ∈ SO(3), spherical harmonics of fixed ℓ transform among themselves by the unitary Wigner-D matrix. This is the algebraic fact that makes solid-harmonic scattering covariant:

3.2 — Wigner-D rotation law

Ym ⁣(g1u^)=m=Dmm(g)Ym(u^)Y_\ell^m\!\big(g^{-1}\hat u\big) = \sum_{m'=-\ell}^{\ell} D^\ell_{m'm}(g)\, Y_\ell^{m'}(\hat u)

D^ℓ is the (2ℓ+1)×(2ℓ+1) Wigner-D representation matrix of g. The key property: D^ℓ is unitary, so the Frobenius norm — equivalently, the sum of |m|² — is rotation-invariant.

3.3 — SO(3)-invariant propagator

U[j,]x(u)= ⁣(m=xψj,m2(u))1/2U[j,\ell]\,x(u) = \!\left( \sum_{m=-\ell}^{\ell} \big| x \star \psi_{j,\ell}^m \big|^2(u) \right)^{1/2}

Because D^ℓ is unitary, the sum-of-squares over m is invariant to rotation of x. Spatial averaging φ_J then gives full SO(3)-invariance. Second-order coefficients capture bispectrum-like structure invisible to the power spectrum.

First-order invariants S[j, ℓ] encode power-spectrum-like information. Second-order invariants S[j₁, ℓ₁, j₂, ℓ₂] encode bispectrum-like, non-Gaussian structure — the regime where scattering measurably outperforms the power spectrum in cosmology (Cheng & Ménard, arXiv:2112.01288) and where boosted-jet substructure carries its discriminating power.

§ 4 — Lie group convolution

Invariance to a group = convolve over the group, then average over the orbit.

The unifying view of every invariance Vikshep provides: lift the signal to the group, convolve along the group, take a modulus, and average over the group orbit. The three cases — translation, roto-translation, and 3-D rotation — are instances of the same abstract construction over different groups G:

  • G = ℝⁿ — translation only. The 1-D and 2-D separable cases.
  • G = SE(2) = ℝ² ⋊ SO(2) — roto-translation. The oriented 2-D case.
  • G = SO(3) — full 3-D rotation. The solid-harmonic case.

For SE(2): the first oriented layer already produces a field on the group. The second layer convolves jointly over space and orientation with a wavelet that has a θ-component, producing a representation on SE(2) × SE(2):

4.1 — First-layer output lives on SE(2)

U1[j1,θ1](u)    functions on SE(2)U_1[j_1,\theta_1](u) \;\in\; \text{functions on } SE(2)

The signal has been lifted from ℝ² to the group. This lifting is what allows the second layer to capture interactions between orientations at different scales — the cross-scale, cross-orientation structure that separable wavelets miss.

4.2 — SE(2) second-layer convolution

U2[j1,θ1,j2,θ2,k](u)= ⁣U1[j1,θ1]  SE(2)  Ψj2,θ2,k(u)U_2[\,j_1,\theta_1,\,j_2,\theta_2,k\,](u) = \!\left|\, U_1[j_1,\theta_1] \;\ast_{SE(2)}\; \Psi_{j_2,\theta_2,k}\,\right|(u)

∗_{SE(2)} is convolution over the group (space × orientation jointly). Final low-pass averaging over space and orientation gives coefficients invariant to global roto-translation and stable to deformation.

A design decision: Standard jet-image preprocessing pre-centres the jet, rotates its principal axis to vertical, and flips it to canonical parity. If you also run roto-translation scattering, you are being invariant to a symmetry you already removed — wasted compute, and the redundant averaging can wash out discriminating information. Pick one: either skip the pre-rotation and let SE(2) scattering own the invariance (preferred — exact rather than heuristic), or keep the pre-rotation and use G = ℝ². Do not do both.

§ 5 — Steerable wavelets and GPU register economy

Why the SO(3) engine fits in a register file.

A filter is steerable if its rotation to any angle is a fixed linear combination of a small basis of K basis filters — independent of L, the total number of discrete orientations in the bank:

5.1 — Steerability definition

ψθ(u)=k=1Kbk(θ)φk(u),KL\psi_\theta(u) = \sum_{k=1}^{K} b_k(\theta)\,\varphi_k(u), \qquad K \ll L

b_k(θ) are steering coefficients that depend only on the target angle; φ_k are fixed basis filters. For SO(3), the steering coefficients are Wigner-D matrix entries and the basis filters are the solid-harmonic wavelets of §3.

5.2 — Convolution via steerability

(xψθ)(u)=k=1Kbk(θ)(xφk)(u)(x \star \psi_\theta)(u) = \sum_{k=1}^{K} b_k(\theta)\,(x \star \varphi_k)(u)

By linearity of convolution: compute K basis convolutions once; synthesize any orientation by a K-wide linear combination. No per-orientation FFT. The orientation axis becomes a K-wide GEMM fused into the modulus kernel.

This is a correctness-of-performance requirement, not an optimization. Brute force computes one convolution per orientation: O(L) separate FFT passes. At Dim=3, the per-thread working set blows the register file and spills to local memory, collapsing throughput by 4–8×. Steering turns the orientation axis into a K-wide GEMM fused into the modulus kernel — kept in registers within the tile policy (64×64 on Ampere, 128×128 on Hopper). It is the difference between a kernel that fits and a kernel that spills. The GPU performance characteristics of the two approaches are not competitive at Dim=3, L_max ≥ 2.

Interactive — deformation stability

x(t) — clean signal

x(t − τ(t)) — deformed ‖τ‖=0.15

‖τ‖0.15

Scattering coefficients Sx (dark) vs S(L_τ x) (warm) — overlaid

‖S(L_τ x) − Sx‖ / ‖x‖62.88%

Vikshep's features change at most linearly with how badly your detector smeared the signal. Bad pile-up doesn't blow up your representation.

§ 6 — Eliminating mass sculpting

Ratios + a closed-form penalty.

Let ŷ be the tagger score and M the resonance mass. A selection ŷ > c keeps background events with mass-dependent efficiency ε(m):

6.1 — Mass-dependent efficiency

ϵ(m)=Pr(y^>cM=m,bkg)\epsilon(m) = \Pr(\hat y > c \mid M = m,\, \text{bkg})

If ŷ is mass-independent, ε(m) = ε is a constant and the post-cut spectrum is proportional to the pre-cut spectrum — no sculpting. If ŷ depends on M, ε(m) varies with mass and reshapes the background.

6.2 — Post-cut background density

fbkgcut(m)    ϵ(m)fbkg(m)f^{\text{cut}}_{\text{bkg}}(m) \;\propto\; \epsilon(m)\, f_{\text{bkg}}(m)

Sculpting = ε(m) non-constant. Any bump-hunt that assumes f^{cut}_{bkg} is smooth and ε-independent will attribute the sculpted feature to a signal peak. This is the failure mode.

Stage one — remove the mass scale. Drop S₀ and the lowest-j S₁ coefficients (they carry the energy/mass scale directly). Use the dimensionless ratio r₂ instead:

6.3 — The r₂ ratio

r2[λ1,λ2]=S2[λ1,λ2]S1[λ1]r_2[\lambda_1,\lambda_2] = \frac{S_2[\lambda_1,\lambda_2]}{S_1[\lambda_1]}

The scattering analogue of D₂ and τ₂₁. Scale-invariant by construction — it cannot carry an energy scale because both numerator and denominator scale identically with jet pT. Residual correlation through non-linear structure is handled by stage two.

Stage two — kill the residual with DisCo. For samples {X_i}, {Y_i} with weights w_i, the weighted distance covariance is:

6.4 — Weighted distance covariance

dCovw2(X,Y)=i,jwiwjAijBij(iwi)2\mathrm{dCov}^2_w(X,Y) = \frac{\sum_{i,j} w_i w_j\, A_{ij} B_{ij}}{(\sum_i w_i)^2}

A, B are weighted-double-centred distance matrices. dCov²_w(X,Y) = 0 if and only if X and Y are statistically independent. No distributional assumptions. No kernel choice. Valid for arbitrary non-linear dependence.

6.5 — Training objective with DisCo

L=wBCE(y^,y)+λdCorrw2(y^,mbkg)\mathcal{L} = \mathrm{wBCE}(\hat y, y) + \lambda\,\mathrm{dCorr}^2_w(\hat y, m \mid \text{bkg})

The penalty drives ŷ ⊥ M on background events. Once dCorr² = 0, ε(m) is constant and the spectrum is preserved exactly. λ controls the AUC–decorrelation tradeoff. The demo below shows this tradeoff live.

This is the closed-form guarantee. The penalty is not a heuristic post-processing step, not an adversarial training trick that might or might not converge, and not a planing procedure that requires re-optimisation of the cut. It is a single differentiable term in the loss function that provably drives the score distribution to be independent of mass on background — hence ε(m) constant — hence the background shape preserved by construction.

See it live on the home page

The Mass-Sculpting Killer interactive on the home page shows this tradeoff directly: toggle between the standard NN tagger and the Vikshep r₂ tagger, drag the DisCo penalty λ and the cut threshold c, and watch the background mass histogram respond.

Go to the interactive demo →

Interactive — r₂ mass invariance

1000150020002500m_jj [GeV]0.20.40.60.8backgroundsignal

r₂ = S₂/S₁. r₂ is dimensionless — it can't carry an energy scale. It's the scattering analogue of D2, generalized to a full basis.

Interactive — BSM anomaly embedding

τ = 2.5
τ2.50

5/ 320

bkg flagged

55/ 80

signal flagged

1.6%

FPR

No signal model. The SM cloud is built from background-only events; anything beyond a calibrated SW₁ distance from the cloud is anomalous by construction.

References

Canonical sources.

Mallat, S.Group Invariant Scattering. Communications on Pure and Applied Mathematics, 65(10), 2012.arXiv:1101.2286
Bruna, J. & Mallat, S.Invariant Scattering Convolution Networks. IEEE TPAMI 35(8), 2013.arXiv:1203.1513
Sifre, L. & Mallat, S.Rotation, Scaling and Deformation Invariant Scattering for Texture Discrimination. CVPR 2013.
Eickenberg, M. et al.Solid Harmonic Wavelet Scattering for Predictions of Molecule Properties. J. Chem. Phys. 148(24), 2018.arXiv:1805.00571
Kasieczka, G. & Shih, D.DisCo Fever: Robust Networks Through Distance Correlation. Physical Review Letters 125(12), 2020.arXiv:2001.05310
Cheng, S. & Ménard, B.How to Quantify Fields or Textures? A Guide to the Scattering Transform. arXiv preprint, 2021.arXiv:2112.01288

Cite Vikshep

@software{vikshep_2026,
  author  = {Singh, Samvardhan and Mishra, Yash},
  title   = {Vikshep: A deterministic, deformation-stable
             feature-extraction plane for scientific compute},
  year    = {2026},
  url     = {https://github.com/samvardhan03/Vikshep},
  license = {Apache-2.0}
}