Eduspheria Wiki
Advanced11 min read

Superposition and sparse autoencoders

Networks store more features than they have dimensions — the geometry that makes neurons polysemantic, and how SAEs split them apart.

The last lesson ended on the feature problem: units respond to unrelated things. The explanation is one of the most important ideas in modern interpretability: superposition — a network can represent more features than it has dimensions by storing them as not-quite-orthogonal directions and paying in a little noise.

Start here

Two dimensions can hold two features perfectly — just point them at right angles. A third feature has nowhere to go... unless it's rarely active. If features are sparse, the network can pack many of them into the same space at odd angles: at any moment only a few are "on," so interference between the others rarely bites. Neurons become mixtures on purpose.

The geometry

Feel the compression:

2 features in 2 dimensions

f1f2activation space (2-D)

mean interference between feature pairs

0.000

Two features fit in two dimensions perfectly — orthogonal, zero interference.

Geometry is exact (the angles and dot products are computed, not drawn); the story it tells is Toy Models of Superposition — networks represent more features than they have dimensions by paying in noise, and sparsity is the budget that pays for it.

The toy model behind this (Anthropic's "Toy Models of Superposition"): a network trained to reconstruct mm features into n<mn < m dimensions, under a sparsity prior, converges to the geometry you just watched — first the densest orthogonal set, then increasingly tight angular packing with interference as the price. Sparsity is the budget: rare features can share space because they rarely collide; frequent features earn their own private dimensions (which is why the most important features — induction heads' "current token" copies, etc. — are often clean even while rarer ones superpose).

The formal picture, in one line: activations are x=ifiwi+noisex = \sum_i f_i \, w_i + \text{noise} with more features fif_i than basis vectors wiw_i — the reconstruction is lossy only when multiple active features are near-parallel, which sparsity makes rare.

Sparse autoencoders: un-mixing the signal

If superposition is the disease, sparsity is also the cure. A sparse autoencoder (SAE) takes the model's activations and learns to rewrite them as a wider representation with one dimension per recovered feature:

f=ReLU(Wencx+benc),x^=Wdecf+bdec,L=xx^22+λf1f = \mathrm{ReLU}(W_{\text{enc}} x + b_{\text{enc}}), \qquad \hat{x} = W_{\text{dec}} f + b_{\text{dec}}, \qquad \mathcal{L} = \lVert x - \hat{x} \rVert_2^2 + \lambda \lVert f \rVert_1

Read the loss: reconstruct the activations faithfully (L2L_2 term) while keeping the feature vector ff mostly zeros (L1L_1 term). The L1L_1 penalty forces sparsity, which forces each learned dimension to be a single feature — dictionary learning. Turn the toggle on in the artifact above: the SAE's wide space has one clean, nameable direction per feature, and interference drops to zero by construction of the objective, not by magic.

What this bought in real models: named, steerable features at scale — deception-related features, sycophancy features, code-vulnerability features, "San Francisco" features with their neighborhoods — in production LLMs, not toys.

Careful

Open debates to carry forward: SAEs recover a clean basis, not necessarily the features the model computes with (fidelity-vs- usefulness); reconstruction quality trades directly against sparsity; and feature dictionaries are huge — coverage is partial. SAEs are a microscope with known aberrations, not ground truth.

Next: once features are clean and nameable, you can do more than look — you can push.

This lesson has exercises attached — predicting interference levels and diagnosing an SAE trained with λ too low or too high — once the exercises layer ships.