Normal Spectral Linear Layer
Implementation & benchmark of arXiv:2608.19513 — The Normal Procrustes Problem: A Riemannian Optimization Approach
Source paper: The Normal Procrustes Problem: A Riemannian Optimization Approach arXiv:2608.19513 ⓘ · analyzed Sep 1, 2026
AI-generated research hypothesis, automatically tested. Not peer-reviewed.
Idea description
Replace an unconstrained dense transition or recurrent matrix with a normal matrix $A=U\operatorname{diag}(\lambda)U^*$, where $U$ is unitary and $\lambda$ contains learnable eigenvalues. The layer can be initialized by fitting a normal matrix to input-output pairs through the paper's objective, then trained with Riemannian updates that keep $U$ unitary and preserve the normal-operator structure.
Formulas
Mathematical statement
The paper defines the Normal Procrustes Problem as minimizing $\|AX-Y\|_F^2$ over the normal-matrix set $\mathcal{N}=\{A\in\mathsf{M}_m(\mathbb{C}):A^*A=AA^*\}$, where $X,Y\in\mathbb{C}^{m\times n}$ are data matrices, $A^*$ is conjugate transpose, and $\|\cdot\|_F$ is the Frobenius norm. A complex matrix is normal when it admits the spectral factorization $A=UDU^*$ with $U^*U=I$ and diagonal $D=\operatorname{diag}(\lambda_1,\ldots,\lambda_m)$. This factorization gives orthonormal eigenvectors and $\|A\|_2=\max_i|\lambda_i|$, so spectral-radius control directly bounds the operator norm. For a neural layer, use $A=UDU^*$ and minimize $f(U,\lambda)=\|UDU^*X-Y\|_F^2$. The unitary constraint is maintained by a tangent update $U_{t+1}=U_t\exp(-\eta\Omega_t)$, where $\Omega_t^*=-\Omega_t$ is skew-Hermitian. Given Euclidean gradient $G_t=\partial f/\partial U_t$, use $\Omega_t=\operatorname{skew}(U_t^*G_t)=(U_t^*G_t-G_t^*U_t)/2$.
Implementation notes
Integrate this at the weight matrix of a linear transition in a state-space model, recurrent network, or distillation head. Use complex tensors for the first MVP; represent the trainable weight as a unitary matrix $U$ and complex eigenvalue vector $\lambda$, and do not materialize $A$ unless required. For an input state $h$, compute $z=U^*h$, multiply elementwise by $\lambda$, and return $Uh$ after replacing the latter with $U(\lambda\odot z)$. Parameterize each eigenvalue as $\lambda_i=\rho\tanh(r_i)e^{\mathrm{i}\theta_i}$, with $\rho\leq 1$ for a contractive transition. Initialize $U$ as a random unitary matrix from QR and initialize eigenvalues with small magnitudes. For Procrustes initialization, collect minibatch matrices $X=[h_1,\ldots,h_n]$ and target matrices $Y=[y_1,\ldots,y_n]$, then optimize $f=\|U\operatorname{diag}(\lambda)U^*X-Y\|_F^2$ for 100--500 steps. In each manifold step, obtain the autodiff Euclidean gradient $G_U$, form $\Omega=(U^*G_U-G_U^*U)/2$, and update $U\leftarrow U\exp(-\eta_U\Omega)$; this preserves $U^*U=I$ up to floating-point error. Update $\lambda$ and all other network parameters with AdamW. Re-orthogonalize $U$ with QR every 50 steps if numerical drift appears. The first experiment should compare this layer with an unconstrained dense transition and an orthogonal-only transition on a small linear-system-identification task and a copy-task RNN, matching parameter count and FLOPs. Track loss at equal optimization steps, hidden-state norm over long horizons, gradient-explosion frequency, and validation error. Success means lower initialization error, bounded long-horizon dynamics, or better validation loss at comparable throughput.
Verification
This idea has not been verified yet.
Verification happens in two stages: Stage 1 — a mechanism check on a toy system confirms the claimed mathematical phenomenon reproduces; Stage 2 — a benchmark implements the idea on a real (small) neural network task and compares it against a tuned baseline over 8 paired seeds with a permutation test.
Artifacts
Artifacts unavailable.