simcal_validate — SIMCAL check op

• 데이터 종류: calresult × simmodel → calresult

• 호출: 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'(구현을 직접 호출하려면 import simcalcheck; simcalcheck.simcal_validate(result=None, holdout=None, locked=None, tau=None, dims=None, n_boot=200, alpha=0.001, seed=0) -> 'dict', 원장에서 가져오려면 opssimcal.get("simcal_validate"))

사용법

보류 영상에서의 과적합 관문. 하나라도 실패하면 보정을 거부한다(추정치는 철회).

> 아래 상세 설명은 원문입니다 —— 요약과 제목은 번역되어 있습니다.

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).

자세한 사용 가이드

• sim_to_real_calibration 패밀리 가이드

참고(샘플 데이터·문헌)

• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.

• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.

• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.

실행 가능한 예제(이 연산자를 실제로 호출하는 검증된 샘플)

• 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

타입이 이어지는 다음 연산자(calresult 를 입력으로 받는 것)

simcal_identifiability · simcal_uncertainty · simcal_discrepancy · simcal_report

같은 카테고리(check)

simcal_identifiability · simcal_uncertainty · simcal_discrepancy


*Provenance: simcalcheck.py — SIMCAL 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*

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