Training Fixes Residual Grids
training_fixes_20261005 · fold 0 held-out tests

Training fixes residual grids

Every training run from the stop-rule, noise-floor and memorisation tests on F1 (S24 C2K2) and F2 (S20 C3K3). The table compares each run with the fresh baseline on the same held-out stars; click a row to see its residual grids below. Runs still training show as running; combinations that were never run show as not run.

run4 · the paper's final five-field run · 2026-10-10

Final run: STEP 1 colour model, template shift, new background

All five fields rerun end to end with the STEP 1 radial/coma colour model (no brightness width), the per-node template shift for the PS1 stack offset, the approved background (red_floor5) with saturation-bleed and bad-column masks, adopted band weights, and the bootstrap side rerun on the new background. Templates are reused from the earlier run, so they come from that run's WCS, not this fit's. C4 (and F1's refit) trained on Colab T4; a CPU twin of one C4 fold agrees (held-out χ² ratio 0.9995 ± 0.0003).

fieldE2 effective x / y [mpx] (WCS)E3 r≤3 / r≤5 max |Δ| [ppt] (total)E4held-out χ² final: run4 / A3, T8–9…12–13E5 T8–9 gap, fold median (min–max); boot; A3 (≤ 1.3, every fold, both images)E6 axis final / bootG4 (A3)G4 H χ² / red χ² / dipole, run4 (A3)
F10.55 / 0.32 ✓ (0.90 / 0.74)0.06 / 0.14 ✓ (-0.58…-0.43)5/5 ✓452 152 41.9 14.4 5.6 / 616 195 48.5 16.2 6.21.09 (0.92–1.77); boot 1.10; A3 1.25 ✗-0.57 / -0.56 ≈PASS (PASS)2.13 / 3.81 / +16.1 (2.46 / 4.82 / +18.9)
F20.83 / 1.07 ✓ (1.38 / 1.38)0.07 / 0.26 ✓ (-1.05…-0.77)3/5 ✗484 129 36.4 10.9 3.6 / 510 154 38.4 11.7 3.91.37 (1.14–1.44); boot 1.28; A3 1.18 ✗-0.41 / -0.42 ✓PASS (PASS)1.41 / 2.84 / +12.5 (1.45 / 3.93 / +17.2)
S221.68 / 1.41 ✓ (2.96 / 2.69)0.09 / 0.26 ✓ (-1.02…-0.98)5/5 ✓507 129 36.8 10.9 3.7 / 614 149 42.8 12.0 3.91.41 (0.94–1.79); boot 1.46; A3 1.41 ✗-0.40 / -0.42 ✓PASS (PASS)1.37 / 3.05 / +2.2 (1.44 / 4.18 / +6.7)
C10.48 / 0.44 ✓ (0.91 / 0.50)0.11 / 0.06 ✓ (-0.27…-0.17)5/5 ✓788 219 60.6 18.0 5.9 / 974 249 65.9 19.5 6.31.33 (1.10–1.83); boot 1.38; A3 1.39 ✗-0.42 / -0.42 ≈PASS (PASS)1.74 / 3.24 / +10.5 (2.04 / 4.17 / +11.7)
C40.67 / 1.00 ✓ (0.99 / 1.09)0.03 / 0.14 ✓ (-0.55…-0.46)4/5 ✗633 156 54.0 15.3 5.5 / 997 230 64.5 18.0 6.21.29 (1.13–1.39); boot 1.26; A3 1.26 ✗-0.18 / -0.19 ✓PASS (FAIL)2.89 / 4.99 / +1.3 (3.19 / 8.38 / +19.2)
Five-field summary: effective position change per axis, fixed-aperture flux change, held-out chi-squared, final over boot chi-squared, run4 versus A3
run4 (red) vs A3 on the same background (blue): effective position change per axis, model flux change in r ≤ 3 px (o) and r ≤ 5 px (s) with the ±0.3 ppt band, held-out core χ² on the final image, and E4 ratio final / boot.
Per field WCS change, ePSF centroid change and their sum, run4
Refit − boot star-position change per 8×8 cell: WCS, ePSF centroid, and their sum. S22 has the largest opposing WCS and centroid changes; the remaining 3–4 mpx diagonal band through its centre is the non-cancelling part (cause untested).
C4 fold 0 held-out residual grid on the final image, run4
C4 fold 0, held-out stars on the final image (run4). Mid-colour stamps are clean; red bins hold 11–22 stars and stay noisy.

Record: /astro/armin/koji/syndiff/dev_runs/e2e_final_recipe_20261007/README.md ("run4 RESULTS"); branch claude/paper1-final-v2-20261009 (not merged).

e2e_final_recipe_20261007 · paper1_final recipe on main · all five Paper 1 FFIs

Final runs: residual grids

Pick a field, the image the recipe was trained on, the stars to stack and the fold. Each fold fit trains on 4/5 of the stars; its held-out fifth is never seen by that fit. The table shows that fold's median core χ² per magnitude bin; in the Final image view the last row gives the final/boot ratio for the same held-out stars' bin medians.

Field
Image trained on
Stars shown
Fold
Residual grid
e2e_final_recipe_20261007 · main 157dc95d (compare ac1290da) · all five Paper 1 FFIs

End-to-end check of the final recipe

The final recipe (neighbours from the verified removal ledger, per-star weight cap at T 10.5, T 11–13 stars training the shape, smoothed stop rule) was moved onto the main branch. On each field the pipeline fits the bootstrap image, builds new per-band templates from that fit's WCS, makes the final de-crowded image with kernels from the same fit, and trains the same recipe again on it. Every fit has a 5-fold held-out check. The refit is compared with the bootstrap fit (D14).

fieldE2 WCS rms x / y [mpx]effective position x / yE3 total flux −1 [ppt]flux in r ≤ 3 / r ≤ 5 px [ppt]E4 held χ² lowerE5 T8–9 gapG4
F10.57 / 1.370.38 / 0.48−0.29…−0.47±0.05 / ≤0.125/50.91–1.47PASS
F21.40 / 2.411.11 / 1.87−1.55…−1.96≤0.24 / ≤0.295/51.06–1.49PASS
S221.53 / 1.960.81 / 0.98−0.58…−0.98≤0.17 / ≤0.284/51.08–2.00PASS
C10.42 / 0.480.27 / 0.39−0.20…−0.32≤0.10 / ≤0.074/51.09–2.04PASS
C40.57 / 0.850.34 / 0.61−0.59…−0.68≤0.07 / ≤0.224/50.91–1.71FAIL*

Limits: E2 ≤ 2 mpx per axis, E3 |Δ| ≤ 0.3 ppt in every T bin, E5 ≤ 1.3. The E5 gap is the same on the bootstrap image. *C4's G4 fail comes from a bright-template-core deficit (T < 13.6) plus a smaller red-star gain; the user chose to continue.

Refit over boot flux ratio by magnitude for total flux and for model flux in 3 and 5 pixel apertures, plus per-axis WCS and effective position change per field
Refit / boot flux − 1 by magnitude: total flux, then model flux inside r ≤ 3 and r ≤ 5 px (grey band = E3 limit). Right: WCS and effective position change per axis.
Flux change versus magnitude, flux change versus ePSF core-fraction change, and WCS rms per field
Middle panel: mean flux change against the ePSF's ΔEE(r ≤ 3); the dashed line is flux = −ΔEE.
WCS change vector fields and ePSF difference images for five fields
Top: refit − boot WCS change across each CCD. Bottom: refit − boot ePSF difference (ppt of peak); every field gains light in the core.
Per field, refit minus boot WCS change, ePSF centroid change and their sum, binned 8 by 8 across the CCD
Refit − boot star-position change per 8×8 cell: the WCS change (left), the ePSF centroid change at each star (Gaussian-weighted, σ = 1.5 px; middle), and their sum, the effective change (right). Shared colour scale, 0–4 mpx. The two parts largely cancel; the sum is 0.27–1.87 mpx rms per axis, with the largest cells in F2's lower-left and upper-right corners and along S22's left edge.
F2 fold 0 held-out residual grid on the bootstrap image
F2 fold 0, held-out stars, fit on the bootstrap image.
F2 fold 0 held-out residual grid on the final de-crowded image
F2 fold 0, held-out stars, fit on the final de-crowded image. Mid-colour stamps are clean; red bins hold 5–16 stars and stay noisy.
run3_rf5 · new background (red_floor5 + exclude_percentile 50 + defect masks) · 2026-10-09

Final images on the new background: G4

Hotpants, the final images and G4 rerun on the user-approved background; saturation bleeds and bad columns are masked in the final images (kernel fit, match, output mask, scorer, training scene). Verdicts are unchanged: F1, F2, S22, C1 PASS; C4 FAIL as before. Every metric moves slightly the wrong way on every field, for both the Hotpants baseline and the per-band image: H χ² +3–10%, red χ² +6–20%, red−blue radial dipole +5…+11 mpx (σ ≈ 2.4 mpx).

The scorer's own stamps show why: the change in the red − blue stack is a smooth tilt across the whole 9×9 stamp (±0.05–0.08% of flux per px) along the away-from-axis direction, with unchanged cores, and the local background around red stars drops (median −0.005…−0.022 e⁻/s) while blue and mid-colour stars rise. This is the red stars' own lateral-colour residual, now unmasked: the old background carried a negative lobe about 3 px toward the optical axis at red stars, which the new one does not, and the raw FFI minus the convolved template shows the same dipole at red stars while empty decoy positions show nothing (background session's test, checked here). The lobe directions follow each CCD's optical axis on all five fields. The old background was hiding part of the red-star residual, so the paper should quote these numbers.

Refit on these images (D14), all five fields: the same picture as on the old background, slightly better where it moved. Effective star positions move ≤ 1.55 mpx per axis; total-flux offsets shrink on F1, S22, C1 and C4 (C4 −0.68 → −0.36…−0.03 ppt) and stay at −1.7…−1.9 ppt on F2 (its ePSF wing); flux in a fixed r ≤ 3 or 5 px aperture agrees within ±0.21 ppt everywhere; held-out χ² is lower on the final image in 22 of 25 bins, the same three exceptions as before. These are pre-fix numbers: per-band template stars were found 104–236 mas north of the Gaia positions, and the fix will be followed by a rerun.

Per field red minus blue stacks before and after the background change, their difference, and per-star local background change
Per field (rows): band_w red − blue stack in run3 and run3_rf5 (shared scale), their difference (own scale), and the per-star local background change by colour.
Five-field D14 summary old versus new background: effective position change, total flux, fixed-aperture flux, held-out chi-squared ratio
D14 on the old (blue) and new (red) background: effective position change per axis, total and r ≤ 3 px flux change (grey = ±0.3 ppt), and held-out core χ² final / boot per T bin.
G4 metrics per field for the old and new background, Hotpants and per-band products
G4 metrics per field: Hotpants (grey) and per-band (blue run3, red run3_rf5).

Record: /astro/armin/koji/syndiff/dev_runs/e2e_final_recipe_20261007/README.md ("run3_rf5 G4").

f2_wing_20261009 · user decision 10-09 · all five fields

Wing study: which ePSF wing is right?

The refit on the final image has more light in its core and less at 3–8 px than the bootstrap fit, most of all on F2, so its fluxes are 1.5–2 ppt lower there. Three tests:

Conclusion. The final-image wing is the better one; the bootstrap ePSF over-predicts light at 6–10 px, and the paper takes fluxes and the ePSF from the final-image refit. Still open: the final ePSF leaves +0.1–0.2 ppt per ring at 4–7 px (slightly too little wing, inside the ±0.3 ppt E3 band), both leave a negative 7–10 px ring, and why the bootstrap image pushes the wing up (the faint-star background level is the suspect). These are to be rechecked on the new background once it passes validation.

Paired held-out ring chi-squared ratio final over boot ePSF for five fields, and ring residuals for T8 to 10
Left, middle: paired median ring χ² ratio, final ePSF / boot ePSF, on held-out stars (solid: final image, dotted: boot image); below 1 means the final ePSF fits better. Right: median ring residual for T8–10 on the final image (o final ePSF, x boot ePSF).
F2 ring residuals for the boot and final ePSF on each image, three magnitude bins
F2: median ring residual of each ePSF on each image, with the paired change (black). The paired change is the same on both images.
Top: image change and ePSF change versus radius for five fields; bottom: data and ePSF radial profiles
Top: image change around stars (points, per px / F) against the ePSF change (dashed), ×10⁻⁴; grey = 4–8 px. Bottom: data profiles (o boot, x final) and ePSF profiles (dashed boot, dotted refit). The data profile is a per-pixel median and sits below the bin-mean ePSF profile at large r for that reason.
Converged versus initial ePSF ring light change, one point per fold, two rings
Ring light change, final − boot, for the converged fit against its photutils init, one point per field × fold. Points far below the diagonal: training, not the start, sets the wing.

Record: /astro/armin/koji/syndiff/dev_runs/f2_wing_20261009/README.md.

Findings so far

All runs against the fresh baseline

Left block: median paired ratio of held-out core χ² to the baseline, same stars (below 1 = better prediction). Right block: memorisation gap, held-out ÷ in-fold median core χ² (1 = no gap). Last column: width residual in the CCD cell at the optical axis, blue and mid-colour T 10–13 stars, all stars, 10⁻³ px² (negative = data sharper than the model, i.e. the bullseye). Columns are catalogue Tmag bins.

Field
Stars shown
Residual grid

ePSF at the start and at the end

Best run vs the fresh baseline, starting from the training-only photutils ePSF. Rows: CCD mean of the 36 tiles, the tile nearest the optical axis, the far-corner tile. Log scale; 63×63 samples at 4× oversampling.

Initial and final ePSF, F1
Images and radial profiles.
ePSF differences, F1
Differences as a fraction of the initial peak (±3%), central 7.75 px.

How to read a grid

Record: /astro/armin/koji/syndiff/dev_runs/training_fixes_20261005/README.md. Grids: eval/<run>/ under the same directory.