Neural-network fitting as a structure sensor

Can the fitting process of a plain autoencoder act as a sensor for hidden structure in single-cell data — recovering a biological axis it was never shown?

Honest negative result Pre-registered · A∧B∧C∧D GSE233321 · immune lifespan prototype, confirmed 2 seeds × d{16,32}

An undercomplete autoencoder is trained only to reconstruct gene expression — it never sees donor age. If age nonetheless surfaces in its compressed code, the fit itself would be a usable sensor. Calibrated on the age axis as ground truth, the method fails its own pre-committed bar — and the way it fails is informative.

Headline. The autoencoder never beats a linear baseline (PCA) at recovering age, across two seeds and both latent dimensions. Worse, training erodes the signal: age is most decodable at initialisation and declines over 100 epochs. A synthetic positive control shows the instrument can beat linear methods — but only in a geometric regime that single-cell data does not occupy. The negative is a property of the data geometry, not a fluke or a biased test.
167
donors (effective n) · CD4 T cells
0 / 2
configs where the latent beats matched PCA
p = 0.001
latent ↔ perceptome eigenspace (CCA)
3
pre-registered amendments, decided before looking

The design

One autoencoder architecture, three matched data conditions, and a pre-committed pass/fail rule fixed before any result was seen.

What the fit reveals

The sensor signal is not the reconstruction loss. It is read three ways, each against a matched null.

Effective dimensionality: REAL vs gene-permuted
Structure is present. Participation ratio of the latent covariance is far lower for real data than for the gene-permuted floor (6.2 vs 14.4 at d=16) — the autoencoder is compressing genuine co-expression, not noise. So the question is not whether there is structure, but whether the fit exposes age better than a linear method.
Age recovery: autoencoder latent vs matched linear baselines
The autoencoder loses to linear PCA (criterion C fails). Leave-donors-out age recovery for the latent vs matched PCA-d, PCA-50, raw HVG, and the shuffled-age null. The latent (0.85) sits below every linear baseline on the lifespan axis, and below them again on the harder adult-aging axis. A from-scratch neural compression adds nothing over ordinary linear statistics — the lesson the Arc Virtual Cell Challenge taught at scale, reproduced here.
Learning order: age and cell-type decodability decline over training
Training erodes the signal. Both age (blue, leave-donors-out) and cell type (pink) are maximally decodable at epoch 1 — when the untrained network is essentially a random projection that preserves linear structure — and decline monotonically as the bottleneck specialises for reconstruction. The fit moves away from the target it was hoped to expose. Confirmed across two seeds and both latent dimensions.

The instrument is sound — but narrowly

Could a linear probe be hiding a nonlinear success? A synthetic positive control settles it.

Nonlinear positive control across three synthetic regimes
The autoencoder beats matched PCA only in one regime. Three synthetic targets through the same pipeline. On a high-linear-rank, low-intrinsic-dimension manifold (CURVE), the d=2 autoencoder beats matched PCA-2 (criterion C can fire — the test is fair). On a linear target or a low-rank manifold (ROLL), it cannot. And in every case, giving PCA a few more components ties or wins. Real scRNA-seq has low effective rank (≈50 PCs) and a linearly-dominated age axis — outside the firing window.
Objective-function experiment: MSE vs negative-binomial vs information-bottleneck
The objective explains the erosion — but not the failure. Holding everything fixed and varying only the training loss: a count-appropriate negative-binomial likelihood (unsupervised) removes the learning-order decay (slope flips negative → positive), confirming that MSE-on-counts was eroding the signal. But it only reaches parity with PCA, never a decisive win. An aligned objective fixes the dynamics; the data geometry still caps the utility.

The independent cross-check

Perceptome cross-check: CCA and inflammaging alignment
The latent re-derives the perceptome eigenspace, but not its aging axis. Cross-validated CCA between the autoencoder latent and the 9-PC perceptome coordinates gives three significant shared axes (0.95 / 0.56 / 0.74, all permutation p = 0.001) — the data-driven factorisation independently recovers the biology-curated one. Yet the latent's age direction is orthogonal to the reference inflammaging direction (cosine −0.78 / −0.50, not significant), consistent with the prior that perceptome axes are pathology-specific, not healthy-aging.

What was found

  1. (Negative.) The autoencoder does not beat matched linear PCA at recovering age — 0/2 across seeds × dims (lifespan latent 0.86–0.89 vs PCA 0.90–0.93; adult 0.35–0.40 vs 0.44–0.48). More capacity (d=32) does not rescue it, so the bottleneck is the data geometry, not the network size.
  2. Training erodes the signal under MSE. Age decodability is highest at initialisation (≈ random projection) and declines over 100 epochs; the unsupervised fit specialises for reconstruction and overwrites the linearly-accessible age axis.
  3. Naive adult-aging recovery is partly a batch artifact. The latent predicts dataset-of-origin at 0.94 balanced accuracy (chance 0.33); within a single source the adult signal collapses to ρ ≈ 0.14 (n.s.). The pre-registered source control (D) catches exactly this.
  4. The latent independently re-derives the perceptome eigenspace (CCA 0.95 / 0.56 / 0.74, p = 0.001) but not its aging axis (cosine to inflammaging −0.78 / −0.50, n.s.) — perceptome axes look pathology-specific.
  5. The instrument is sound but the regime is wrong. A positive control confirms the autoencoder can beat matched PCA — only when intrinsic-dim < bottleneck < linear-rank. Single-cell data (low effective rank, linear age) is outside that window; no objective changes that.
TargetA · beats nullB · not on permutedC · beats PCAD · source-robustVerdict
Lifespan (167 donors)FAIL
Adult-aging (85 donors)FAIL

What this means

The result is a clean, mechanistically dissected negative. Autoencoder-fitting-as-a-sensor beats linear baselines only on data whose structure is nonlinearly entangled — high linear rank, low intrinsic dimension. Standard single-cell expression, after the usual preprocessing, is well-approximated by ~50 linear components and carries a linearly-dominated age axis; there is simply no nonlinear advantage for the bottleneck to find that a generous linear method does not already capture. The training objective controls whether the fit erodes the signal (it does under MSE; a count-appropriate loss does not), but it cannot manufacture an advantage the geometry does not offer.

A positive by-product: the unsupervised latent independently re-derives the hand-built perceptome eigenspace — evidence that the curated coordinate system is real structure in the data — while declining to align with its aging direction, exactly as a pathology-specific framework should.

The honest conclusion for the method: it needs a nonlinearly-encoded target to be worth the machinery. Immune age is the wrong target — and now we know precisely why.

Reproducibility

The full pipeline is pre-registered (three locked amendments), leave-donors-out throughout, fixed seeds, and packaged as a one-click notebook (data download → QC → train ×{real, gene-permuted} → A∧B∧C∧D verdict → learning-order → perceptome cross-check → figures). Every headline number is reported with its matched control and with variance across seeds and folds. Dataset: GSE233321 (healthy human immune system across the lifespan, 167 donors). Code, pre-registration, and the full report — repository in preparation under github.com/mool32.

Part of the perceptome program · methodological negative result · pre-registration discipline per the AI-collaborative research methodology. Theodor Spiro · ORCID 0009-0004-5382-9346 · tspiro@vaika.org