STAR
Cal STAR — firmware, DAQ server, and engine design
Loading...
Searching...
No Matches
autonomous_calibration_engine.AdaptivePriorEvolution Class Reference

Public Member Functions

 __init__ (self, int n_params, float forgetting_factor=0.995)
 update_from_sensor (self, int sensor_id, np.ndarray posterior_mean, np.ndarray posterior_cov, float quality)
Tuple[np.ndarray, np.ndarray, float] get_prior (self)
Tuple[np.ndarray, np.ndarray] predict_future_drift (self, float time_horizon)

Public Attributes

 n_params = n_params
 forgetting_factor = forgetting_factor
tuple prior_mean = np.zeros(n_params)
tuple prior_covariance
dict sensor_posteriors = {}
int update_count = 0
float effective_sample_size = 1.0
deque history = deque(maxlen=100)
 drift_detector = DriftDetector(n_params)

Protected Member Functions

 _empirical_bayes_update (self)
float _compute_confidence (self)

Detailed Description

Evolves population prior based on ongoing system performance.
Uses empirical Bayes to continuously improve prior from all sensors.

Definition at line 56 of file autonomous_calibration_engine.py.

Constructor & Destructor Documentation

◆ __init__()

autonomous_calibration_engine.AdaptivePriorEvolution.__init__ ( self,
int n_params,
float forgetting_factor = 0.995 )

Definition at line 62 of file autonomous_calibration_engine.py.

Member Function Documentation

◆ _compute_confidence()

float autonomous_calibration_engine.AdaptivePriorEvolution._compute_confidence ( self)
protected
Compute confidence in current prior

Definition at line 183 of file autonomous_calibration_engine.py.

Referenced by update_from_sensor().

◆ _empirical_bayes_update()

autonomous_calibration_engine.AdaptivePriorEvolution._empirical_bayes_update ( self)
protected
Empirical Bayes: Estimate population prior from sensor posteriors.

Model: θⱼ ~ N(μ_pop, Σ_pop)  (sensors drawn from population)

Estimate μ_pop = mean(θⱼ) and Σ_pop = var(θⱼ) + mean(Σⱼ)

Definition at line 132 of file autonomous_calibration_engine.py.

References effective_sample_size, n_params, prior_covariance, prior_mean, and sensor_posteriors.

Referenced by update_from_sensor().

◆ get_prior()

Tuple[np.ndarray, np.ndarray, float] autonomous_calibration_engine.AdaptivePriorEvolution.get_prior ( self)
Get current prior (mean, covariance, confidence)

Definition at line 200 of file autonomous_calibration_engine.py.

◆ predict_future_drift()

Tuple[np.ndarray, np.ndarray] autonomous_calibration_engine.AdaptivePriorEvolution.predict_future_drift ( self,
float time_horizon )
Predict how parameters will drift over time horizon.

Returns: (predicted_mean, predicted_covariance)

Definition at line 208 of file autonomous_calibration_engine.py.

◆ update_from_sensor()

autonomous_calibration_engine.AdaptivePriorEvolution.update_from_sensor ( self,
int sensor_id,
np.ndarray posterior_mean,
np.ndarray posterior_cov,
float quality )
Update population prior from individual sensor posterior.
Uses empirical Bayes: prior is the mean of all sensor posteriors.

Definition at line 86 of file autonomous_calibration_engine.py.

References _compute_confidence(), _empirical_bayes_update(), drift_detector, effective_sample_size, forgetting_factor, history, feedtwin.session.core.Session.history, prior_covariance, prior_mean, sensor_posteriors, time.time(), and update_count.

Member Data Documentation

◆ drift_detector

autonomous_calibration_engine.AdaptivePriorEvolution.drift_detector = DriftDetector(n_params)

Definition at line 80 of file autonomous_calibration_engine.py.

Referenced by update_from_sensor().

◆ effective_sample_size

float autonomous_calibration_engine.AdaptivePriorEvolution.effective_sample_size = 1.0

Definition at line 76 of file autonomous_calibration_engine.py.

Referenced by _empirical_bayes_update(), and update_from_sensor().

◆ forgetting_factor

◆ history

deque autonomous_calibration_engine.AdaptivePriorEvolution.history = deque(maxlen=100)

Definition at line 79 of file autonomous_calibration_engine.py.

Referenced by update_from_sensor().

◆ n_params

autonomous_calibration_engine.AdaptivePriorEvolution.n_params = n_params

Definition at line 63 of file autonomous_calibration_engine.py.

Referenced by _empirical_bayes_update().

◆ prior_covariance

tuple autonomous_calibration_engine.AdaptivePriorEvolution.prior_covariance
Initial value:
= np.diag(
[10000.0, 100000.0] + [10000.0] * (n_params - 2)
)

Definition at line 69 of file autonomous_calibration_engine.py.

Referenced by _empirical_bayes_update(), and update_from_sensor().

◆ prior_mean

tuple autonomous_calibration_engine.AdaptivePriorEvolution.prior_mean = np.zeros(n_params)

Definition at line 67 of file autonomous_calibration_engine.py.

Referenced by _empirical_bayes_update(), and update_from_sensor().

◆ sensor_posteriors

autonomous_calibration_engine.AdaptivePriorEvolution.sensor_posteriors = {}

Definition at line 74 of file autonomous_calibration_engine.py.

Referenced by _empirical_bayes_update(), and update_from_sensor().

◆ update_count

int autonomous_calibration_engine.AdaptivePriorEvolution.update_count = 0

Definition at line 75 of file autonomous_calibration_engine.py.

Referenced by update_from_sensor().


The documentation for this class was generated from the following file: