Readout Scaling Shapes Sparse Feature Recovery
Organizations: University of Waterloo · Columbia University
Abstract
Readout scaling changes what a sparse autoencoder (SAE) learns, but the benefit of removing it depends on the data. We use readout-canonicalized decision-space (RC-DS) coordinates to remove singular-value gains while preserving retained decision information. At a fixed readout condition number, changing the generating distribution reverses which training coordinates recover known factors best. In our controlled coordinate-matching study, recovery is highest when training restores the space in which the factors were generated. When factors are generated before readout scaling, RC-DS increases mean sparse-factor recovery from 0.506 to 0.913 at condition number 100, compared with centered-logit training under the same budget. An exact wrapper reproduces RC-DS training to numerical precision, isolating training geometry rather than additional information. In neural policies, RC-DS improves mean logit reconstruction under the tested budgets. On three fixed language-model checkpoints, RC-DS has higher mean gain-free reconstruction in all 18 tested task-sparsity settings, while centered-logit SAEs reconstruct output logits better in 17. Small-label-head controls show that longer training reduces the reconstruction gap from 0.0198 to 0.0016. Together, these results show how readout scaling, the data distribution, and training shape sparse learning. RC-DS provides an information-preserving method for studying and controlling the readout's contribution. Separate label-detection and steering tests distinguish these reconstruction effects from task-specific feature usefulness.
Figures & tables
| Input or training control | Explanation tested |
|---|---|
| Centered logits, | Keep the readout’s scaling. |
| Hidden states, | Keep all hidden directions, including those invisible to the readout. |
| Compact logits, | Keep the gains but omit the map into output space. |
| Compact RC-DS, | Remove the gains and omit . |
| Coordinate standardization | Rescale each input coordinate by its standard deviation. |
| PCA / ZCA whitening | Rescale using both variances and correlations in the data. |
| Model | Gain-free EV vs. logits | Gain-free EV vs. hidden | Logit EV vs. logits | Logit EV vs. hidden |
|---|---|---|---|---|
| Qwen2.5 | ||||
| Qwen3 | ||||
| SmolLM2 |
Appendix figures & tables37 assets
Supplementary material from the paper’s appendix.
Appendix
| Study | Models and data | Budget and seeds | Question tested | Details |
|---|---|---|---|---|
| Gain and noise sweep | Synthetic, 16 factors in 8 dimensions, 4,096 samples | 60 epochs, 20 seeds (200–219) | How does unequal scaling affect recovery when factors are generated before scaling? | B , C |
| Approximate inverse loss | Separate synthetic samples, same dimensions and sample count as the sweep | 60 epochs, 20 different seeds (300–319) | How much of the recovery difference does changing only the loss remove? | B , C |
| Coordinate matching and attribution | Synthetic, 2,048 samples per run | 40 epochs, 12 seeds per study, separate seed sets for four controls | Separate generating coordinates, exact wrapping, alternative training, and noise effects. | B , C |
| Exact-wrapper check | Synthetic, condition numbers 3, 30, and 300 | Short optimizer trajectories, 3 seeds per condition (9 cases) | Do wrapped activations, gradients, parameters, and reconstructions match numerically? | A |
| Bargaining | OpenSpiel, 800 fitting and 400 evaluation episodes per policy | Policy: 3,000 episodes. SAE: 15 epochs. 3 development and 3 reused evaluation policy seeds | Compare logit reconstruction and decoder-family steering with direct and random controls. | B , D , H |
| Goofspiel | OpenSpiel, 7 cards, 400 fitting and 200 evaluation episodes per policy | Policy: 5,000 episodes. SAE: 125 epochs. 3 development and 3 evaluation policy seeds | Test reconstruction and decoder-family steering on a second game. | B , D , H |
| Setting | Bargaining | Goofspiel |
|---|---|---|
| Development policy seeds | 710–712 | 920–922 |
| Evaluation policy seeds | 810–812 | 1120–1122 |
| Policy-training episodes | 3,000 | 5,000 |
| Hidden layers | ||
| SAE fit/evaluation episodes | ||
| Dictionary size / Top- |
| Noise | Difference [95% CI] | |||
|---|---|---|---|---|
| None | 0.9134 | 0.7435 | 0.5063 | 0.4070 [0.3702, 0.4446] |
| Before gain | 0.9135 | 0.7464 | 0.5101 | 0.4034 [0.3627, 0.4445] |
| After gain | 0.9135 | 0.7342 | 0.4876 | 0.4259 [0.3958, 0.4556] |
| Policy | |||
|---|---|---|---|
| 810 | 0.9108 | 0.9107 | 0.8739 |
| 811 | 0.9207 | 0.9167 | 0.9009 |
| 812 | 0.9116 | 0.8774 | 0.8657 |
| Macro mean | 0.9144 | 0.9016 | 0.8802 |
| Coordinates | EV, 60 epochs | EV, 1,000 | Excess, 1,000 | Stable fits |
|---|---|---|---|---|
| Hidden states | 0.7735 | 0.8025 | 5/5 | |
| Centered logits | 0.6066 | 0.9639 | 0/5 | |
| RC-DS | 0.6264 | 0.9655 | 0/5 | |
| ZCA-whitened logits | 0.7041 | 0.9690 | 0/5 |
| Encoder / learning rate | Stable fits | Accurate fits | Both |
|---|---|---|---|
| Copy / constant | 2/12 | 12/12 | 2/12 |
| Copy / decay | 10/12 | 3/12 | 3/12 |
| Independent / constant | 9/12 | 12/12 | 9/12 |
| Independent / decay | 11/12 | 11/12 | 10/12 |
| Coordinates | Copy MSE | Independent MSE | Copy EV | Independent EV |
|---|---|---|---|---|
| Hidden states | 0.3774 | 0.3058 | 0.8002 | 0.8656 |
| Centered logits | 0.01069 | 0.006251 | 0.9894 | 0.9937 |
| RC-DS | 0.01425 | 0.006699 | 0.9865 | 0.9935 |
| Whitened logits | 0.01463 | 0.01246 | 0.9852 | 0.9873 |
| Model | Logits | RC-DS | Std. | ZCA | PCA | Hidden | |
|---|---|---|---|---|---|---|---|
| Qwen2.5-0.5B | 1 | 0.9203 | 0.9175 | 0.9178 | 0.8560 | 0.8425 | 0.7010 |
| Qwen2.5-0.5B | 2 | 0.9437 | 0.9398 | 0.9386 | 0.9175 | 0.9210 | 0.7491 |
| Qwen2.5-0.5B | 4 | 0.9920 | 0.9926 | 0.9917 | 0.9866 | 0.9839 | 0.8120 |
| Qwen3-0.6B-Base | 1 | 0.9228 | 0.9190 | 0.9161 | 0.8540 | 0.8397 | 0.7705 |
| Qwen3-0.6B-Base | 2 | 0.9409 | 0.9344 | 0.9323 | 0.9142 | 0.9157 | 0.7987 |
| Qwen3-0.6B-Base | 4 | 0.9918 | 0.9919 | 0.9916 | 0.9838 | 0.9819 | 0.8440 |
| Model | Logits | RC-DS | Std. | ZCA | PCA | Hidden | |
|---|---|---|---|---|---|---|---|
| Qwen2.5-0.5B | 1 | 0.9090 | 0.9126 | 0.9055 | 0.8537 | 0.8410 | 0.6951 |
| Qwen2.5-0.5B | 2 | 0.9372 | 0.9373 | 0.9313 | 0.9169 | 0.9201 | 0.7448 |
| Qwen2.5-0.5B | 4 | 0.9910 | 0.9923 | 0.9905 | 0.9865 | 0.9838 | 0.8084 |
| Qwen3-0.6B-Base | 1 | 0.9176 | 0.9182 | 0.9070 | 0.8539 | 0.8401 | 0.7691 |
| Qwen3-0.6B-Base | 2 | 0.9371 | 0.9335 | 0.9262 | 0.9144 | 0.9158 | 0.7985 |
| Qwen3-0.6B-Base | 4 | 0.9910 | 0.9916 | 0.9907 | 0.9837 | 0.9818 | 0.8446 |
| Model | Target | Hits | AUC | ||||
|---|---|---|---|---|---|---|---|
| Qwen2.5 | 0.90 | 5/5 | 5 | +80 | +0.0127 | +0.0135 | +0.0122 |
| Qwen2.5 | 0.95 | 5/5 | 5 | +0 | +0.0004 | +0.0014 | +0.0029 |
| Qwen2.5 | 0.98 | 5/5 | 5 | +0 | +0.0007 | +0.0017 | -0.0014 |
| Qwen2.5 | 0.99 | 5/5 | 5 | +800 | +0.0004 | +0.0012 | +0.0036 |
| Qwen3 | 0.90 | 5/5 | 5 | +0 | -0.0002 | -0.0011 | +0.0055 |
| Qwen3 | 0.95 | 5/5 | 5 | +0 | -0.0002 | -0.0011 | +0.0055 |
| Model | Target | Hits | AUC | ||||
|---|---|---|---|---|---|---|---|
| Qwen2.5 | 0.90 | 5/5 | 5 | +0 | +0.0025 | +0.0037 | +0.0029 |
| Qwen2.5 | 0.95 | 5/5 | 5 | +0 | +0.0025 | +0.0037 | +0.0029 |
| Qwen2.5 | 0.98 | 5/5 | 5 | +0 | +0.0018 | +0.0027 | -0.0014 |
| Qwen2.5 | 0.99 | 5/5 | 5 | +0 | +0.0007 | +0.0014 | +0.0024 |
| Qwen3 | 0.90 | 5/5 | 5 | +0 | +0.0013 | +0.0002 | +0.0055 |
| Qwen3 | 0.95 | 5/5 | 5 | +0 | +0.0013 | +0.0002 | +0.0055 |
| Method | Updates | Training seconds | Dense work ( FLOPs) |
|---|---|---|---|
| Centered logits | 36,000 | 18.21 | 42.47 |
| RC-DS | 36,000 | 18.11 | 42.47 |
| Standardized | 36,000 | 18.21 | 42.47 |
| ZCA | 36,000 | 18.48 | 42.47 |
| PCA whitening | 36,000 | 18.36 | 42.47 |
| Hidden (larger) | 36,000 | 67.19 | 6342 |
| Training method | Logit EV | Gain-free EV |
|---|---|---|
| RC-DS | 0.7741 | 0.7928 |
| Half gain | 0.7816 | 0.7922 |
| Centered logits | 0.7835 | 0.7882 |
| Hidden states | 0.7725 | 0.7908 |
| Standardized | 0.7765 | 0.7802 |
| PCA whitening | 0.5138 | 0.5021 |
| Model | Mean excess | 95% seed interval | Seeds above 5% |
|---|---|---|---|
| Qwen2.5-0.5B | 4/5 |
| Model | Mean difference | Seed range | |
|---|---|---|---|
| Qwen2.5 | 1 | ||
| Qwen2.5 | 4 | ||
| Qwen3 | 1 | ||
| Qwen3 | 4 |
| Setting | Centered logits | RC-DS | Difference |
|---|---|---|---|
| Bargaining | 0.8802 | 0.9144 | |
| Goofspiel | 0.7654 | 0.8637 | |
| Qwen label head, 60 epochs | 0.6066 | 0.6264 | |
| Qwen label head, 1,000 epochs | 0.9639 | 0.9655 |
| Checkpoint | Logit EV | RC-DS EV | Difference | 95% seed interval |
|---|---|---|---|---|
| Qwen2.5-0.5B | 0.9920 | 0.9926 | ||
| Qwen3-0.6B-Base | 0.9918 | 0.9919 |
| Model | Task | Mean | Seed 1 | Seed 2 | Seed 3 | |
|---|---|---|---|---|---|---|
| Qwen2.5 | Emotion | 8 | ||||
| Qwen2.5 | Emotion | 32 | ||||
| Qwen2.5 | AG News | 8 | ||||
| Qwen2.5 | AG News | 32 | ||||
| Qwen2.5 | IMDb | 8 | ||||
| Qwen2.5 | IMDb | 32 |
| Model | Task | Raw | RC-DS, | RC-DS, |
|---|---|---|---|---|
| Qwen2.5 | Emotion | 0.5669 | ||
| Qwen2.5 | AG News | 0.8493 | ||
| Qwen2.5 | IMDb | 0.5650 | ||
| Qwen3 | Emotion | 0.5958 | ||
| Qwen3 | AG News | 0.8471 | ||
| Qwen3 | IMDb | 0.5564 |
| Model | Task | Logits | RC-DS | Hidden | Std. | ZCA | |
|---|---|---|---|---|---|---|---|
| Qwen2.5 | Emotion | 8 | 0.5219 | 0.5223 | 0.5128 | 0.5226 | 0.5072 |
| Qwen2.5 | Emotion | 32 | 0.5398 | 0.5372 | 0.5408 | 0.5569 | 0.5133 |
| Qwen2.5 | AG News | 8 | 0.6663 | 0.7053 | 0.7138 | 0.6235 | 0.5167 |
| Qwen2.5 | AG News | 32 | 0.7797 | 0.8273 | 0.8313 | 0.7513 | 0.5346 |
| Qwen2.5 | IMDb | 8 | 0.5472 | 0.5143 | 0.5227 | 0.5464 | 0.5008 |
| Qwen2.5 | IMDb | 32 | 0.5515 | 0.5648 | 0.5589 | 0.5673 | 0.5106 |
| Model | Task | Logits | RC-DS | Hidden | Std. | ZCA | |
|---|---|---|---|---|---|---|---|
| Qwen2.5 | Emotion | 8 | 0.5079 | 0.5062 | 0.5062 | 0.5105 | 0.5040 |
| Qwen2.5 | Emotion | 32 | 0.5253 | 0.5227 | 0.5227 | 0.5297 | 0.5091 |
| Qwen2.5 | AG News | 8 | 0.5384 | 0.5442 | 0.5442 | 0.5361 | 0.5183 |
| Qwen2.5 | AG News | 32 | 0.6344 | 0.6472 | 0.6472 | 0.6293 | 0.5261 |
| Qwen2.5 | IMDb | 8 | 0.5070 | 0.5084 | 0.5084 | 0.5143 | 0.5011 |
| Qwen2.5 | IMDb | 32 | 0.5236 | 0.5212 | 0.5212 | 0.5333 | 0.5083 |
| Model | Task | Logits | RC-DS | Hidden | Std. | ZCA | |
|---|---|---|---|---|---|---|---|
| Qwen2.5 | Emotion | – | 0.5669 | 0.5669 | 0.5815 | 0.5669 | 0.5268 |
| Qwen2.5 | AG News | – | 0.8493 | 0.8493 | 0.8580 | 0.8493 | 0.5324 |
| Qwen2.5 | IMDb | – | 0.5650 | 0.5650 | 0.6886 | 0.5650 | 0.5354 |
| Qwen3 | Emotion | – | 0.5958 | 0.5958 | 0.5841 | 0.5958 | 0.5165 |
| Qwen3 | AG News | – | 0.8471 | 0.8471 | 0.8664 | 0.8471 | 0.5449 |
| Qwen3 | IMDb | – | 0.5564 | 0.5564 | 0.6233 | 0.5564 | 0.5094 |
| Model | Task | Gain-free EV | Logit EV | |
|---|---|---|---|---|
| Qwen2.5 | Emotion | 8 | ||
| Qwen2.5 | Emotion | 32 | ||
| Qwen2.5 | AG News | 8 | ||
| Qwen2.5 | AG News | 32 | ||
| Qwen2.5 | IMDb | 8 | ||
| Qwen2.5 | IMDb | 32 |
| Model | Task | Gain-free EV | Logit EV | |
|---|---|---|---|---|
| Qwen2.5 | Emotion | 8 | ||
| Qwen2.5 | Emotion | 32 | ||
| Qwen2.5 | AG News | 8 | ||
| Qwen2.5 | AG News | 32 | ||
| Qwen2.5 | IMDb | 8 | ||
| Qwen2.5 | IMDb | 32 |
| Model | Task | Gain-free EV | Logit EV | |
|---|---|---|---|---|
| Qwen2.5 | Emotion | 8 | ||
| Qwen2.5 | Emotion | 32 | ||
| Qwen2.5 | AG News | 8 | ||
| Qwen2.5 | AG News | 32 | ||
| Qwen2.5 | IMDb | 8 | ||
| Qwen2.5 | IMDb | 32 |
| Model | Task | Gain-free EV | Logit EV | |
|---|---|---|---|---|
| Qwen2.5 | Emotion | 8 | ||
| Qwen2.5 | Emotion | 32 | ||
| Qwen2.5 | AG News | 8 | ||
| Qwen2.5 | AG News | 32 | ||
| Qwen2.5 | IMDb | 8 | ||
| Qwen2.5 | IMDb | 32 |
| Model | Task | Logits | RC-DS | Hidden | Std. | ZCA | |
|---|---|---|---|---|---|---|---|
| Qwen2.5 | Emotion | 8 | 0.3930 | 0.3889 | 0.3870 | 0.3762 | 0.1319 |
| Qwen2.5 | Emotion | 32 | 0.5207 | 0.5152 | 0.5098 | 0.5008 | 0.0851 |
| Qwen2.5 | AG News | 8 | 0.6325 | 0.6279 | 0.6198 | 0.6285 | 0.3467 |
| Qwen2.5 | AG News | 32 | 0.7002 | 0.6935 | 0.6840 | 0.6912 | 0.3506 |
| Qwen2.5 | IMDb | 8 | 0.5403 | 0.5367 | 0.5361 | 0.5170 | 0.2697 |
| Qwen2.5 | IMDb | 32 | 0.6167 | 0.6066 | 0.6006 | 0.5973 | 0.2212 |
| Model | Task | Logits | RC-DS | Hidden | Std. | ZCA | |
|---|---|---|---|---|---|---|---|
| Qwen2.5 | Emotion | 8 | 0.4269 | 0.4622 | 0.4609 | 0.3977 | 0.1596 |
| Qwen2.5 | Emotion | 32 | 0.5700 | 0.6006 | 0.5958 | 0.5392 | 0.1247 |
| Qwen2.5 | AG News | 8 | 0.6673 | 0.6781 | 0.6717 | 0.6529 | 0.3668 |
| Qwen2.5 | AG News | 32 | 0.7383 | 0.7497 | 0.7416 | 0.7220 | 0.3800 |
| Qwen2.5 | IMDb | 8 | 0.6086 | 0.6328 | 0.6324 | 0.5551 | 0.3196 |
| Qwen2.5 | IMDb | 32 | 0.6916 | 0.7092 | 0.7042 | 0.6596 | 0.2861 |