| --- |
| license: mit |
| library_name: pytorch |
| tags: |
| - spherical-cnn |
| - so3-equivariant |
| - sola |
| - spherical-harmonics |
| - icosphere |
| - image-classification |
| --- |
| |
| # Spherical-equivariance classifiers (spectral conv vs SoLA) |
|
|
| Tiny spherical-MNIST classifiers from the |
| [**Spherical Equivariance Benchmark**](https://huggingface.co/datasets/evalstate/spherical-equivariance-bench), |
| built to compare **classical zonal spectral spherical convolution** (Cohen et al., |
| [ICML 2018, arXiv:1711.06721](https://arxiv.org/abs/1711.06721)) with **SoLA** |
| local SO(3)-equivariant attention ([Sekikawa et al., ICML 2026 #1440, |
| OpenReview S1StjDehJS](https://openreview.net/forum?id=S1StjDehJS)). |
|
|
| These are intentionally tiny (≤2k parameters) and trained at small scale to fit a |
| local-compute budget; they are **not** paper-scale accuracy models. Their job is to |
| demonstrate the equivariance contrast on a real spherical image task. |
|
|
| ## Architectures (rank-2 icosphere, 162 vertices; dim=16; lmax=6; 9 classes) |
| - `spectral.pt` — two zonal `SpectralConvLayer`s (exact complex SHT via least-squares |
| pseudo-inverse + per-degree scalar filter) → mean-pool → linear head. **2057 params**. |
| - `sola.pt` — two `SoLALayer`s (`score(i,j)=<q_i,k_j>·(b+w·u_i·u_j)` over mesh 2-ring |
| neighborhoods) → mean-pool → linear head. **973 params**. |
| - `mlp.pt` — per-vertex MLP baseline (non-equivariant). **1001 params**. |
| - `mlp_aug.pt` — same MLP, trained with random SO(3) augmentation (empirically-learned |
| equivariance). **1001 params**. |
|
|
| Checkpoints store **learnable parameters only** (the complex SHT basis buffers and the |
| icosphere geometry are deterministic and rebuilt by `make_model(...)` in `train.py`). |
| Load with `strict=False`. |
|
|
| ## Results (25-40 epochs, CPU) |
| | Model | canonical acc | rotated acc (mean of 3) | params | latency (ms, batch-1 CPU) | |
| |---|---|---|---|---| |
| | spectral conv | 45.2% | 40.7% | 2057 | 2.31 | |
| | SoLA | 17.0% | 17.7% | 973 | 2.35 | |
| | MLP (no aug) | 21.8% | 22.1% | 1001 | 0.31 | |
| | MLP (+ rot aug) | 24.9% | 25.1% | 1001 | 1.84 | |
|
|
| All models underfit at this scale; the point is that the **equivariant** models retain |
| rotated ≈ canonical accuracy by construction (e.g. spectral 40.7 vs 45.2), even when |
| underfit. Paper-scale rotation robustness (SoLA 71.8 vs a position-embedding baseline |
| 13.5 under SO(3) test rotation) is reproduced in the |
| [SoLA reproduction logbook](https://huggingface.co/spaces/dmitry-rov/repro-sola-spherical-so3-equivariant-local-attention). |
|
|
| ## Checkpoint + code locations (canonical, in the research bucket) |
| - checkpoints: `hf://buckets/evalstate/research-agent/26-08-21-classical-vs-modern-spherical-6ab9/scratch/research/data/checkpoints/` |
| ([HTTPS](https://huggingface.co/buckets/evalstate/research-agent/tree/26-08-21-classical-vs-modern-spherical-6ab9/scratch/research/data/checkpoints)) |
| - model/training code: `train.py` under |
| `.../scratch/research/code/` |
| - full comparative report: [`output/report.md`](https://huggingface.co/buckets/evalstate/research-agent/tree/26-08-21-classical-vs-modern-spherical-6ab9/output/report.md) |
|
|