Skip to main content

Bayesian Hessian Approximation for Stochastic Optimization

Project description

The BayHess package uses noisy curvature pairs (noisy gradient differences computed at different points) to compute Hessian approximations. These Hessian approximations can be used to accelerate the convergence in stochastic optimization in a quasi-Newton fashion. To find a Hessian approximation, a posterior distribution of the Hessian is built. The prior distribution is based on the Frobenius norm with determinant constraints to impose extreme eigenvalues constraints and the likelihood distribution is built from the secant equations given the observed curvature pairs. To find the maximizer of the log posterior, the BayHess package uses the Newton-CG method with a homotopy approach to deal with the logarithmic barrier determinant constraints.

For a detailed description of the method, convergence analysis and numerical results, check our manuscript named “Approximating Hessian matrices using Bayesian inference: a new approach for quasi-Newton methods in stochastic optimization”. This package can be used with the MICE estimator.

A BayHess object is created by giving the dimensionality of the problem, and lower and upper bounds of the eigenvalues of the Hessian; i.e., strong convexity and smoothness parameters.

bay = BayHess(n_dim=10, strong_conv=1e-3, smooth=1e4)

Curvature information is passed using the ‘update_curv_pairs’ method

bay.update_curv_pairs(sk, yk)

Install BayHess fro PyPI as

pip install bayhess

A repository with numerical examples can be found at

https://github.com/agcarlon/bayhess_numerics

The documentation of the BayHess package is available at

https://bayhess.readthedocs.io/

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

bayhess-0.1.6.tar.gz (24.8 kB view details)

Uploaded Source

Built Distribution

bayhess-0.1.6-py3-none-any.whl (24.5 kB view details)

Uploaded Python 3

File details

Details for the file bayhess-0.1.6.tar.gz.

File metadata

  • Download URL: bayhess-0.1.6.tar.gz
  • Upload date:
  • Size: 24.8 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 bayhess-0.1.6.tar.gz
Algorithm Hash digest
SHA256 808f2642c7107cd7bf02603064d78844d3b49213effc5616a707a9e7a63a42fc
MD5 50839529e50336b9e0f225c6f08a085f
BLAKE2b-256 733232b196247bc64176c695c648a7651d15ade7ad367c5e81a0ce2ff0abb31e

See more details on using hashes here.

File details

Details for the file bayhess-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: bayhess-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 24.5 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 bayhess-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 fadd893c61fea7102f78ed2453b2991cdf3f853b699e90517588460ddfc57777
MD5 e28be380f0470f021656686ad7a4690c
BLAKE2b-256 46b4bf8f0a5f79a90b6099296fb5081eac4177360d6b538dfbce1f34a9efd259

See more details on using hashes here.

Supported by

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