mbi.estimation.MirrorDescent

class mbi.estimation.MirrorDescent(marginal_oracle: MarginalOracle | None = None, stepsize: float | None = None, mesh: Mesh | None = None)[source]

Bases: Estimator

Mirror descent estimator for graphical models.

This is a first-order proximal optimization algorithm for solving a (possibly nonsmooth) convex optimization problem over the marginal polytope. This is an implementation of Algorithm 1 from the paper “Graphical-model based estimation and inference for differential privacy”.

stepsize

Fixed step size, or None (default) to use Armijo line search.

Type:

float | None

marginal_oracle

The function to compute marginals from potentials. If None (default), uses default_oracle() to auto-select.

Type:

mbi.marginal_oracles.MarginalOracle | None

mesh

JAX sharding mesh.

Type:

jax._src.mesh.Mesh | None

Methods

__init__

estimate

Estimate a Model from noisy marginal measurements.

precompile

Warm up the JIT cache for estimate asynchronously.

Attributes

marginal_oracle

mesh

stepsize

stepsize: float | None = None
marginal_oracle: MarginalOracle | None = None
mesh: Mesh | None = None