Skip to main content

Multi-iteration Stochastic Estimator

Project description

Multi-iteration Stochastic Estimator

The Multi-Iteration stochastiC Estimator (MICE) is an estimator of gradients to be used in stochastic optimization. It uses control variates to build a hierarchy of iterations, adaptively sampling to keep the statistical variance below tolerance in an optimal fashion, cost-wise. The tolerance on the statistical error decreases proportionally to the square of the gradient norm, thus, SGD-MICE converges linearly in strongly convex L-smooth functions.

This python implementation of MICE is able to

  • estimate expectations or finite sums of gradients of functions;

  • choose the optimal sample sizes in order to minimize the sampling cost;

  • build a hierarchy of iterations that minimizes the total work;

  • use a resampling technique to compute the gradient norm, thus enforcing stability;

  • define a tolerance on the norm of the gradient estimate or a maximum number of evaluations as a stopping criterion.

Using MICE

Using MICE is as simple as

>>> import numpy as np
>>> from mice import MICE
>>>
>>>
>>> def gradient(x, thts):
>>>     return x - thts
>>>
>>>
>>> def sampler(n):
>>>     return np.random.random((n, 1))
>>>
>>>
>>> df = MICE(gradient , sampler=sampler)
>>> x = 10
>>> for i in range(10):
...    grad = df(x)
...    x = x - grad

However, it is flexible enough to tackle more complex problems. For more information on how to use MICE and examples, check the documentation.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mice-0.1.21.tar.gz (919.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mice-0.1.21-py3-none-any.whl (24.4 kB view details)

Uploaded Python 3

File details

Details for the file mice-0.1.21.tar.gz.

File metadata

  • Download URL: mice-0.1.21.tar.gz
  • Upload date:
  • Size: 919.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.8.10

File hashes

Hashes for mice-0.1.21.tar.gz
Algorithm Hash digest
SHA256 a7b2439e09cc666023e4d40083302eda45a14ca6280099d83ec46b9493a3be47
MD5 bb9a28a59f04e9bbb605f0c86ea817b0
BLAKE2b-256 385ca01d077dd32fc601e02b680ac47f8e1770f7cb5249fffa0299b9e148d66b

See more details on using hashes here.

File details

Details for the file mice-0.1.21-py3-none-any.whl.

File metadata

  • Download URL: mice-0.1.21-py3-none-any.whl
  • Upload date:
  • Size: 24.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.8.10

File hashes

Hashes for mice-0.1.21-py3-none-any.whl
Algorithm Hash digest
SHA256 2f5be53977c283091f0cf5f0825808f1e21a19e4f4e34704ca0763f9ec540177
MD5 921f4c86e88cc83c2d3bd54968002cdc
BLAKE2b-256 70dd7c0b7096716e6b5dc549fbfcdb5cab12b8a708ccb08ede8b94f496039a4b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page