mixle.inference.gradient_fit module¶

Gradient-based (autograd) maximum-likelihood and MAP fitting.

fit_mle / fit_map optimize a distribution’s parameters by gradient descent through a Torch backend (constraint reparameterization, optional declaration-backed priors), returning a GradientFitResult. This is the gradient counterpart of the EM drivers in estimation.py.

class GradientFitResult(model, value, iterations, history=(), converged=False, initial_value=None, final_delta=None, log_likelihood=None, log_prior=None, prior_strength=0.0, tag='MLE', best_value=None, best_iteration=None, final_gradient_norm=None)[source]

Bases: object

Optimization result for generic autograd MLE/MAP fitting.

Parameters:
  • model (SequenceEncodableProbabilityDistribution)

  • value (float)

  • iterations (int)

  • history (tuple[float, ...])

  • converged (bool)

  • initial_value (float | None)

  • final_delta (float | None)

  • log_likelihood (float | None)

  • log_prior (float | None)

  • prior_strength (float)

  • tag (str)

  • best_value (float | None)

  • best_iteration (int | None)

  • final_gradient_norm (float | None)

model: SequenceEncodableProbabilityDistribution
value: float
iterations: int
history: tuple[float, ...] = ()
converged: bool = False
initial_value: float | None = None
final_delta: float | None = None
log_likelihood: float | None = None
log_prior: float | None = None
prior_strength: float = 0.0
tag: str = 'MLE'
best_value: float | None = None
best_iteration: int | None = None
final_gradient_norm: float | None = None
as_tuple()[source]

Return the historical (model, objective) shape.

Return type:

tuple[SequenceEncodableProbabilityDistribution, float]

property objective_change: float | None

Return the signed objective change from the start of optimization.

property improvement: float | None

Return the maximization improvement from the start objective.

property best_improvement: float | None

Return best improvement seen during optimization.

property prior_sensitivity: float | None

Return the magnitude fraction of the final objective coming from the prior.

fit_mle(enc, model, engine=None, max_its=500, lr=0.05, optimizer='adam', tol=1.0e-7, out=None, print_iter=100, precision=None, return_result=False)[source]

Fit converted models by maximizing backend log likelihood with autograd.

The generic implementation handles declaration-backed tensor leaves and delegates structured model families to distribution-owned gradient_fit_state hooks.

Parameters:
  • enc (Any)

  • model (SequenceEncodableProbabilityDistribution)

  • max_its (int)

  • lr (float)

  • optimizer (str)

  • tol (float)

  • out (IO | None)

  • print_iter (int)

  • precision (Any | None)

  • return_result (bool)

Return type:

Any

fit_map(enc, model, engine=None, prior_strength=1.0, priors=None, max_its=500, lr=0.05, optimizer='adam', tol=1.0e-7, out=None, print_iter=100, precision=None, return_result=False)[source]

Fit converted models with MAP priors over declaration-backed parameters.

prior_strength=0 is exactly the same objective as fit_mle when no explicit priors are supplied. priors may be a legacy prior dict or one of the helpers from mixle.inference.priors.

Parameters:
  • enc (Any)

  • model (SequenceEncodableProbabilityDistribution)

  • prior_strength (float)

  • priors (Any | None)

  • max_its (int)

  • lr (float)

  • optimizer (str)

  • tol (float)

  • out (IO | None)

  • print_iter (int)

  • precision (Any | None)

  • return_result (bool)

Return type:

Any