simcal_validate — SIMCAL check op

• Data kinds: calresult × simmodel → calresult

• Call: import fullseye as fs; fs.ledger.simcal_validate(result=None, holdout=None, locked=None, tau=None, dims=None, n_boot=200, alpha=0.001, seed=0) -> 'dict' (implementation को सीधे call करना हो तो import simcalcheck; simcalcheck.simcal_validate(result=None, holdout=None, locked=None, tau=None, dims=None, n_boot=200, alpha=0.001, seed=0) -> 'dict', registry से लेना हो तो opssimcal.get("simcal_validate"))

उपयोग

held-out images पर over-fitting gates; किसी एक के भी विफल होने पर calibration अस्वीकृत (estimates वापस)।

> नीचे का विस्तृत विवरण मूल text में है — सारांश और headings का अनुवाद हो चुका है।

holdout (and locked): observed simmodels of the same knobs (simcal_observe with split='holdout' / 'locked') or image lists for the fitted model's conditions. Errors are reduced chi^2 (1 = the residuals are exactly the noise). Gates, each recorded in validation.gates with its value and limit:

1. beats_initial — holdout error at the estimate < holdout error at the initial knobs;

2. holdout_over_train — holdout / train <= 1 + tau, tau = the bootstrap 95 % relative spread of the train error over its pixels (n_boot resamples) unless given;

3. beats_gain_offset — better than the initial simulation re-scaled by a fitted gain and offset only (the cheapest model that could explain the images);

4. estimate_plausible — every estimate inside its range, not within 1 % of an end, and within 3 sd of its prior when one is given;

5. knobs_within_dims — free knobs <= output directions above noise (dims, or computed from a Latin hypercube over the knobs with sensitivity.mv_residual_pca);

6. fit_consistent_with_noise — the absolute gate: on the train images (nu = pixels − free knobs) and on the holdout images (nu = pixels), chi^2 of the noise-normalised residuals has an upper-tail probability P(chi^2_nu >= chi^2) of at least alpha (default 1e-3). Gates 1-5 are relative comparisons and pass a fit that is 60 times the noise everywhere (a thin film in the wrong fringe order, measured); this one does not. Judged on p, not on chi^2/nu, because chi^2/nu concentrates on 1 for large nu (both are returned). The variance is the noise model's plus, for a stochastic model, its sample variance. A failure means: the fit is bad for this noise model — a local minimum, a model discrepancy, or a noise estimate that is too small. ★It does NOT detect a noise model that is too large: over-estimating the variance by 4x drives p to 1 and the gate passes (measured) — that direction is visible only as chi^2/nu << 1.

locked is scored once (errors.locked) and is not used by any gate; a result that already carries a LOCKED score is refused (the robust.py discipline: the untouched number is untouched only once).

उपयोग की विस्तृत guide

• sim_to_real_calibration family guide

संदर्भ (sample data, साहित्य)

• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।

• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।

• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• poc_pocket_interreflection — py -3.11 examples/poc_pocket_interreflection.py

• poc_simcal_thin_film — py -3.11 examples/poc_simcal_thin_film.py

• simcal_checks_tour — py -3.11 examples/simcal_checks_tour.py

वे अगले ops जिनसे type जुड़ता है (calresult को input के रूप में लेते हैं)

simcal_identifiability · simcal_uncertainty · simcal_discrepancy · simcal_report

इसी category के (check)

simcal_identifiability · simcal_uncertainty · simcal_discrepancy


*Provenance: simcalcheck.py — SIMCAL operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.