pypomp.PanelPomp.train¶
- PanelPomp.train(J: int, M: int, eta: LearningRate, chunk_size: int = 1, optimizer: Optimizer = Adam(clip_norm=None, scale=False, ls=False, c=0.1, max_ls_itn=10, beta1=0.9, beta2=0.999, epsilon=1e-08), alpha: float = 0.97, key: Array | None = None, theta: PanelParameters | None = None, alpha_cooling: float = 1.0)¶
Estimate parameters using MOP-based gradient-descent optimization.
Performs Maximum Likelihood Estimation using the Measurement Off-Parameter (MOP) particle filter (Tan et al. 2024 [1]), treating the particle filter as a differentiable computation graph and applies gradient-based optimizers (e.g. Adam, SGD, Newton) via JAX reverse-mode automatic differentiation.
Warning
MOP gradients are only well-defined for continuous-state models. For discrete-state models, use
mif()ordpop_train()instead.JAX vectorises the computation across all starting parameter sets in
thetasimultaneously. Results are appended toresults_history.- Parameters:
J (int) – Number of particles per unit.
M (int) – Number of training iterations (gradient steps).
eta (LearningRate) – Learning rates per parameter.
chunk_size (int, optional) – Number of units to process in parallel per gradient step. Defaults to
1.optimizer (Optimizer, optional) – Optimizer configuration object. Defaults to
Adam().alpha (float, optional) – MOP discount factor. Defaults to
0.97.key (jax.Array or None, optional) – JAX random key. If
None, uses the model’sfresh_key.theta (PanelParameters or None, optional) – Initial parameter estimates. If
None, defaults toself.theta.alpha_cooling (float, optional) – Cooling factor for the MOP discount factor
alphausing cosine decay. Defaults to1.0.
- Returns:
Updates
self.thetawith final estimates and appends aResultto the history.- Return type:
None
References