FisherPreconditioner
phasic.svgd.FisherPreconditioner(
model,
observed_data,
theta_dim,
param_transform=None,
rewards=None,
epsilon=1e-08,
)Diagonal Fisher information preconditioner for multi-scale SVGD.
Computes the diagonal of the empirical Fisher information matrix at a reference parameter point, then uses it to normalize the kernel’s particle space so that all dimensions have comparable information content.
Parameters
model :callable-
Model function: model(theta, data, rewards=None) -> (pmf, moments)
observed_data :array-
Observation data points
theta_dim :int-
Number of parameters (learnable dimensions only if fixed params exist)
param_transform :callableor None = None-
Transformation from unconstrained to constrained space (e.g., softplus)
rewards :arrayor None = None-
Optional rewards for multivariate models
epsilon :float= 1e-8-
Floor for Fisher values to avoid division by zero
Methods
| Name | Description |
|---|---|
| compute_scaling | Compute Fisher diagonal at reference point and derive scaling. |
compute_scaling
phasic.svgd.FisherPreconditioner.compute_scaling(theta_ref)Compute Fisher diagonal at reference point and derive scaling.
Uses moment-matching to find a better reference point before computing the Fisher information. The provided theta_ref is used as a starting point for the moment-matching search.
Parameters
theta_ref :array(theta_dim)-
Initial reference point in unconstrained space (same space as particles). Used as starting point for moment-matching refinement.