What a gravitational-wave detector knows without being told

A CNN was trained to answer one question: is there a signal in this noise? It was never shown the mass of anything. Afterwards, a straight line through its internal state recovers it.

GitHub

Closed-form general relativity

The shape of a black hole, computed live

The geometry is checked against two limits where the answer is known exactly, then against the only two black holes ever photographed. Bardeen's closed-form boundary redraws under the sliders, with a schematic Novikov–Thorne disk around it.

0.9000
90.0°

        

Exact Kerr: the shadow outline, r_isco, the orbital frequency, the redshift g and the Novikov–Thorne flux, with I_obs = g⁴ I_em. Approximate: the disk's light bending uses the Beloborodov (2002) Schwarzschild relation, so spin does not enter it. The lower arc, light from the disk that wraps around the hole, is an extra approximation made for this page: Schwarzschild bending, no spin, emitters inside 3M skipped. It is not in shadow.js or the Python pipeline. Colours are presentation and intensities are relative.

Against the two black holes we have photographed

Predicted shadow diameter against the EHT measurement. δ = measured / predicted − 1.

Ray-traced, with an accretion disk

The detector

A CNN that only knows "signal or noise"

The learning curve, predicted in advance

Training

Where it separates signal from noise

Sim-to-real transfer

It works on real data

The frozen network, trained purely on simulated injections, meeting real detections for the first time.

The probe

The question: is mass linearly readable?

What each input can tell you

Predicted against published chirp mass

Against chance

The confound

"Isn't that just nonlinear beating linear?"

Ridge on raw pixels is a linear model of the image, while ridge on the embedding is a nonlinear one: the embedding is itself a nonlinear function of the pixels. The control gives every source the same nonlinearity budget, with identical RBF kernel ridge throughout.

Same probe, two model classes

R² on chirp mass, out-of-fold, same events throughout.

Paired comparisons

Both members of each pair refitted on the same resample; Holm-adjusted.

The supervised comparison

What a model that does see labels gets

XGBoost on GWTC catalogue features (distance, SNR, redshift, spin, false-alarm rate, p_astro) predicting the same chirp mass, with every mass-bearing column removed.

Every chirp-mass result, one table

All rows scored on the same events.

The tabular workflow

Scope

What this shows, and what it does not

Shows

Training transforms the representation so that chirp mass becomes linearly readable, far beyond an untrained network of identical architecture, and not because of model class.

Does not show · 1

That the CNN "discovered" mass.

The embedding is a deterministic function of the image and cannot contain more information than it. What changed is linear accessibility, not information content.

Does not show · 2

That this is a good way to measure mass.

It was never compared with matched-filter parameter estimation, which produced these labels and is far more precise. The probe is an instrument, not a product.

Does not show · 3

That detection training specifically is responsible.

What is established is that training matters. The isolating control, the same CNN trained on shuffled labels, was never run.

How this was built

Spec-first, with the failures left in

Amendment log

What changed in the spec, and why.

The contract hashes

Conclusion

Training makes chirp mass linearly readable from a detector that was only ever asked “is something there?”