MICE Documentation

MICE (Multi-Iteration stochastiC Estimator) is a gradient estimator for stochastic optimization that uses successive control variates along the optimization path to reduce variance. By adaptively selecting which iterates to include in its index set and optimally distributing samples, MICE achieves accurate mean gradient estimation at minimal computational cost.

The method is described in the paper Multi-iteration Stochastic Optimizers (Applied Mathematics & Optimization, Vol. 93, Article 93, 2026).

Key Features

  • Adaptive variance reduction: Controls relative L2 error with user-specified tolerance ε

  • Efficient sample allocation: Minimizes gradient sampling cost subject to error constraints

  • Index-set operators: Add, Drop, Restart, and Clip operations for optimal hierarchy management

  • Flexible integration: Non-intrusive design couples seamlessly with SGD, Adam, and other optimizers

  • Dual problem support: Handles both expectation minimization and finite-sum problems

  • Robust stopping: Resampling-based gradient norm estimation for stable termination criteria

Quick Install

pip install mice

See the Installation page for development installs and optional dependencies.

Quick Start

import numpy as np
from mice import MICE
from mice.policy import DropRestartClipPolicy

def gradient(x, thetas):
    return x - thetas

def sampler(n):
    return np.random.randn(n, 1)

estimator = MICE(
    grad=gradient,
    sampler=sampler,
    eps=0.577,
    min_batch=10,
    policy=DropRestartClipPolicy(
        drop_param=0.5,
        restart_param=0.0,
        max_hierarchy_size=100,
    ),
    max_cost=10_000,
    stop_crit_norm=1e-6,
)

x = np.array([10.0])
for _ in range(100):
    g = estimator(x)
    if estimator.terminate:
        break
    x = x - 0.1 * g

See the Quickstart guide for detailed examples including finite-sum problems and policy configuration.

Getting Help

  • theory — Theoretical background and key concepts

  • API Reference — Complete module and class reference

  • citation — How to cite MICE in your research

Indices and tables