SVI¶
Stochastic variational inference algorithms.
svi
¶
Stochastic Variational Inference (SVI) training loop.
SVI optimizes a quivers.inference.objectives.Objective
(the ELBO, IWAE, Rényi, or VR-IWAE bound) by taking gradient
steps on the guide and model parameters. The objective
parameter accepts any Objective subclass.
SVI
¶
SVI(model: MonadicProgram, guide: Guide, optim: Optimizer, objective: Objective)
Stochastic Variational Inference optimizer.
| PARAMETER | DESCRIPTION |
|---|---|
model
|
Generative model.
TYPE:
|
guide
|
Variational guide.
TYPE:
|
optim
|
Optimiser for both model and guide parameters.
TYPE:
|
objective
|
Variational objective (ELBO, IWAEBound, RenyiBound, VRIWAEBound, …).
TYPE:
|
Source code in src/quivers/inference/svi.py
step
¶
One SVI step.
| PARAMETER | DESCRIPTION |
|---|---|
x
|
Program input. Shape
TYPE:
|
observations
|
Observed variable values + host data (the
non-site keys are exposed to the trace via the
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
float
|
Scalar loss for this step. |