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)
And, finally, computing the Hessian approximation is done by
>>> hess = bay.find_hess()
Install BayHess from 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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file bayhess-0.1.8.tar.gz
.
File metadata
- Download URL: bayhess-0.1.8.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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9e71c29b375214cdcd7bf58b32ad215984463e8bc8acfa6fdd09594e3bd367bd |
|
MD5 | 37ffa221a3cdaf5e2a5fdc559e4eeb68 |
|
BLAKE2b-256 | 12023696111e47d71dd24376589879c5ba6314a7b2e0dc10f9879d30abb16465 |
File details
Details for the file bayhess-0.1.8-py3-none-any.whl
.
File metadata
- Download URL: bayhess-0.1.8-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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5a9001c2ed295871b35f78260fa3e0b5e422d93118f73b0fcd9b84fd3ab402bd |
|
MD5 | c5f8f9f7298edf2e19f1f4083377b15f |
|
BLAKE2b-256 | 0e455ecb9b6e4de261a9314ef190fe27c610a5aefa85edae4fa68a25c7507d76 |